;;-*-Lisp-*- (in-package goal) ;; name: progress-part.gc ;; name in dgo: progress-part ;; dgos: GAME, ENGINE ;; DECOMP BEGINS (defun part-progress-hud-left-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) (let ((v1-0 *progress-process*)) (set! (-> arg2 vector 0 w) (-> v1-0 0 left-side-x-scale)) (set! (-> arg2 vector 1 w) (-> v1-0 0 left-side-y-scale)) ) (none) ) (defun part-progress-hud-right-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) (let ((v1-0 *progress-process*)) (set! (-> arg2 vector 0 w) (-> v1-0 0 right-side-x-scale)) (set! (-> arg2 vector 1 w) (-> v1-0 0 right-side-y-scale)) ) (none) ) (defun part-progress-hud-orb-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) (#cond (PC_PORT (unless (and *pc-settings* (not (-> *pc-settings* use-vis?))) (set! (-> arg2 vector 0 w) (/ 5324.8 (-> *progress-process* 0 sides-x-scale))) (set! (-> arg2 vector 1 w) (/ 5324.8 (-> *progress-process* 0 sides-x-scale))) ) ) (#t (set! (-> arg2 vector 0 w) (/ 5324.8 (-> *progress-process* 0 sides-x-scale))) (set! (-> arg2 vector 1 w) (/ 5324.8 (-> *progress-process* 0 sides-x-scale))) ) ) (none) ) (defun part-progress-hud-buzzer-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) (#cond (PC_PORT (unless (and *pc-settings* (not (-> *pc-settings* use-vis?))) (set! (-> arg2 vector 0 w) (/ 6144.0 (-> *progress-process* 0 sides-x-scale))) (set! (-> arg2 vector 1 w) (/ 6144.0 (-> *progress-process* 0 sides-x-scale))) ) ) (#t (set! (-> arg2 vector 0 w) (/ 6144.0 (-> *progress-process* 0 sides-x-scale))) (set! (-> arg2 vector 1 w) (/ 6144.0 (-> *progress-process* 0 sides-x-scale))) ) ) (none) ) (defun part-progress-hud-button-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) (#cond (PC_PORT (unless (and *pc-settings* (not (-> *pc-settings* use-vis?))) (set! (-> arg2 vector 0 w) (/ 6553.6 (-> *progress-process* 0 sides-x-scale))) (set! (-> arg2 vector 1 w) (/ 6553.6 (-> *progress-process* 0 sides-x-scale))) ) ) (#t (set! (-> arg2 vector 0 w) (/ 6553.6 (-> *progress-process* 0 sides-x-scale))) (set! (-> arg2 vector 1 w) (/ 6553.6 (-> *progress-process* 0 sides-x-scale))) ) ) (none) ) (defun part-progress-hud-tint-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) (set! (-> arg2 vector 2 w) (the float (- 64 (sar (* 63 (-> *progress-process* 0 in-out-position)) 12)))) (#when PC_PORT (if (and *pc-settings* (not (-> *pc-settings* use-vis?))) (set! (-> arg2 vector 0 w) (* (meters 15) (-> *pc-settings* aspect-ratio-scale))) ) ) (none) ) (defun part-progress-card-slot-01-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) (set! (-> arg2 vector 2 w) (if (zero? (-> *progress-process* 0 option-index)) 64.0 32.0 ) ) (set! (-> arg2 vector 1 w) (-> *progress-process* 0 slot-scale)) 0 (none) ) (defun part-progress-card-slot-02-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) (set! (-> arg2 vector 2 w) (if (= (-> *progress-process* 0 option-index) 1) 64.0 32.0 ) ) (set! (-> arg2 vector 1 w) (-> *progress-process* 0 slot-scale)) 0 (none) ) (defun part-progress-card-slot-03-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) (set! (-> arg2 vector 2 w) (if (= (-> *progress-process* 0 option-index) 2) 64.0 32.0 ) ) (set! (-> arg2 vector 1 w) (-> *progress-process* 0 slot-scale)) 0 (none) ) (defun part-progress-card-slot-04-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) (set! (-> arg2 vector 2 w) (if (= (-> *progress-process* 0 option-index) 3) 64.0 32.0 ) ) (set! (-> arg2 vector 1 w) (-> *progress-process* 0 slot-scale)) 0 (none) ) (defun part-progress-card-cell-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) (let ((f0-1 (* 2.0 (+ -0.5 (-> *progress-process* 0 transition-percentage-invert))))) (if (< f0-1 0.0) (set! f0-1 0.0) ) (set! (-> arg2 vector 2 w) (* 128.0 f0-1)) ) 0 (none) ) (defun part-progress-save-icon-func ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) (let ((f0-1 (* 6144.0 (-> *progress-process* 0 transition-percentage-invert)))) (set! (-> arg2 vector 0 w) f0-1) (set! (-> arg2 vector 1 w) f0-1) ) 0 (none) ) (defun fuel-cell-progress-hud-orbit-callback ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 matrix)) (let* ((a0-1 (-> arg1 key)) (s5-0 (the-as progress (-> a0-1 proc))) (v1-0 (the int (the-as float (-> arg1 user-float)))) (s4-0 -1) ) (let ((a1-1 0)) (dotimes (a2-1 (-> *progress-process* 0 nb-of-particles)) (if (= (-> a0-1 matrix) (-> s5-0 particles a1-1 part matrix)) (set! s4-0 a1-1) ) (+! a1-1 1) ) ) (cond ((= v1-0 3) (if (= (-> s5-0 particle-state s4-0) 1) (set! (-> arg2 vector 2 w) 42.0) (set! (-> arg2 vector 2 w) 128.0) ) 0 ) (else (let ((s3-0 (new 'stack-no-clear 'vector)) (s2-0 (new 'stack-no-clear 'vector)) ) (cond ((or (= s4-0 -1) (= (-> s5-0 particle-state s4-0) 2) (= (-> s5-0 particle-state s4-0) 1)) (set! (-> arg2 vector 0 x) 245760.0) ) ((= v1-0 -1) (set! (-> arg2 vector 0 x) 0.0) (set! (-> arg2 vector 0 y) 0.0) ) (else ;; NOTE: this code has been commented for now so we can run progress even when manipy isn't working yet. ;; if we don't have this stuff loaded right, just set the offset to 0. ;; this ends up being the right offset in all the cases except for things that ;; orbit the powercell. Those are just drawn underneath the powercell ; (vector<-cspace! s3-0 (-> s5-0 icons (logand s4-0 3) icon 0 node-list data v1-0)) ; (vector<-cspace! s2-0 (-> s5-0 icons (logand s4-0 3) icon 0 node-list data 3)) ; (vector-! s3-0 s3-0 s2-0) (set! (-> arg2 vector 0 x) (* 48.0 (-> s3-0 x))) (set! (-> arg2 vector 0 y) (* 60.0 (-> s3-0 y))) (set! (-> arg2 vector 0 z) (* 32.0 (-> s3-0 z))) ) ) ) 0 ) ) ) 0 (none) ) (set! (-> *part-group-id-table* 85) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag use-local-clock screen-space) :name "group-part-progress-hud-previous" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 332 :flags (launch-asap))) :bounds (new 'static 'sphere :w 4096.0) ) ) (set! (-> *part-group-id-table* 86) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag use-local-clock screen-space) :name "group-part-progress-hud-next" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 333 :flags (launch-asap))) :bounds (new 'static 'sphere :w 4096.0) ) ) (set! (-> *part-group-id-table* 87) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-progress-hud-selector" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 334 :flags (launch-asap))) :bounds (new 'static 'sphere :w 4096.0) ) ) (set! (-> *part-group-id-table* 88) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-progress-hud-left" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 335 :flags (launch-asap))) :bounds (new 'static 'sphere :w 4096.0) ) ) (set! (-> *part-group-id-table* 89) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-progress-hud-right" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 336 :flags (launch-asap))) :bounds (new 'static 'sphere :w 4096.0) ) ) (set! (-> *part-group-id-table* 90) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-progress-hud-tint" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 337 :flags (launch-asap))) :bounds (new 'static 'sphere :w 4096.0) ) ) (set! (-> *part-group-id-table* 91) (new 'static 'sparticle-launch-group :length 3 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-progress-card-cell" :launcher (new 'static 'inline-array sparticle-group-item 3 (sp-item 2190 :flags (launch-asap)) (sp-item 2191 :flags (launch-asap)) (sp-item 2192 :flags (launch-asap)) ) :bounds (new 'static 'sphere :w 4096.0) ) ) (set! (-> *part-group-id-table* 570) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-progress-button-x" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 2336 :flags (launch-asap))) :bounds (new 'static 'sphere :w 4096.0) ) ) (set! (-> *part-group-id-table* 571) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-progress-button-square" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 2337 :flags (launch-asap))) :bounds (new 'static 'sphere :w 4096.0) ) ) (set! (-> *part-group-id-table* 572) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-progress-button-triangle" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 2338 :flags (launch-asap))) :bounds (new 'static 'sphere :w 4096.0) ) ) (set! (-> *part-group-id-table* 573) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-progress-button-circle" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 2339 :flags (launch-asap))) :bounds (new 'static 'sphere :w 4096.0) ) ) (set! (-> *part-group-id-table* 92) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-progress-card-slot-01" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 2142 :flags (launch-asap))) :bounds (new 'static 'sphere :w 4096.0) ) ) (set! (-> *part-group-id-table* 93) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-progress-card-slot-02" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 2143 :flags (launch-asap))) :bounds (new 'static 'sphere :w 4096.0) ) ) (set! (-> *part-group-id-table* 94) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-progress-card-slot-03" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 2144 :flags (launch-asap))) :bounds (new 'static 'sphere :w 4096.0) ) ) (set! (-> *part-group-id-table* 95) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-progress-card-slot-04" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 2145 :flags (launch-asap))) :bounds (new 'static 'sphere :w 4096.0) ) ) (set! (-> *part-group-id-table* 96) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-progress-hud-power-cell-center" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 338 :flags (launch-asap))) :bounds (new 'static 'sphere :w 409600.0) ) ) (set! (-> *part-id-table* 337) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x36 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 15.0)) (sp-flt spt-scale-y (meters 11.5)) (sp-flt spt-r 128.0) (sp-flt spt-g 32.0) (sp-flt spt-b 0.0) (sp-flt spt-a 64.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit9 bit13) (sp-func spt-func 'part-progress-hud-tint-func) (sp-end) ) ) ) (set! (-> *part-id-table* 2190) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x6e :page #x1cf)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 0.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 bit9 bit13) (sp-func spt-func 'part-progress-card-cell-func) (sp-end) ) ) ) (set! (-> *part-id-table* 2191) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 13 (sp-tex spt-texture (new 'static 'texture-id :index #x6d :page #x1cf)) (sp-flt spt-num 1.0) (sp-flt spt-x (meters 1.05)) (sp-flt spt-scale-x (meters 0.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 bit9 bit13) (sp-func spt-func 'part-progress-card-cell-func) (sp-end) ) ) ) (set! (-> *part-id-table* 2192) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 13 (sp-tex spt-texture (new 'static 'texture-id :index #x6c :page #x1cf)) (sp-flt spt-num 1.0) (sp-flt spt-x (meters 2.3)) (sp-flt spt-scale-x (meters 0.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 bit9 bit13) (sp-func spt-func 'part-progress-card-cell-func) (sp-end) ) ) ) (set! (-> *part-id-table* 2336) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x5 :page #x408)) (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 bit13) (sp-func spt-func 'part-progress-hud-button-func) (sp-end) ) ) ) (set! (-> *part-id-table* 2337) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x6 :page #x408)) (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 bit13) (sp-func spt-func 'part-progress-hud-button-func) (sp-end) ) ) ) (set! (-> *part-id-table* 2338) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x7 :page #x408)) (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 bit13) (sp-func spt-func 'part-progress-hud-button-func) (sp-end) ) ) ) (set! (-> *part-id-table* 2339) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x8 :page #x408)) (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 bit13) (sp-func spt-func 'part-progress-hud-button-func) (sp-end) ) ) ) (set! (-> *part-id-table* 2142) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x36 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 9.2)) (sp-flt spt-scale-y (meters 2.0)) (sp-flt spt-r 0.0) (sp-flt spt-g 0.0) (sp-flt spt-b 0.0) (sp-flt spt-a 64.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit9 bit13) (sp-func spt-func 'part-progress-card-slot-01-func) (sp-end) ) ) ) (set! (-> *part-id-table* 2143) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x36 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 9.2)) (sp-flt spt-scale-y (meters 2.0)) (sp-flt spt-r 0.0) (sp-flt spt-g 0.0) (sp-flt spt-b 0.0) (sp-flt spt-a 64.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit9 bit13) (sp-func spt-func 'part-progress-card-slot-02-func) (sp-end) ) ) ) (set! (-> *part-id-table* 2144) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x36 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 9.2)) (sp-flt spt-scale-y (meters 2.0)) (sp-flt spt-r 0.0) (sp-flt spt-g 0.0) (sp-flt spt-b 0.0) (sp-flt spt-a 64.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit9 bit13) (sp-func spt-func 'part-progress-card-slot-03-func) (sp-end) ) ) ) (set! (-> *part-id-table* 2145) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x36 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 9.2)) (sp-flt spt-scale-y (meters 2.0)) (sp-flt spt-r 0.0) (sp-flt spt-g 0.0) (sp-flt spt-b 0.0) (sp-flt spt-a 64.0) (sp-int spt-timer -1) (sp-cpuinfo-flags bit9 bit13) (sp-func spt-func 'part-progress-card-slot-04-func) (sp-end) ) ) ) (set! (-> *part-id-table* 332) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 11 (sp-tex spt-texture (new 'static 'texture-id :index #x2 :page #x408)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 1.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 bit13) (sp-end) ) ) ) (set! (-> *part-id-table* 333) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 11 (sp-tex spt-texture (new 'static 'texture-id :index #x1 :page #x408)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 1.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 bit13) (sp-end) ) ) ) (set! (-> *part-id-table* 334) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 11 (sp-tex spt-texture (new 'static 'texture-id :index #x4 :page #x408)) (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 bit13) (sp-end) ) ) ) (set! (-> *part-id-table* 335) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :page #x408)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 3.5)) (sp-flt spt-scale-y (meters 13.0)) (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 bit13) (sp-func spt-func 'part-progress-hud-left-func) (sp-end) ) ) ) (set! (-> *part-id-table* 336) (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 #x408)) (sp-flt spt-num 1.0) (sp-flt spt-scale-x (meters 6.0)) (sp-flt spt-scale-y (meters 13.0)) (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 bit13) (sp-func spt-func 'part-progress-hud-right-func) (sp-end) ) ) ) (set! (-> *part-id-table* 339) (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.3)) (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 bit13) (sp-flt spt-userdata 4.0) (sp-func spt-func 'fuel-cell-progress-hud-orbit-callback) (sp-end) ) ) ) (set! (-> *part-id-table* 340) (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.3)) (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 bit13) (sp-flt spt-userdata 5.0) (sp-func spt-func 'fuel-cell-progress-hud-orbit-callback) (sp-end) ) ) ) (set! (-> *part-id-table* 341) (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.3)) (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 bit13) (sp-flt spt-userdata 6.0) (sp-func spt-func 'fuel-cell-progress-hud-orbit-callback) (sp-end) ) ) ) (set! (-> *part-id-table* 342) (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.3)) (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 bit13) (sp-flt spt-userdata 7.0) (sp-func spt-func 'fuel-cell-progress-hud-orbit-callback) (sp-end) ) ) ) (set! (-> *part-id-table* 343) (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 bit13) (sp-flt spt-userdata 9.0) (sp-func spt-func 'fuel-cell-progress-hud-orbit-callback) (sp-end) ) ) ) (set! (-> *part-id-table* 338) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 13 (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.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 bit13) (sp-flt spt-userdata 3.0) (sp-func spt-func 'fuel-cell-progress-hud-orbit-callback) (sp-end) ) ) ) (set! (-> *part-id-table* 344) (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* 345) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 22 (sp-tex spt-texture (new 'static 'texture-id :index #x2 :page #x2)) (sp-flt spt-num 0.5) (sp-flt spt-z 2160.0) (sp-flt spt-scale-x (meters 0.25)) (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.07) (meters 0.46) 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 bit9 bit13) (sp-flt spt-userdata -1.0) (sp-func spt-func 'fuel-cell-progress-hud-orbit-callback) (sp-int spt-next-time 90) (sp-launcher-by-id spt-next-launcher 232) (sp-end) ) ) ) (set! (-> *part-id-table* 346) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 21 (sp-tex spt-texture (new 'static 'texture-id :index #x2 :page #x2)) (sp-flt spt-num 0.06) (sp-flt spt-z 2160.0) (sp-rnd-flt spt-scale-x (meters 1.0) (meters 0.25) 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.1)) (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 bit9 bit13) (sp-flt spt-userdata -1.0) (sp-func spt-func 'fuel-cell-progress-hud-orbit-callback) (sp-int spt-next-time 75) (sp-launcher-by-id spt-next-launcher 232) (sp-end) ) ) ) (set! (-> *part-id-table* 347) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 16 (sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-z 2160.0) (sp-flt spt-scale-x (meters 2.0)) (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) (sp-flt spt-scale-y (meters 1.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 bit9 bit13) (sp-flt spt-userdata -1.0) (sp-func spt-func 'fuel-cell-progress-hud-orbit-callback) (sp-end) ) ) ) (set! (-> *part-id-table* 348) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 16 (sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2)) (sp-flt spt-num 1.0) (sp-flt spt-z 2160.0) (sp-flt spt-scale-x (meters 2.4)) (sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0) (sp-flt spt-scale-y (meters 2.0)) (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 bit9 bit13) (sp-flt spt-userdata -1.0) (sp-func spt-func 'fuel-cell-progress-hud-orbit-callback) (sp-end) ) ) ) (set! (-> *part-group-id-table* 97) (new 'static 'sparticle-launch-group :length 8 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag use-local-clock screen-space) :name "group-part-progress-hud-power-cell-whole" :launcher (new 'static 'inline-array sparticle-group-item 8 (sp-item 338 :flags (launch-asap)) (sp-item 347 :flags (launch-asap) :period 3600 :length 5) (sp-item 348 :flags (launch-asap) :period 3600 :length 5) (sp-item 343 :flags (launch-asap)) (sp-item 339 :flags (launch-asap)) (sp-item 340 :flags (launch-asap)) (sp-item 341 :flags (launch-asap)) (sp-item 342 :flags (launch-asap)) ) :bounds (new 'static 'sphere :w 409600.0) ) ) (set! (-> *part-group-id-table* 98) (new 'static 'sparticle-launch-group :length 2 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-progress-buzzer" :launcher (new 'static 'inline-array sparticle-group-item 2 (sp-item 1982 :flags (launch-asap) :binding 1981) (sp-item 1981 :flags (start-dead launch-asap)) ) :bounds (new 'static 'sphere :w 409600.0) ) ) (set! (-> *part-id-table* 1982) (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 bit13) (sp-end) ) ) ) (set! (-> *part-id-table* 1981) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 17 (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 2.0)) (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 bit13) (sp-end) ) ) ) (set! (-> *part-group-id-table* 99) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-progress-orb" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 1983 :flags (launch-asap))) :bounds (new 'static 'sphere :w 409600.0) ) ) (set! (-> *part-id-table* 1983) (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.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 bit13) (sp-end) ) ) ) (set! (-> *part-group-id-table* 100) (new 'static 'sparticle-launch-group :length 2 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-progress-buzzer-small" :launcher (new 'static 'inline-array sparticle-group-item 2 (sp-item 1985 :flags (launch-asap) :binding 1984) (sp-item 1984 :flags (start-dead launch-asap)) ) :bounds (new 'static 'sphere :w 409600.0) ) ) (set! (-> *part-id-table* 1985) (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 1.0)) (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 bit13) (sp-end) ) ) ) (set! (-> *part-id-table* 1984) (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 204.8) (sp-flt spt-scale-x (meters 1.5)) (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.05037037)) (sp-flt spt-vel-z (meters 0.0)) (sp-int spt-timer -1) (sp-cpuinfo-flags bit2 bit7 bit9 bit13) (sp-func spt-func 'part-progress-hud-buzzer-func) (sp-end) ) ) ) (set! (-> *part-group-id-table* 101) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-progress-orb-small" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 1986 :flags (launch-asap))) :bounds (new 'static 'sphere :w 409600.0) ) ) (set! (-> *part-id-table* 1986) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (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.3)) (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 bit13) (sp-func spt-func 'part-progress-hud-orb-func) (sp-end) ) ) ) (set! (-> *part-group-id-table* 615) (new 'static 'sparticle-launch-group :length 1 :duration #xbb8 :linger-duration #x5dc :flags (sp-group-flag screen-space) :name "group-part-progress-save-icon" :launcher (new 'static 'inline-array sparticle-group-item 1 (sp-item 2478 :flags (launch-asap))) :bounds (new 'static 'sphere :w 409600.0) ) ) (set! (-> *part-id-table* 2478) (new 'static 'sparticle-launcher :init-specs (new 'static 'inline-array sp-field-init-spec 12 (sp-tex spt-texture (new 'static 'texture-id :index #x6b :page #x1cf)) (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 bit13) (sp-func spt-func 'part-progress-save-icon-func) (sp-end) ) ) ) (defmacro progress-new-particle (&key part &key x &key y &key z) `(when (< (-> obj nb-of-particles) (-> obj max-nb-of-particles)) (let ((part-nb (-> obj nb-of-particles))) (set! (-> obj particles part-nb) (new 'static 'hud-particle)) (set! (-> obj particles part-nb part) (create-launch-control (-> *part-group-id-table* ,part) obj)) (set! (-> obj particles part-nb init-pos x) ,x) (set! (-> obj particles part-nb init-pos y) ,y) (set! (-> obj particles part-nb init-pos z) ,z) (set! (-> obj particles part-nb part matrix) -1) ) (+! (-> obj nb-of-particles) 1) ) ) (defmethod initialize-particles progress ((obj progress)) (progress-new-particle :part 90 :x 256.0 :y 224.0 :z 16.0) ;; tint (progress-new-particle :part 88 :x -42.0 :y (#if PC_PORT 256.0 254.0) :z 5.0) ;; left (progress-new-particle :part 89 :x 610.0 :y (#if PC_PORT 256.0 254.0) :z 5.0) ;; right (progress-new-particle :part 85 :x -320.0 :y 40.0 :z 14.0) (progress-new-particle :part 86 :x -320.0 :y 400.0 :z 14.0) (progress-new-particle :part 87 :x -320.0 :y 194.0 :z 15.0) (progress-new-particle :part 97 :x -320.0 :y 194.0 :z 14.0) (progress-new-particle :part 97 :x -320.0 :y 194.0 :z 14.0) (progress-new-particle :part 97 :x -320.0 :y 194.0 :z 14.0) (progress-new-particle :part 97 :x -320.0 :y 194.0 :z 14.0) (progress-new-particle :part 97 :x -320.0 :y 194.0 :z 14.0) (progress-new-particle :part 97 :x -320.0 :y 194.0 :z 14.0) (progress-new-particle :part 97 :x -320.0 :y 194.0 :z 14.0) (progress-new-particle :part 97 :x -320.0 :y 194.0 :z 14.0) (progress-new-particle :part 98 :x -320.0 :y 224.0 :z 14.0) (progress-new-particle :part 99 :x -320.0 :y 224.0 :z 14.0) (progress-new-particle :part 97 :x -320.0 :y 112.0 :z 4.0) (progress-new-particle :part 100 :x -320.0 :y 193.0 :z 4.0) (progress-new-particle :part 101 :x -320.0 :y 40.0 :z 4.0) (progress-new-particle :part 92 :x -320.0 :y 90.0 :z 16.0) (progress-new-particle :part 93 :x -320.0 :y 172.0 :z 16.0) (progress-new-particle :part 94 :x -320.0 :y 254.0 :z 16.0) (progress-new-particle :part 95 :x -320.0 :y 336.0 :z 16.0) (progress-new-particle :part 91 :x -320.0 :y 102.0 :z 13.0) (progress-new-particle :part 91 :x -320.0 :y 184.0 :z 13.0) (progress-new-particle :part 91 :x -320.0 :y 266.0 :z 13.0) (progress-new-particle :part 91 :x -320.0 :y 348.0 :z 13.0) (progress-new-particle :part 570 :x -320.0 :y 338.0 :z 4.0) (progress-new-particle :part 571 :x -320.0 :y 338.0 :z 4.0) (progress-new-particle :part 572 :x -320.0 :y 338.0 :z 4.0) (progress-new-particle :part 573 :x -320.0 :y 338.0 :z 4.0) (progress-new-particle :part 615 :x -320.0 :y 180.0 :z 4.0) 0 (none) )