diff --git a/goal_src/jak3/pc/progress/progress-draw-pc.gc b/goal_src/jak3/pc/progress/progress-draw-pc.gc index d68e129c2d..eabd560085 100644 --- a/goal_src/jak3/pc/progress/progress-draw-pc.gc +++ b/goal_src/jak3/pc/progress/progress-draw-pc.gc @@ -1339,6 +1339,181 @@ (none) ) +(defmethod draw-option ((this menu-select-start-option) (arg0 progress) (arg1 font-context) (arg2 int) (arg3 symbol)) + (set! (-> *progress-list-level* mode) (-> arg0 current)) + (set! (-> *progress-list-level* act) (-> *progress-work* selected-num)) + (let ((f30-0 (fmax 0.0 (* 2.0 (- 0.5 (-> arg0 menu-transition)))))) + (let ((s3-0 (length *progress-list-level*))) + (set-alpha! arg1 f30-0) + (set-flags! arg1 (font-flags kerning large)) + (set-scale! arg1 0.42) + (progress-method-33 arg0 (-> *progress-work* body-footer)) + (let ((idx (max 0 (the int (-> this current-index))))) + (string-format "~S" (lookup-text! *common-text* (-> (progress-list-method-9 *progress-list-level* idx) text-name) #f)) + (let ((f28-0 (print-game-text *temp-string* arg1 #t 44 (bucket-id hud-draw-hud-alpha)))) + (let ((s1-1 (get-scissor-stack-top arg0))) + (let* ((cur-idx (-> this current-index)) + (f2-5 (+ (- 8.0 (* f28-0 (- cur-idx (* (the float (the int (/ cur-idx 1.0))) 1.0)))) (-> s1-1 y))) + ) + (set-origin! arg1 (the int (+ 10.0 (-> s1-1 x))) (the int f2-5)) + ) + (set-width! arg1 (the int (+ (- -20.0 (-> s1-1 x)) (-> s1-1 z)))) + (when (not (-> *pc-settings* use-vis?)) + (set! (-> arg1 origin x) (the float (adjust-game-x (-> arg1 origin x)))) + (*! (-> arg1 width) (-> *pc-settings* aspect-ratio-reciprocal))) + (set-height! arg1 (the int (- (-> s1-1 w) (-> s1-1 y)))) + (while (and (< (-> arg1 origin y) (-> s1-1 w)) (< idx s3-0)) + (cond + ((= idx (-> this selected-index)) + (set-color! arg1 (font-color font-color-34)) + ) + (else + (set-color! arg1 (font-color font-color-32)) + ) + ) + (string-format "~S" (lookup-text! *common-text* (-> (progress-list-method-9 *progress-list-level* idx) text-name) #f)) + (let ((f26-0 (print-game-text *temp-string* arg1 #f 40 (bucket-id hud-draw-hud-alpha)))) + (if (= idx (-> this selected-index)) + (draw-highlight-bar arg0 arg1 (the int (+ -2.0 (-> arg1 origin y))) (the int (+ 2.0 f26-0)) f30-0) + ) + (+! (-> arg1 origin y) f26-0) + ) + (1+! idx) + ) + ) + (seek! + (-> this current-index) + (-> this target-index) + (* (/ (-> this scroll-speed) f28-0) (seconds-per-frame)) + ) + ) + ) + ) + (progress-method-34 arg0) + (let ((selected (-> *progress-work* selected-num))) + (draw-header arg0 arg1 f30-0 (cond + ((zero? selected) + (text-id progress-select-start) + ) + ((= selected 1) + (text-id progress-title-level-select-act-1) + ) + ((= selected 2) + (text-id progress-title-level-select-act-2) + ) + (else + (text-id progress-title-level-select-act-3) + ) + ) + ) + ) + (draw-bg-box-alpha-2 arg0 (-> *progress-work* footer) (* 64.0 f30-0)) + (draw-bg-box-outline arg0 (-> *progress-work* footer) (* 128.0 f30-0)) + ) + (progress-method-47 + arg0 + arg1 + (!= (-> this current-index) 0.0) + (!= (-> this current-index) (the float (+ (-> arg0 total-num-tasks) -1))) + ) + (none) + ) + +(defmethod draw-option ((this menu-select-scene-option) (arg0 progress) (arg1 font-context) (arg2 int) (arg3 symbol)) + (let ((f30-0 (fmax 0.0 (* 2.0 (- 0.5 (-> arg0 menu-transition)))))) + (let* ((selected (-> *progress-work* selected-num)) + (scenes (cond + ((zero? selected) + *hud-select-scene-act1* + ) + ((= selected 1) + *hud-select-scene-act2* + ) + ((= selected 2) + *hud-select-scene-act3* + ) + (else + *hud-select-scene-commentary* + ) + ) + ) + (len (-> scenes length)) + ) + (set-alpha! arg1 f30-0) + (set-flags! arg1 (font-flags kerning large)) + (set-scale! arg1 0.42) + (progress-method-33 arg0 (-> *progress-work* body-footer)) + (let ((idx (max 0 (the int (-> this current-index))))) + (string-format "~S" (lookup-text! *common-text* (-> scenes idx text) #f)) + (let ((f28-0 (print-game-text *temp-string* arg1 #t 44 (bucket-id hud-draw-hud-alpha)))) + (let ((s0-1 (get-scissor-stack-top arg0))) + (let* ((cur-idx (-> this current-index)) + (f2-5 (+ (- 8.0 (* f28-0 (- cur-idx (* (the float (the int (/ cur-idx 1.0))) 1.0)))) (-> s0-1 y))) + ) + (set-origin! arg1 (the int (+ 10.0 (-> s0-1 x))) (the int f2-5)) + ) + (set-width! arg1 (the int (+ (- -20.0 (-> s0-1 x)) (-> s0-1 z)))) + (when (not (-> *pc-settings* use-vis?)) + (set! (-> arg1 origin x) (the float (adjust-game-x (-> arg1 origin x)))) + (*! (-> arg1 width) (-> *pc-settings* aspect-ratio-reciprocal))) + (set-height! arg1 (the int (- (-> s0-1 w) (-> s0-1 y)))) + (while (and (< (-> arg1 origin y) (-> s0-1 w)) (< idx len)) + (cond + ((= idx (-> this selected-index)) + (set-color! arg1 (font-color font-color-34)) + ) + (else + (set-color! arg1 (font-color font-color-32)) + ) + ) + (string-format "~S" (lookup-text! *common-text* (-> scenes idx text) #f)) + (let* ((f26-0 (print-game-text *temp-string* arg1 #f 40 (bucket-id hud-draw-hud-alpha)))) + (if (= idx (-> this selected-index)) + (draw-highlight-bar arg0 arg1 (the int (+ -2.0 (-> arg1 origin y))) (the int (+ 2.0 f26-0)) f30-0) + ) + (+! (-> arg1 origin y) f26-0) + ) + (1+! idx) + ) + ) + (seek! + (-> this current-index) + (-> this target-index) + (* (/ (-> this scroll-speed) f28-0) (seconds-per-frame)) + ) + ) + ) + ) + (progress-method-34 arg0) + (let* ((selected (-> *progress-work* selected-num))) + (draw-header arg0 arg1 f30-0 (cond + ((zero? selected) + (text-id progress-scene-player-act-1) + ) + ((= selected 1) + (text-id progress-scene-player-act-2) + ) + ((= selected 2) + (text-id progress-scene-player-act-3) + ) + (else + (text-id progress-title-commentary) + ) + ) + ) + ) + (draw-bg-box-alpha-2 arg0 (-> *progress-work* footer) (* 64.0 f30-0)) + (draw-bg-box-outline arg0 (-> *progress-work* footer) (* 128.0 f30-0)) + ) + (progress-method-47 + arg0 + arg1 + (!= (-> this current-index) 0.0) + (!= (-> this current-index) (the float (+ (-> arg0 total-num-tasks) -1))) + ) + (none) + ) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; CUSTOM MENU OPTIONS