From ce97ce959b8c773097f593bf42f470555f6a6e2b Mon Sep 17 00:00:00 2001 From: Matt Dallmeyer Date: Mon, 7 Sep 2026 19:50:53 -0700 Subject: [PATCH] [jak3] `game-score` decomp cleanup, track minigame rank in autosplitter instead of task status (#4409) The current autosplit options for side missions that track bronze/gold/silver don't actually work (other than the explicit gold options I added in #4398). This reworks these to track the player's best rank in these missions (0=unranked, 1=bronze, 2=silver, 3=gold), and I have the [corresponding autosplitter script changes](https://github.com/open-goal/speedrunning/pull/35) to split when reaching gold (rank 3). Should be okay to repurpose some of these autosplitter fields since we haven't cut a release using them yet. Along the way I filled out the `game-score` enum, made use of this enum in place of uints throughout the code, and renamed things for a few related `game-info` methods. --- decompiler/config/jak3/all-types.gc | 62 +++++++++---------- .../config/jak3/ntsc_v1/var_names.jsonc | 8 +++ goal_src/jak3/engine/ai/traffic-h.gc | 8 +-- goal_src/jak3/engine/anim/joint-mod-h.gc | 8 ++- .../jak3/engine/debug/nav-mesh-editor-h.gc | 8 +-- .../jak3/engine/debug/nav/mysql-nav-graph.gc | 4 +- goal_src/jak3/engine/game/game-info-h.gc | 10 +-- goal_src/jak3/engine/game/game-info.gc | 34 +++++----- goal_src/jak3/engine/game/main-h.gc | 32 +++++----- goal_src/jak3/engine/game/settings-h.gc | 36 +++++------ goal_src/jak3/engine/load/loader.gc | 4 +- goal_src/jak3/engine/physics/rigid-body-h.gc | 8 +-- .../jak3/engine/ui/progress/progress-draw.gc | 2 +- .../jak3/engine/ui/progress/progress-h.gc | 2 +- .../engine/ui/progress/progress-static.gc | 32 +++++----- goal_src/jak3/levels/city/ctywide-obs.gc | 52 ++++++++-------- .../jak3/levels/city/vinroom/power-game.gc | 8 +-- .../jak3/levels/common/race/race-manager.gc | 6 +- .../jak3/levels/desert/des-bbush-tasks.gc | 26 ++++---- .../jak3/levels/desert/race/course-race.gc | 20 +++--- .../jak3/levels/gungame/gungame-manager.gc | 24 +++---- .../levels/wascity/defend/was-pre-game.gc | 18 +++--- .../jak3/levels/wascity/wasgun-manager.gc | 20 +++--- .../levels/wascity/wasstadium/wasstadb-obs.gc | 2 +- goal_src/jak3/pc/features/autosplit-h.gc | 22 +++++-- goal_src/jak3/pc/features/autosplit.gc | 28 +++++++-- goal_src/jak3/pc/progress/progress-draw-pc.gc | 2 +- goal_src/jak3/pc/progress/progress-pc.gc | 2 +- .../jak3/engine/game/game-info-h_REF.gc | 10 +-- .../jak3/engine/game/game-info_REF.gc | 34 +++++----- .../engine/ui/progress/progress-draw_REF.gc | 2 +- .../jak3/engine/ui/progress/progress-h_REF.gc | 2 +- .../engine/ui/progress/progress-static_REF.gc | 32 +++++----- .../jak3/levels/city/ctywide-obs_REF.gc | 52 ++++++++-------- .../levels/city/vinroom/power-game_REF.gc | 8 +-- .../levels/common/race/race-manager_REF.gc | 6 +- .../jak3/levels/desert/des-bbush-tasks_REF.gc | 26 ++++---- .../levels/desert/race/course-race_REF.gc | 20 +++--- .../levels/gungame/gungame-manager_REF.gc | 28 ++++----- .../levels/wascity/defend/was-pre-game_REF.gc | 18 +++--- .../jak3/levels/wascity/wasgun-manager_REF.gc | 24 +++---- .../wascity/wasstadium/wasstadb-obs_REF.gc | 6 +- 42 files changed, 387 insertions(+), 369 deletions(-) diff --git a/decompiler/config/jak3/all-types.gc b/decompiler/config/jak3/all-types.gc index d1f664358a..375a9363da 100644 --- a/decompiler/config/jak3/all-types.gc +++ b/decompiler/config/jak3/all-types.gc @@ -11254,25 +11254,25 @@ ;; +++settings-h:game-score (defenum game-score - :type uint64 + :type uint8 (none) - (gs0) - (gs1) - (gs2) - (gs3) - (gs4) - (gs5) - (gs6) - (gs7) - (gs8) - (gs9) - (gs10) - (gs11) - (gs12) - (gs13) - (gs14) - (gs15) - (gs16) + (neo-sat-game) + (turtle-race) + (snake-race) + (snake-air-time) + (snake-total-air-time) + (snake-jump-distance) + (snake-total-jump-distance) + (snake-roll-count) + (wascity-gungame-1) + (hoverboard) + (gungame-1) + (gungame-2) + (gungame-3) + (gungame-4) + (power-game) + (destroy-interceptors) + (arena-training) (gs17) (gs18) (gs19) @@ -17676,11 +17676,11 @@ (you-suck-stage (_type_ symbol int) int) ;; 24 (you-suck-scale (_type_ symbol int) float) ;; 25 (get-next-attack-id! (_type_) uint) ;; 26 - (game-info-method-27 (_type_ game-score float) int) ;; 27 - (get-game-score-ref (_type_ int) (pointer float)) ;; 28 - (game-info-method-29 (_type_ int) int) ;; 29 - (get-highscore-rank (_type_ int float) int) ;; 30 - (game-info-method-31 (_type_ int int) float) ;; 31 + (update-high-score! (_type_ game-score float) int) ;; 27 + (get-game-score-ref (_type_ game-score) (pointer float)) ;; 28 + (get-best-rank (_type_ game-score) int) ;; 29 + (get-rank-for-score (_type_ game-score float) int) ;; 30 + (get-goal-for-rank (_type_ game-score int) float) ;; 31 (calculate-percentage (_type_) float) ;; 32 (inc-death-count! (_type_) none) ;; 33 (get-max-ammo-for-gun (_type_ pickup-type) float) ;; 34 @@ -28463,7 +28463,7 @@ (deftype highscore-page-info (structure) ((text text-id :offset-assert 0) (secret game-secrets :offset-assert 8) - (game-score uint8 :offset-assert 16) + (game-score game-score :offset-assert 16) (icon uint32 :offset-assert 20) (icon-scalex float :offset-assert 24) (icon-scaley float :offset-assert 28) @@ -48157,7 +48157,7 @@ (been-out-of-turret? symbol :offset-assert 436) (won? symbol :offset-assert 440) (lost? symbol :offset-assert 444) - (game-score uint8 :offset-assert 448) + (game-score game-score :offset-assert 448) (task-gold uint16 :offset-assert 450) (task-silver uint16 :offset-assert 452) (task-bronze uint16 :offset-assert 454) @@ -52827,7 +52827,7 @@ (hud-score handle :offset-assert 312) (hud-goal handle :offset-assert 320) (squad-manager handle :offset 336) - (game-score uint8 :offset-assert 344) + (game-score game-score :offset-assert 344) (last-cup uint8 :offset-assert 345) (goal-cup uint8 :offset-assert 346) (new-high-score symbol :offset-assert 348) @@ -66101,7 +66101,7 @@ ) (deftype task-manager-bbush-time-trial-1 (task-manager-race) - ((game-score uint8 :offset-assert 280) + ((game-score game-score :offset-assert 280) (hud-goal handle :offset-assert 288) ) :method-count-assert 39 @@ -66123,7 +66123,7 @@ ) (deftype task-manager-bbush-rally (task-manager-race) - ((game-score uint8 :offset-assert 280) + ((game-score game-score :offset-assert 280) (hud-goal handle :offset-assert 288) ) :method-count-assert 39 @@ -68147,7 +68147,7 @@ (task-bronze game-task-node :offset-assert 20) (task-silver game-task-node :offset 22) (task-gold game-task-node :offset 24) - (game-score uint8 :offset 26) + (game-score game-score :offset 26) (pass-speech uint16 :offset-assert 28) (training-goal float :offset-assert 32) (allowed-guns game-feature :offset-assert 40) @@ -68198,7 +68198,7 @@ (task-bronze game-task-node :offset 428) (end-door uint8 :offset 430) (start-door uint8 :offset-assert 431) - (game-score uint8 :offset-assert 432) + (game-score game-score :offset-assert 432) (training-goal float :offset-assert 436) (training? symbol :offset-assert 440) (state-time time-frame :offset-assert 448) @@ -70409,7 +70409,7 @@ (challenge-done symbol :offset-assert 244) (hud-score handle :offset-assert 248) (hud-goal handle :offset-assert 256) - (game-score uint8 :offset-assert 264) + (game-score game-score :offset-assert 264) (new-high-score symbol :offset-assert 268) (goal-cup uint8 :offset-assert 272) (last-cup uint8 :offset-assert 273) diff --git a/decompiler/config/jak3/ntsc_v1/var_names.jsonc b/decompiler/config/jak3/ntsc_v1/var_names.jsonc index 2611452c37..d0fd52bf0e 100644 --- a/decompiler/config/jak3/ntsc_v1/var_names.jsonc +++ b/decompiler/config/jak3/ntsc_v1/var_names.jsonc @@ -2179,5 +2179,13 @@ "vars": { "v0-0": ["flag", "pilrec-sample-flag"] } + }, + "(method 29 game-info)": { + "vars": { + "gp-0": "best-rank", + "s4-0": "score-goals", + "s3-0": "player-scores", + "s5-0": "player-rank-counts" + } } } diff --git a/goal_src/jak3/engine/ai/traffic-h.gc b/goal_src/jak3/engine/ai/traffic-h.gc index 07879866e7..6353e5a384 100644 --- a/goal_src/jak3/engine/ai/traffic-h.gc +++ b/goal_src/jak3/engine/ai/traffic-h.gc @@ -10,7 +10,7 @@ (declare-type nav-mesh basic) (declare-type nav-branch structure) -;; +++traffic-h:traffic-spawn-flags +;; +++traffic-spawn-flags (defenum traffic-spawn-flags :type uint32 :bitfield #t @@ -32,9 +32,9 @@ (tsf15 15) (tsf16 16) ) -;; ---traffic-h:traffic-spawn-flags +;; ---traffic-spawn-flags -;; +++traffic-h:traffic-type +;; +++traffic-type (defenum traffic-type :type uint8 (civilian-male 0) @@ -70,7 +70,7 @@ (invalid0 -1) (invalid #xffffffff) ) -;; ---traffic-h:traffic-type +;; ---traffic-type (define-extern traffic-start (function none)) (define-extern traffic-kill (function none)) diff --git a/goal_src/jak3/engine/anim/joint-mod-h.gc b/goal_src/jak3/engine/anim/joint-mod-h.gc index 105e8066bd..2f976d5d62 100644 --- a/goal_src/jak3/engine/anim/joint-mod-h.gc +++ b/goal_src/jak3/engine/anim/joint-mod-h.gc @@ -19,6 +19,7 @@ ;; the `joint-mod-base` was added in jak 3. +;; +++joint-mod-mode (defenum joint-mod-mode :bitfield #t :type uint32 @@ -36,8 +37,9 @@ (foot-rot) (joint-set-world) ) +;; ---joint-mod-mode -;; +++joint-mod-h:track-mode +;; +++track-mode (defenum track-mode :bitfield #t :type uint16 @@ -49,8 +51,9 @@ (no-rotate 5) ;; 32 (no-scale 6) ;; 64 ) -;; ---joint-mod-h:track-mode +;; ---track-mode +;; +++joint-mod-ik-flags (defenum joint-mod-ik-flags :bitfield #t :type uint32 @@ -58,6 +61,7 @@ (elbow-trans-neg) (elbow-rot-neg) ) +;; ---joint-mod-ik-flags (defenum joint-mod-base-flags :bitfield #t diff --git a/goal_src/jak3/engine/debug/nav-mesh-editor-h.gc b/goal_src/jak3/engine/debug/nav-mesh-editor-h.gc index b12b6ad696..ed7c354e53 100644 --- a/goal_src/jak3/engine/debug/nav-mesh-editor-h.gc +++ b/goal_src/jak3/engine/debug/nav-mesh-editor-h.gc @@ -5,7 +5,7 @@ ;; name in dgo: nav-mesh-editor-h ;; dgos: GAME -;; +++nav-mesh-editor-h:nav-mesh-poly-flag +;; +++nav-mesh-poly-flag (defenum nav-mesh-poly-flag :type uint32 :bitfield #t @@ -14,15 +14,15 @@ (nmpf2 2) (user0 3) ) -;; ---nav-mesh-editor-h:nav-mesh-poly-flag +;; ---nav-mesh-poly-flag -;; +++nav-mesh-editor-h:nav-mesh-editable-flag +;; +++nav-mesh-editable-flag (defenum nav-mesh-editable-flag :type uint32 :bitfield #t (nmef0 0) ) -;; ---nav-mesh-editor-h:nav-mesh-editable-flag +;; ---nav-mesh-editable-flag (declare-type nav-mesh-editable structure) diff --git a/goal_src/jak3/engine/debug/nav/mysql-nav-graph.gc b/goal_src/jak3/engine/debug/nav/mysql-nav-graph.gc index 8ca3358364..c2c694c0fc 100644 --- a/goal_src/jak3/engine/debug/nav/mysql-nav-graph.gc +++ b/goal_src/jak3/engine/debug/nav/mysql-nav-graph.gc @@ -72,7 +72,7 @@ ) ;; ---mysql-save-flag -;; +++mysql-nav-graph:nav-minimap-edge-flag +;; +++nav-minimap-edge-flag (defenum nav-minimap-edge-flag "This string value is stored in their SQL database" :type int32 @@ -85,7 +85,7 @@ (pass-indb-sluma 5) (pass-slumb-genb 6) ) -;; ---mysql-nav-graph:nav-minimap-edge-flag +;; ---nav-minimap-edge-flag (declare-type mysql-nav-edge structure) diff --git a/goal_src/jak3/engine/game/game-info-h.gc b/goal_src/jak3/engine/game/game-info-h.gc index 068f8c0a99..a64950e17c 100644 --- a/goal_src/jak3/engine/game/game-info-h.gc +++ b/goal_src/jak3/engine/game/game-info-h.gc @@ -435,11 +435,11 @@ (you-suck-stage (_type_ symbol int) int) (you-suck-scale (_type_ symbol int) float) (get-next-attack-id! (_type_) uint) - (game-info-method-27 (_type_ game-score float) int) - (get-game-score-ref (_type_ int) (pointer float)) - (game-info-method-29 (_type_ int) int) - (get-highscore-rank (_type_ int float) int) - (game-info-method-31 (_type_ int int) float) + (update-high-score! (_type_ game-score float) int) + (get-game-score-ref (_type_ game-score) (pointer float)) + (get-best-rank (_type_ game-score) int) + (get-rank-for-score (_type_ game-score float) int) + (get-goal-for-rank (_type_ game-score int) float) (calculate-percentage (_type_) float) (inc-death-count! (_type_) none) (get-max-ammo-for-gun (_type_ pickup-type) float) diff --git a/goal_src/jak3/engine/game/game-info.gc b/goal_src/jak3/engine/game/game-info.gc index f41fbfe3ab..8d96b653d3 100644 --- a/goal_src/jak3/engine/game/game-info.gc +++ b/goal_src/jak3/engine/game/game-info.gc @@ -1856,7 +1856,7 @@ (format #t "~Tscore:~%") (format #t "~T~T--------------------~%") (dotimes (s4-3 18) - (let ((v1-70 (get-game-score-ref this s4-3)) + (let ((v1-70 (get-game-score-ref this (the-as game-score s4-3))) (t9-18 format) (a0-26 #t) (a1-24 "~T~T~-32S ~8,,0f ~8,,0f ~8,,0f~%") @@ -2016,43 +2016,43 @@ 0 ) -(defmethod get-game-score-ref ((this game-info) (arg0 int)) +(defmethod get-game-score-ref ((this game-info) (arg0 game-score)) (&+ (-> this game-score data) (* (* arg0 8) 4)) ) -(defmethod game-info-method-29 ((this game-info) (arg0 int)) - (let ((gp-0 0)) - (let ((s4-0 (-> *highscore-info-array* arg0)) - (s3-0 (get-game-score-ref this arg0)) - (s5-0 (new 'stack-no-clear 'array 'int8 4)) +(defmethod get-best-rank ((this game-info) (arg0 game-score)) + (let ((best-rank 0)) + (let ((score-goals (-> *highscore-info-array* arg0)) + (player-scores (get-game-score-ref this arg0)) + (player-rank-counts (new 'stack-no-clear 'array 'int8 4)) ) (dotimes (v1-3 4) - (set! (-> s5-0 v1-3) 0) + (set! (-> player-rank-counts v1-3) 0) ) (dotimes (s2-0 8) - (let ((f0-0 (-> s3-0 s2-0))) + (let ((f0-0 (-> player-scores s2-0))) (when (!= f0-0 0.0) - (let ((v1-9 (get-rank s4-0 f0-0))) - (+! (-> s5-0 v1-9) 1) + (let ((v1-9 (get-rank score-goals f0-0))) + (+! (-> player-rank-counts v1-9) 1) ) ) ) ) (dotimes (v1-13 4) - (if (> (-> s5-0 v1-13) 0) - (set! gp-0 v1-13) + (if (> (-> player-rank-counts v1-13) 0) + (set! best-rank v1-13) ) ) ) - gp-0 + best-rank ) ) -(defmethod get-highscore-rank ((this game-info) (arg0 int) (arg1 float)) +(defmethod get-rank-for-score ((this game-info) (arg0 game-score) (arg1 float)) (get-rank (-> *highscore-info-array* arg0) arg1) ) -(defmethod game-info-method-31 ((this game-info) (arg0 int) (arg1 int)) +(defmethod get-goal-for-rank ((this game-info) (arg0 game-score) (arg1 int)) (let ((highscore-arr (-> *highscore-info-array* arg0))) (case arg1 ((1 2 3) @@ -2153,7 +2153,7 @@ ) ) -(defmethod game-info-method-27 ((this game-info) (arg0 game-score) (arg1 float)) +(defmethod update-high-score! ((this game-info) (arg0 game-score) (arg1 float)) (when (!= arg1 0.0) (let ((v1-3 (&+ (-> this game-score data) (* (* arg0 8) 4)))) (cond diff --git a/goal_src/jak3/engine/game/main-h.gc b/goal_src/jak3/engine/game/main-h.gc index 9e1fa0c505..e0a9071e6b 100644 --- a/goal_src/jak3/engine/game/main-h.gc +++ b/goal_src/jak3/engine/game/main-h.gc @@ -16,7 +16,7 @@ (define-extern on (function symbol process)) (define-extern toggle-pause (function int)) -;; +++main-h:collide-spec +;; +++collide-spec (defenum collide-spec :bitfield #t :type uint32 @@ -53,9 +53,9 @@ (vehicle-mesh-no-block-use 30) (vehicle-sphere-no-probe 31) ) -;; ---main-h:collide-spec +;; ---collide-spec -;; +++main-h:strip-lines-controls +;; +++strip-lines-controls (defenum strip-lines-controls :type int64 (none 0) @@ -73,9 +73,9 @@ ; (strips 256) ; (frags 512) ) -;; ---main-h:strip-lines-controls +;; ---strip-lines-controls -;; +++main-h:scene-controls +;; +++scene-controls (defenum scene-controls :type int64 :bitfield #t @@ -90,9 +90,9 @@ (scene-controls-8) (display-controls) ) -;; ---main-h:scene-controls +;; ---scene-controls -;; +++main-h:bot-marks-controls +;; +++bot-marks-controls (defenum bot-marks-controls :type int64 (all-off 0) @@ -113,9 +113,9 @@ (bmc15 15) (bmc16 16) ) -;; ---main-h:bot-marks-controls +;; ---bot-marks-controls -;; +++main-h:race-marks-controls +;; +++race-marks-controls (defenum race-marks-controls :type int64 (all-off 0) @@ -130,27 +130,27 @@ (all-paths-on 255) (rmc2040 2040) ) -;; ---main-h:race-marks-controls +;; ---race-marks-controls -;; +++main-h:race-selection +;; +++race-selection (defenum race-selection :type int64 (desertb-race-record 0) (rs1 1) (desrally-record 2) ) -;; ---main-h:race-selection +;; ---race-selection -;; +++main-h:subdivide-setting +;; +++subdivide-setting (defenum subdivide-setting :type int64 (textured 0) (outline 1) (gouraud 2) (hack 3)) -;; ---main-h:subdivide-setting +;; ---subdivide-setting -;; +++main-h:ocean-height-hack +;; +++ocean-height-hack (defenum ocean-height-hack :type int64 ; (zero 1) @@ -160,7 +160,7 @@ ; (sewer-med 5) ; (sewer-lo 6) ) -;; ---main-h:ocean-height-hack +;; ---ocean-height-hack (define-extern *progress-cheat* symbol) (define-extern *last-master-mode* symbol) diff --git a/goal_src/jak3/engine/game/settings-h.gc b/goal_src/jak3/engine/game/settings-h.gc index ef0ddc2425..380fa71410 100644 --- a/goal_src/jak3/engine/game/settings-h.gc +++ b/goal_src/jak3/engine/game/settings-h.gc @@ -231,25 +231,25 @@ ;; +++game-score (defenum game-score - :type uint64 + :type uint8 (none) - (gs0) - (gs1) - (gs2) - (gs3) - (gs4) - (gs5) - (gs6) - (gs7) - (gs8) - (gs9) - (gs10) - (gs11) - (gs12) - (gs13) - (gs14) - (gs15) - (gs16) + (neo-sat-game) + (turtle-race) + (snake-race) + (snake-air-time) + (snake-total-air-time) + (snake-jump-distance) + (snake-total-jump-distance) + (snake-roll-count) + (wascity-gungame-1) + (hoverboard) + (gungame-1) + (gungame-2) + (gungame-3) + (gungame-4) + (power-game) + (destroy-interceptors) + (arena-training) (gs17) (gs18) (gs19) diff --git a/goal_src/jak3/engine/load/loader.gc b/goal_src/jak3/engine/load/loader.gc index f62c2167f1..a008ea823a 100644 --- a/goal_src/jak3/engine/load/loader.gc +++ b/goal_src/jak3/engine/load/loader.gc @@ -7,13 +7,13 @@ (define-extern art-group-load-check (function string kheap int art-group)) -;; +++loader:spooler-flags +;; +++spooler-flags (defenum spooler-flags :bitfield #t :type uint32 (blackout-on-stall) ) -;; ---loader:spooler-flags +;; ---spooler-flags ;; DECOMP BEGINS diff --git a/goal_src/jak3/engine/physics/rigid-body-h.gc b/goal_src/jak3/engine/physics/rigid-body-h.gc index c979725f5a..c4deeef93b 100644 --- a/goal_src/jak3/engine/physics/rigid-body-h.gc +++ b/goal_src/jak3/engine/physics/rigid-body-h.gc @@ -6,7 +6,7 @@ ;; dgos: GAME -;; +++rigid-body-h:rigid-body-flag +;; +++rigid-body-flag (defenum rigid-body-flag :bitfield #t :type uint32 @@ -17,9 +17,9 @@ (debug 4) (blocker 5) ) -;; ---rigid-body-h:rigid-body-flag +;; ---rigid-body-flag -;; +++rigid-body-h:rigid-body-object-flag +;; +++rigid-body-object-flag (defenum rigid-body-object-flag :bitfield #t :type uint64 @@ -68,7 +68,7 @@ (nav-spheres 42) (idle-sound 43) ) -;; ---rigid-body-h:rigid-body-object-flag +;; ---rigid-body-object-flag (declare-type rigid-body-object basic) (declare-type rigid-body-queue-manager process) diff --git a/goal_src/jak3/engine/ui/progress/progress-draw.gc b/goal_src/jak3/engine/ui/progress/progress-draw.gc index ad66baa8cf..56fe049c8a 100644 --- a/goal_src/jak3/engine/ui/progress/progress-draw.gc +++ b/goal_src/jak3/engine/ui/progress/progress-draw.gc @@ -1288,7 +1288,7 @@ ) (let ((f30-2 (+ 10.0 arg2 (-> s3-0 x))) (f28-2 (+ -10.0 arg2 (-> s3-0 z))) - (s3-1 (get-game-score-ref *game-info* (the-as int (-> this game-score)))) + (s3-1 (get-game-score-ref *game-info* (-> this game-score))) ) (set-scale! arg1 0.6) (adjust-font-origin-y arg0 arg1 0.03) diff --git a/goal_src/jak3/engine/ui/progress/progress-h.gc b/goal_src/jak3/engine/ui/progress/progress-h.gc index b00d858a9c..db7d31ab9f 100644 --- a/goal_src/jak3/engine/ui/progress/progress-h.gc +++ b/goal_src/jak3/engine/ui/progress/progress-h.gc @@ -518,7 +518,7 @@ (deftype highscore-page-info (structure) ((text text-id) (secret game-secrets) - (game-score uint8) + (game-score game-score) (icon uint32) (icon-scalex float) (icon-scaley float) diff --git a/goal_src/jak3/engine/ui/progress/progress-static.gc b/goal_src/jak3/engine/ui/progress/progress-static.gc index e373177f69..1fbde9fd44 100644 --- a/goal_src/jak3/engine/ui/progress/progress-static.gc +++ b/goal_src/jak3/engine/ui/progress/progress-static.gc @@ -693,7 +693,7 @@ (new 'static 'menu-highscores-option :info (new 'static 'boxed-array :type highscore-page-info (new 'static 'highscore-page-info :text (text-id progress-highscores-satelite-game) - :game-score #x1 + :game-score (game-score neo-sat-game) :icon #x48 :icon-scalex 0.7 :icon-scaley 0.7 @@ -702,7 +702,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-racetrack-time-trial) - :game-score #x2 + :game-score (game-score turtle-race) :icon #x10 :icon-scalex 0.75 :icon-scaley 0.75 @@ -711,7 +711,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-wasteland-run) - :game-score #x3 + :game-score (game-score snake-race) :icon #x11 :icon-scalex 0.75 :icon-scaley 0.75 @@ -720,7 +720,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-single-hang-time) - :game-score #x4 + :game-score (game-score snake-air-time) :icon #x11 :icon-scalex 0.75 :icon-scaley 0.75 @@ -729,7 +729,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-total-hang-time) - :game-score #x5 + :game-score (game-score snake-total-air-time) :icon #x11 :icon-scalex 0.75 :icon-scaley 0.75 @@ -738,7 +738,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-single-distance) - :game-score #x6 + :game-score (game-score snake-jump-distance) :icon #x11 :icon-scalex 0.75 :icon-scaley 0.75 @@ -747,7 +747,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-total-distance) - :game-score #x7 + :game-score (game-score snake-total-jump-distance) :icon #x11 :icon-scalex 0.75 :icon-scaley 0.75 @@ -756,7 +756,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-roll-challenge) - :game-score #x8 + :game-score (game-score snake-roll-count) :icon #x11 :icon-scalex 0.75 :icon-scaley 0.75 @@ -765,7 +765,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-spargus-turret-game) - :game-score #x9 + :game-score (game-score wascity-gungame-1) :icon #x49 :icon-scalex 0.85 :icon-scaley 0.85 @@ -774,7 +774,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-jetboard-challenge) - :game-score #xa + :game-score (game-score hoverboard) :icon #x35 :icon-scalex 1.0 :icon-scaley 1.0 @@ -783,7 +783,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-gun-yellow-2-course) - :game-score #xb + :game-score (game-score gungame-1) :icon #x28 :icon-scalex 0.85 :icon-scaley 0.85 @@ -792,7 +792,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-gun-red-2-course) - :game-score #xc + :game-score (game-score gungame-2) :icon #x25 :icon-scalex 0.85 :icon-scaley 0.85 @@ -802,7 +802,7 @@ (new 'static 'highscore-page-info :text (text-id progress-highscores-ratchet-gun-course) :secret (game-secrets gungame-ratchet) - :game-score #xd + :game-score (game-score gungame-3) :icon #x47 :icon-scalex 0.75 :icon-scaley 0.75 @@ -811,7 +811,7 @@ (new 'static 'highscore-page-info :text (text-id progress-highscores-clank-gun-course) :secret (game-secrets gungame-ratchet) - :game-score #xe + :game-score (game-score gungame-4) :icon #x46 :icon-scalex 0.7 :icon-scaley 0.7 @@ -820,7 +820,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-eco-grid-game) - :game-score #xf + :game-score (game-score power-game) :icon #x4a :icon-scalex 0.85 :icon-scaley 0.85 @@ -829,7 +829,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-marauder-challenge) - :game-score #x10 + :game-score (game-score destroy-interceptors) :icon #x11 :icon-scalex 0.75 :icon-scaley 0.75 diff --git a/goal_src/jak3/levels/city/ctywide-obs.gc b/goal_src/jak3/levels/city/ctywide-obs.gc index 4f95c93ae2..476d215e8f 100644 --- a/goal_src/jak3/levels/city/ctywide-obs.gc +++ b/goal_src/jak3/levels/city/ctywide-obs.gc @@ -2728,7 +2728,7 @@ (challenge-done symbol) (hud-score handle) (hud-goal handle) - (game-score uint8) + (game-score game-score) (new-high-score symbol) (goal-cup uint8) (last-cup uint8) @@ -2765,7 +2765,7 @@ (t9-0 this) ) (set-setting! 'airlock #f 0.0 0) - (set! (-> this game-score) (the-as uint 10)) + (set! (-> this game-score) (game-score hoverboard)) (set! (-> this hud-score) (the-as handle #f)) (set! (-> this hud-goal) (the-as handle #f)) (if (= (-> this hud-score) #f) @@ -2792,7 +2792,7 @@ ) ) (set! (-> *game-info* goal) - (game-info-method-31 *game-info* (the-as int (-> this game-score)) (the-as int (-> this goal-cup))) + (get-goal-for-rank *game-info* (-> this game-score) (the-as int (-> this goal-cup))) ) (let ((v1-14 (handle->process (-> this hud-goal)))) (when v1-14 @@ -2837,8 +2837,8 @@ (defmethod task-manager-bbush-board-method-34 ((this task-manager-bbush-board) (arg0 float)) (set! (-> this roll-back-task?) #t) (let* ((s2-0 (-> this game-score)) - (s4-0 (game-info-method-29 *game-info* (the-as int s2-0))) - (t0-0 (get-highscore-rank *game-info* (the-as int s2-0) arg0)) + (s4-0 (get-best-rank *game-info* s2-0)) + (t0-0 (get-rank-for-score *game-info* s2-0 arg0)) (s3-1 (max 0 (- t0-0 s4-0))) ) (let ((t9-2 format) @@ -2850,58 +2850,58 @@ a0-3 a1-3 (cond - ((= v1-4 7) + ((= v1-4 (game-score snake-total-jump-distance)) "snake-total-jump-distance" ) - ((= v1-4 5) + ((= v1-4 (game-score snake-total-air-time)) "snake-total-air-time" ) - ((= v1-4 10) + ((= v1-4 (game-score hoverboard)) "hoverboard" ) - ((= v1-4 12) + ((= v1-4 (game-score gungame-2)) "gungame-2" ) - ((= v1-4 17) + ((= v1-4 (game-score arena-training)) "arena-training" ) - ((= v1-4 8) + ((= v1-4 (game-score snake-roll-count)) "snake-roll-count" ) - ((= v1-4 14) + ((= v1-4 (game-score gungame-4)) "gungame-4" ) - ((= v1-4 6) + ((= v1-4 (game-score snake-jump-distance)) "snake-jump-distance" ) - ((= v1-4 13) + ((= v1-4 (game-score gungame-3)) "gungame-3" ) - ((= v1-4 4) + ((= v1-4 (game-score snake-air-time)) "snake-air-time" ) - ((= v1-4 9) + ((= v1-4 (game-score wascity-gungame-1)) "wascity-gungame-1" ) - ((zero? v1-4) + ((= v1-4 (game-score none)) "none" ) - ((= v1-4 15) + ((= v1-4 (game-score power-game)) "power-game" ) - ((= v1-4 3) + ((= v1-4 (game-score snake-race)) "snake-race" ) - ((= v1-4 1) + ((= v1-4 (game-score neo-sat-game)) "neo-sat-game" ) - ((= v1-4 16) + ((= v1-4 (game-score destroy-interceptors)) "destroy-interceptors" ) - ((= v1-4 11) + ((= v1-4 (game-score gungame-1)) "gungame-1" ) - ((= v1-4 2) + ((= v1-4 (game-score turtle-race)) "turtle-race" ) (else @@ -2914,7 +2914,7 @@ s3-1 ) ) - (game-info-method-27 *game-info* (the-as game-score s2-0) arg0) + (update-high-score! *game-info* s2-0 arg0) (let ((v1-7 (new 'static 'fact-info)) (f30-0 (* (the float s3-1) (the float (-> this info user-count)))) ) @@ -2936,7 +2936,7 @@ ) ) (else - (let ((f0-5 (game-info-method-31 *game-info* (the-as int (-> this game-score)) (the-as int (-> this goal-cup))))) + (let ((f0-5 (get-goal-for-rank *game-info* (-> this game-score) (the-as int (-> this goal-cup))))) (if (< arg0 f0-5) (send-event this 'fail) ) @@ -2975,7 +2975,7 @@ (while (send-event (handle->process (the-as handle gp-1)) 'waiting) (suspend) ) - (set! (-> self last-cup) (the-as uint (game-info-method-29 *game-info* (the-as int (-> self game-score))))) + (set! (-> self last-cup) (the-as uint (get-best-rank *game-info* (-> self game-score)))) (format #t "last-cup: ~d~%" (-> self last-cup)) (set! (-> self goal-cup) (+ (-> self last-cup) 1)) (suspend) diff --git a/goal_src/jak3/levels/city/vinroom/power-game.gc b/goal_src/jak3/levels/city/vinroom/power-game.gc index 20ac37c61f..c8fc70d34a 100644 --- a/goal_src/jak3/levels/city/vinroom/power-game.gc +++ b/goal_src/jak3/levels/city/vinroom/power-game.gc @@ -1593,21 +1593,21 @@ ((not (task-node-closed? (game-task-node city-power-game-resolution))) ) ((not (task-node-closed? (game-task-node city-power-game-bronze))) - (when (>= f30-0 (game-info-method-31 *game-info* 15 1)) + (when (>= f30-0 (get-goal-for-rank *game-info* (game-score power-game) 1)) (sound-play-by-spec (static-sound-spec "skill-pickup" :group 0 :fo-curve 1) (new-sound-id) (the-as vector #t)) (script-eval '(birth-pickup ("power-game-player" "head") skill FACT_SUPER_SKILL_INC flags (suck-in))) (task-node-close! (game-task-node city-power-game-bronze) 'event) ) ) ((not (task-node-closed? (game-task-node city-power-game-silver))) - (when (>= f30-0 (game-info-method-31 *game-info* 15 2)) + (when (>= f30-0 (get-goal-for-rank *game-info* (game-score power-game) 2)) (sound-play-by-spec (static-sound-spec "skill-pickup" :group 0 :fo-curve 1) (new-sound-id) (the-as vector #t)) (script-eval '(birth-pickup ("power-game-player" "head") skill FACT_SUPER_SKILL_INC flags (suck-in))) (task-node-close! (game-task-node city-power-game-silver) 'event) ) ) ((not (task-node-closed? (game-task-node city-power-game-gold))) - (when (>= f30-0 (game-info-method-31 *game-info* 15 3)) + (when (>= f30-0 (get-goal-for-rank *game-info* (game-score power-game) 3)) (sound-play-by-spec (static-sound-spec "skill-pickup" :group 0 :fo-curve 1) (new-sound-id) (the-as vector #t)) (script-eval '(birth-pickup ("power-game-player" "head") skill FACT_SUPER_SKILL_INC flags (suck-in))) (task-node-close! (game-task-node city-power-game-gold) 'event) @@ -3260,7 +3260,7 @@ ) (when (not (and (-> self next-state) (= (-> self next-state name) 'active))) (format #t "score of ~f~%" (+ (-> self base-score) (-> self score))) - (game-info-method-27 *game-info* (game-score gs14) (+ (-> self base-score) (-> self score))) + (update-high-score! *game-info* (game-score power-game) (+ (-> self base-score) (-> self score))) ) (remove-from-process *task-manager-engine* self) (remove-setting! 'music) diff --git a/goal_src/jak3/levels/common/race/race-manager.gc b/goal_src/jak3/levels/common/race/race-manager.gc index 29ddda22e4..67653197cd 100644 --- a/goal_src/jak3/levels/common/race/race-manager.gc +++ b/goal_src/jak3/levels/common/race/race-manager.gc @@ -993,8 +993,8 @@ ) (let ((sv-32 -1)) (when (nonzero? sv-16) - (let ((gp-0 (game-info-method-29 *game-info* (the-as int sv-16))) - (s5-0 (get-highscore-rank *game-info* (the-as int sv-16) sv-20)) + (let ((gp-0 (get-best-rank *game-info* (the-as game-score sv-16))) + (s5-0 (get-rank-for-score *game-info* (the-as game-score sv-16) sv-20)) ) (let ((s4-0 (* (the-as uint (max 0 (- s5-0 gp-0))) (the-as uint (if (= sv-16 3) 6 @@ -1019,7 +1019,7 @@ ) ) ) - (set! sv-32 (game-info-method-27 *game-info* (the-as game-score sv-16) sv-20)) + (set! sv-32 (update-high-score! *game-info* (the-as game-score sv-16) sv-20)) ;; og:preserve-this pass handle to race-manager for money-per-level tracking (give *game-info* 'skill (the float s4-0) (process->handle this)) ) diff --git a/goal_src/jak3/levels/desert/des-bbush-tasks.gc b/goal_src/jak3/levels/desert/des-bbush-tasks.gc index bb3f412d0b..1f41c143f5 100644 --- a/goal_src/jak3/levels/desert/des-bbush-tasks.gc +++ b/goal_src/jak3/levels/desert/des-bbush-tasks.gc @@ -287,7 +287,7 @@ (hud-score handle) (hud-goal handle) (squad-manager handle :offset 336) - (game-score uint8) + (game-score game-score) (last-cup uint8) (goal-cup uint8) (new-high-score symbol) @@ -324,9 +324,7 @@ ) ) ) - (set! (-> this goal) - (game-info-method-31 *game-info* (the-as int (-> this game-score)) (the-as int (-> this goal-cup))) - ) + (set! (-> this goal) (get-goal-for-rank *game-info* (-> this game-score) (the-as int (-> this goal-cup)))) (set! (-> gp-0 goal) (* (-> this display-units) (-> this goal))) (set! (-> gp-0 goal-cup) (-> this goal-cup)) ) @@ -449,11 +447,11 @@ (defmethod award-skill ((this task-manager-vehicle-bbush) (arg0 float)) (let* ((s5-0 (-> this game-score)) - (s3-0 (game-info-method-29 *game-info* (the-as int s5-0))) - (v1-2 (get-highscore-rank *game-info* (the-as int s5-0) arg0)) + (s3-0 (get-best-rank *game-info* s5-0)) + (v1-2 (get-rank-for-score *game-info* s5-0 arg0)) (gp-1 (max 0 (- v1-2 s3-0))) ) - (game-info-method-27 *game-info* (the-as game-score s5-0) arg0) + (update-high-score! *game-info* s5-0 arg0) ;; og:preserve-this pass handle to task-manager for money-per-level tracking (give *game-info* 'skill (* (the float gp-1) (-> *FACT-bank* super-skill-inc)) (process->handle this)) ) @@ -473,7 +471,7 @@ #f (label cfg-7) (set-setting! 'exclusive-task #f 0.0 (-> self node-info task)) - (set! (-> self last-cup) (the-as uint (game-info-method-29 *game-info* (the-as int (-> self game-score))))) + (set! (-> self last-cup) (the-as uint (get-best-rank *game-info* (-> self game-score)))) (set! (-> self goal-cup) (+ (-> self last-cup) 1)) (task-manager-vehicle-bbush-method-34 self) (set! (-> self new-high-score) #f) @@ -573,7 +571,7 @@ (call-parent-method this) (set! (-> this display-units) 0.0033333334) (set! (-> this time-limit) (seconds 30)) - (set! (-> this game-score) (the-as uint 4)) + (set! (-> this game-score) (game-score snake-air-time)) (set! (-> *wasbbv-hud-info* score-text) (text-id text-0573)) (none) ) @@ -597,7 +595,7 @@ (call-parent-method this) (set! (-> this display-units) 0.0033333334) (set! (-> this time-limit) (seconds 60)) - (set! (-> this game-score) (the-as uint 5)) + (set! (-> this game-score) (game-score snake-total-air-time)) (set! (-> *wasbbv-hud-info* score-text) (text-id text-0078)) (none) ) @@ -622,7 +620,7 @@ (call-parent-method this) (set! (-> this display-units) 0.00024414062) (set! (-> this time-limit) (seconds 30)) - (set! (-> this game-score) (the-as uint 6)) + (set! (-> this game-score) (game-score snake-jump-distance)) (set! (-> *wasbbv-hud-info* score-text) (text-id your-distance)) (set! (-> *wasbbv-hud-info* decimal-place-count) 1) (none) @@ -647,7 +645,7 @@ (call-parent-method this) (set! (-> this display-units) 0.00024414062) (set! (-> this time-limit) (seconds 60)) - (set! (-> this game-score) (the-as uint 7)) + (set! (-> this game-score) (game-score snake-total-jump-distance)) (set! (-> *wasbbv-hud-info* score-text) (text-id total-distance)) (set! (-> *wasbbv-hud-info* decimal-place-count) 1) (none) @@ -674,7 +672,7 @@ (call-parent-method this) (set! (-> this display-units) 1.0) (set! (-> this time-limit) (seconds 60)) - (set! (-> this game-score) (the-as uint 8)) + (set! (-> this game-score) (game-score snake-roll-count)) (set! (-> this want-current-hud?) #f) (set! (-> *wasbbv-hud-info* score-text) (text-id total-rolls)) (set! (-> *wasbbv-hud-info* decimal-place-count) 0) @@ -713,7 +711,7 @@ (call-parent-method this) (set! (-> this display-units) 1.0) (set! (-> this time-limit) (seconds 120)) - (set! (-> this game-score) (the-as uint 16)) + (set! (-> this game-score) (game-score destroy-interceptors)) (set! (-> this want-current-hud?) #f) (set! (-> this max-reserve-count) 1000) (set! (-> *wasbbv-hud-info* score-text) (text-id kills)) diff --git a/goal_src/jak3/levels/desert/race/course-race.gc b/goal_src/jak3/levels/desert/race/course-race.gc index 7109008dd4..e5c8989107 100644 --- a/goal_src/jak3/levels/desert/race/course-race.gc +++ b/goal_src/jak3/levels/desert/race/course-race.gc @@ -727,7 +727,7 @@ ) (deftype task-manager-bbush-time-trial-1 (task-manager-race) - ((game-score uint8) + ((game-score game-score) (hud-goal handle) ) ) @@ -754,14 +754,12 @@ :code (behavior () (set! (-> self start-continue) (the-as continue-point "desertb-time-trial-start")) (set-setting! 'exclusive-task #f 0.0 (-> self node-info task)) - (set! (-> self game-score) (the-as uint 2)) - (let ((v1-6 (game-info-method-29 *game-info* (the-as int (-> self game-score)))) + (set! (-> self game-score) (game-score turtle-race)) + (let ((v1-6 (get-best-rank *game-info* (-> self game-score))) (gp-0 *bbush-time-trial-hud-info*) ) (set! (-> gp-0 goal-cup) (the-as uint (+ v1-6 1))) - (set! (-> gp-0 goal) - (game-info-method-31 *game-info* (the-as int (-> self game-score)) (the-as int (-> gp-0 goal-cup))) - ) + (set! (-> gp-0 goal) (get-goal-for-rank *game-info* (-> self game-score) (the-as int (-> gp-0 goal-cup)))) ) (set! (-> self hud-goal) (ppointer->handle @@ -840,7 +838,7 @@ ) (deftype task-manager-bbush-rally (task-manager-race) - ((game-score uint8) + ((game-score game-score) (hud-goal handle) ) ) @@ -901,14 +899,12 @@ :virtual #t :code (behavior () (set! (-> self start-continue) (the-as continue-point "desrally-race-start")) - (set! (-> self game-score) (the-as uint 3)) - (let ((v1-3 (game-info-method-29 *game-info* (the-as int (-> self game-score)))) + (set! (-> self game-score) (game-score snake-race)) + (let ((v1-3 (get-best-rank *game-info* (-> self game-score))) (gp-0 *bbush-time-trial-hud-info*) ) (set! (-> gp-0 goal-cup) (the-as uint (+ v1-3 1))) - (set! (-> gp-0 goal) - (game-info-method-31 *game-info* (the-as int (-> self game-score)) (the-as int (-> gp-0 goal-cup))) - ) + (set! (-> gp-0 goal) (get-goal-for-rank *game-info* (-> self game-score) (the-as int (-> gp-0 goal-cup)))) ) (set! (-> self hud-goal) (ppointer->handle diff --git a/goal_src/jak3/levels/gungame/gungame-manager.gc b/goal_src/jak3/levels/gungame/gungame-manager.gc index 1fdbf8cd5a..4d543ca050 100644 --- a/goal_src/jak3/levels/gungame/gungame-manager.gc +++ b/goal_src/jak3/levels/gungame/gungame-manager.gc @@ -19,7 +19,7 @@ (task-bronze game-task-node) (task-silver game-task-node :offset 22) (task-gold game-task-node :offset 24) - (game-score uint8 :offset 26) + (game-score game-score :offset 26) (pass-speech uint16) (training-goal float) (allowed-guns game-feature) @@ -65,7 +65,7 @@ (task-bronze game-task-node :offset 428) (end-door uint8 :offset 430) (start-door uint8) - (game-score uint8) + (game-score game-score) (training-goal float) (training? symbol) (state-time time-frame) @@ -365,7 +365,7 @@ ;; WARN: Return type mismatch object vs none. (defmethod update-hud-text ((this gungame-manager)) - (get-game-score-ref *game-info* (the-as int (-> this game-score))) + (get-game-score-ref *game-info* (-> this game-score)) (let ((gp-0 (the-as hud (handle->process (-> this hud-goal))))) (cond ((not (task-node-closed? (-> this task-bronze))) @@ -537,10 +537,10 @@ (set! (-> self hud-score) (ppointer->handle (process-spawn hud-big-score :init hud-init-by-other :name "hud-big-score" :to self)) ) - (set! (-> self score-gold) (the int (game-info-method-31 *game-info* (the-as int (-> self game-score)) 3))) - (set! (-> self score-silver) (the int (game-info-method-31 *game-info* (the-as int (-> self game-score)) 2))) - (set! (-> self score-bronze) (the int (game-info-method-31 *game-info* (the-as int (-> self game-score)) 1))) - (set! (-> self score-high) (the int (game-info-method-31 *game-info* (the-as int (-> self game-score)) 0))) + (set! (-> self score-gold) (the int (get-goal-for-rank *game-info* (-> self game-score) 3))) + (set! (-> self score-silver) (the int (get-goal-for-rank *game-info* (-> self game-score) 2))) + (set! (-> self score-bronze) (the int (get-goal-for-rank *game-info* (-> self game-score) 1))) + (set! (-> self score-high) (the int (get-goal-for-rank *game-info* (-> self game-score) 0))) (set! (-> self hud-goal) (ppointer->handle (process-spawn hud-goal :init hud-init-by-other :name "hud-goal" :to self)) ) @@ -620,7 +620,7 @@ (logtest? (-> gp-1 flags) (tpath-flag t1)) ) (set! (-> self goal-amount) -1) - (game-info-method-27 *game-info* (the-as game-score (-> self game-score)) (the float (-> self score))) + (update-high-score! *game-info* (-> self game-score) (the float (-> self score))) (cond ((and (-> self training?) (< (-> self score) (the int (-> self training-goal)))) (go-virtual end-course-open-door) @@ -1267,7 +1267,7 @@ :task-bronze (game-task-node city-gun-course-1-bronze) :task-silver (game-task-node city-gun-course-1-silver) :task-gold (game-task-node city-gun-course-1-gold) - :game-score #xb + :game-score (game-score gungame-1) :training-goal 10000.0 :allowed-guns (game-feature gun-yellow-1 gun-yellow-2) :start-gun 30 @@ -1285,7 +1285,7 @@ :task-bronze (game-task-node city-gun-course-2-bronze) :task-silver (game-task-node city-gun-course-2-silver) :task-gold (game-task-node city-gun-course-2-gold) - :game-score #xc + :game-score (game-score gungame-2) :training-goal 11000.0 :allowed-guns (game-feature gun-red-1 gun-red-2) :start-gun 27 @@ -1303,7 +1303,7 @@ :task-bronze (game-task-node city-gun-course-play-for-fun-bronze-rnc-1) :task-silver (game-task-node city-gun-course-play-for-fun-silver-rnc-1) :task-gold (game-task-node city-gun-course-play-for-fun-gold-rnc-1) - :game-score #xd + :game-score (game-score gungame-3) :training-goal -1.0 :allowed-guns (game-feature gun-red-1 gun-red-2 gun-red-3 gun-yellow-1 gun-yellow-2 gun-yellow-3 gun-blue-1 gun-blue-2) :start-gun 30 @@ -1321,7 +1321,7 @@ :task-bronze (game-task-node city-gun-course-play-for-fun-bronze-rnc-2) :task-silver (game-task-node city-gun-course-play-for-fun-silver-rnc-2) :task-gold (game-task-node city-gun-course-play-for-fun-gold-rnc-2) - :game-score #xe + :game-score (game-score gungame-4) :training-goal -1.0 :allowed-guns (game-feature gun-red-1 gun-red-2 gun-red-3 gun-yellow-1 gun-yellow-2 gun-yellow-3 gun-blue-1 gun-blue-2) :start-gun 27 diff --git a/goal_src/jak3/levels/wascity/defend/was-pre-game.gc b/goal_src/jak3/levels/wascity/defend/was-pre-game.gc index 8c270060e1..405500c345 100644 --- a/goal_src/jak3/levels/wascity/defend/was-pre-game.gc +++ b/goal_src/jak3/levels/wascity/defend/was-pre-game.gc @@ -2347,12 +2347,12 @@ ((not (task-node-closed? (game-task-node wascity-pre-game-resolution))) ) ((not (task-node-closed? (game-task-node wascity-pre-game-bronze))) - (when (>= f30-0 (game-info-method-31 *game-info* 1 1)) + (when (>= f30-0 (get-goal-for-rank *game-info* (game-score neo-sat-game) 1)) (sound-play-by-spec (static-sound-spec "skill-pickup" :group 0 :fo-curve 1) (new-sound-id) (the-as vector #t)) ;; og:preserve-this changed string from "power-game-2" (script-eval '(birth-pickup ("was-pre-game-2" "screen") skill FACT_SUPER_SKILL_INC flags (suck-in))) (task-node-close! (game-task-node wascity-pre-game-bronze) 'event) - (set! (-> *game-info* goal) (game-info-method-31 *game-info* 1 2)) + (set! (-> *game-info* goal) (get-goal-for-rank *game-info* (game-score neo-sat-game) 2)) (let ((v1-39 (the-as hud (handle->process (-> this hud-goal))))) (when v1-39 (let ((gp-1 format) @@ -2367,12 +2367,12 @@ ) ) ((not (task-node-closed? (game-task-node wascity-pre-game-silver))) - (when (>= f30-0 (game-info-method-31 *game-info* 1 2)) + (when (>= f30-0 (get-goal-for-rank *game-info* (game-score neo-sat-game) 2)) (sound-play-by-spec (static-sound-spec "skill-pickup" :group 0 :fo-curve 1) (new-sound-id) (the-as vector #t)) ;; og:preserve-this changed string from "power-game-2" (script-eval '(birth-pickup ("was-pre-game-2" "screen") skill FACT_SUPER_SKILL_INC flags (suck-in))) (task-node-close! (game-task-node wascity-pre-game-silver) 'event) - (set! (-> *game-info* goal) (game-info-method-31 *game-info* 1 3)) + (set! (-> *game-info* goal) (get-goal-for-rank *game-info* (game-score neo-sat-game) 3)) (let ((v1-53 (the-as hud (handle->process (-> this hud-goal))))) (when v1-53 (let ((gp-2 format) @@ -2387,7 +2387,7 @@ ) ) ((not (task-node-closed? (game-task-node wascity-pre-game-gold))) - (when (>= f30-0 (game-info-method-31 *game-info* 1 3)) + (when (>= f30-0 (get-goal-for-rank *game-info* (game-score neo-sat-game) 3)) (sound-play-by-spec (static-sound-spec "skill-pickup" :group 0 :fo-curve 1) (new-sound-id) (the-as vector #t)) ;; og:preserve-this changed string from "power-game-2" (script-eval '(birth-pickup ("was-pre-game-2" "screen") skill FACT_SUPER_SKILL_INC flags (suck-in))) @@ -2633,15 +2633,15 @@ ((< 0.0 (-> self point-win)) ) ((not (task-node-closed? (game-task-node wascity-pre-game-bronze))) - (set! (-> *game-info* goal) (game-info-method-31 *game-info* 1 1)) + (set! (-> *game-info* goal) (get-goal-for-rank *game-info* (game-score neo-sat-game) 1)) (set! gp-5 (lookup-text! *common-text* (text-id text-0139) #f)) ) ((not (task-node-closed? (game-task-node wascity-pre-game-silver))) - (set! (-> *game-info* goal) (game-info-method-31 *game-info* 1 2)) + (set! (-> *game-info* goal) (get-goal-for-rank *game-info* (game-score neo-sat-game) 2)) (set! gp-5 (lookup-text! *common-text* (text-id text-0138) #f)) ) ((not (task-node-closed? (game-task-node wascity-pre-game-gold))) - (set! (-> *game-info* goal) (game-info-method-31 *game-info* 1 3)) + (set! (-> *game-info* goal) (get-goal-for-rank *game-info* (game-score neo-sat-game) 3)) (set! gp-5 (lookup-text! *common-text* (text-id text-0137) #f)) ) (else @@ -2706,7 +2706,7 @@ (persist-with-delay *setting-control* 'gun (seconds 0.5) 'gun #f 0.0 0) (remove-setting! 'extra-bank) (send-event *target* 'draw #t) - (game-info-method-27 *game-info* (game-score gs0) (-> self score)) + (update-high-score! *game-info* (game-score neo-sat-game) (-> self score)) (logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons up right down left l1 r1 triangle circle x square) diff --git a/goal_src/jak3/levels/wascity/wasgun-manager.gc b/goal_src/jak3/levels/wascity/wasgun-manager.gc index 809c53a85e..edb003e75a 100644 --- a/goal_src/jak3/levels/wascity/wasgun-manager.gc +++ b/goal_src/jak3/levels/wascity/wasgun-manager.gc @@ -47,7 +47,7 @@ (been-out-of-turret? symbol) (won? symbol) (lost? symbol) - (game-score uint8) + (game-score game-score) (task-gold uint16) (task-silver uint16) (task-bronze uint16) @@ -2349,16 +2349,16 @@ ;; WARN: Return type mismatch float vs none. (defmethod task-manager-wascity-gungame-method-38 ((this task-manager-wascity-gungame)) (set! (-> this goal-amount) -1) - (game-info-method-27 *game-info* (the-as game-score (-> this game-score)) (the float (-> this score))) + (update-high-score! *game-info* (-> this game-score) (the float (-> this score))) (set! (-> this goal-amount) 0) (cond - ((>= (-> this score) (the int (game-info-method-31 *game-info* (the-as int (-> this game-score)) 3))) + ((>= (-> this score) (the int (get-goal-for-rank *game-info* (-> this game-score) 3))) (set! (-> this goal-amount) 3) ) - ((>= (-> this score) (the int (game-info-method-31 *game-info* (the-as int (-> this game-score)) 2))) + ((>= (-> this score) (the int (get-goal-for-rank *game-info* (-> this game-score) 2))) (set! (-> this goal-amount) 2) ) - ((>= (-> this score) (the int (game-info-method-31 *game-info* (the-as int (-> this game-score)) 1))) + ((>= (-> this score) (the int (get-goal-for-rank *game-info* (-> this game-score) 1))) (set! (-> this goal-amount) 1) ) ) @@ -2504,11 +2504,11 @@ (set! (-> this task-gold) (the-as uint 60)) (set! (-> this task-silver) (the-as uint 61)) (set! (-> this task-bronze) (the-as uint 62)) - (set! (-> this game-score) (the-as uint 9)) - (set! (-> this score-gold) (the int (game-info-method-31 *game-info* (the-as int (-> this game-score)) 3))) - (set! (-> this score-silver) (the int (game-info-method-31 *game-info* (the-as int (-> this game-score)) 2))) - (set! (-> this score-bronze) (the int (game-info-method-31 *game-info* (the-as int (-> this game-score)) 1))) - (set! (-> this score-high) (the int (game-info-method-31 *game-info* (the-as int (-> this game-score)) 0))) + (set! (-> this game-score) (game-score wascity-gungame-1)) + (set! (-> this score-gold) (the int (get-goal-for-rank *game-info* (-> this game-score) 3))) + (set! (-> this score-silver) (the int (get-goal-for-rank *game-info* (-> this game-score) 2))) + (set! (-> this score-bronze) (the int (get-goal-for-rank *game-info* (-> this game-score) 1))) + (set! (-> this score-high) (the int (get-goal-for-rank *game-info* (-> this game-score) 0))) (set! (-> this score) 0) (set! (-> this wascity-gungame-entity) #f) (set! (-> this cur-group) 0) diff --git a/goal_src/jak3/levels/wascity/wasstadium/wasstadb-obs.gc b/goal_src/jak3/levels/wascity/wasstadium/wasstadb-obs.gc index ea9ee678f2..4e2d907877 100644 --- a/goal_src/jak3/levels/wascity/wasstadium/wasstadb-obs.gc +++ b/goal_src/jak3/levels/wascity/wasstadium/wasstadb-obs.gc @@ -108,7 +108,7 @@ (set! (-> this strings 3 scale) 0.5) (set-as-offset-from! (the-as hud-sprite (-> this strings 3 pos)) (-> this strings 2 pos) 0 60) (format (clear (-> this strings 3 text)) (lookup-text! *common-text* (text-id text-0575) #f)) - (let ((s5-4 (get-game-score-ref *game-info* 17)) + (let ((s5-4 (get-game-score-ref *game-info* (game-score arena-training))) (s4-3 4) ) (dotimes (s3-1 3) diff --git a/goal_src/jak3/pc/features/autosplit-h.gc b/goal_src/jak3/pc/features/autosplit-h.gc index 81b27f48ab..602f131d47 100644 --- a/goal_src/jak3/pc/features/autosplit-h.gc +++ b/goal_src/jak3/pc/features/autosplit-h.gc @@ -162,11 +162,23 @@ (int-city-bbush-get-to-31 uint8) ;; start bbush in new haven (harder any%+hero mode palace ruins) (int-city-bbush-get-to-28 uint8) ;; start bbush closest to palace ruins (no oob restricted palace ruins) (desert-final-boss-walker uint8) ;; terraformer - (wascity-pre-game-gold uint8) - (wascity-gungame-gold uint8) - (city-gun-course-1-gold uint8) - (city-gun-course-2-gold uint8) - (city-power-game-gold uint8) + ;; mini-game ranks (0 unranked, 1 bronze, 2 silver, 3 gold) + (wascity-pre-game-rank uint8) + (desert-bbush-time-trial-1-rank uint8) + (desert-bbush-rally-rank uint8) + (desert-bbush-air-time-rank uint8) + (desert-bbush-total-air-time-rank uint8) + (desert-bbush-jump-distance-rank uint8) + (desert-bbush-total-jump-distance-rank uint8) + (desert-bbush-roll-count-rank uint8) + (wascity-gungame-rank uint8) + (city-jetboard-bbush-rank uint8) + (city-gun-course-1-rank uint8) + (city-gun-course-2-rank uint8) + (city-ratchet-gun-course-rank uint8) + (city-clank-gun-course-rank uint8) + (city-power-game-rank uint8) + (desert-bbush-destroy-interceptors-rank uint8) ;; orbs per-level (vinroom-num-orbs uint8) ;; Power Station (9 side) (ctygenb-num-orbs uint8) ;; Main Town Ruins (8 open, 12 side) diff --git a/goal_src/jak3/pc/features/autosplit.gc b/goal_src/jak3/pc/features/autosplit.gc index 5760602522..2ac2199e86 100644 --- a/goal_src/jak3/pc/features/autosplit.gc +++ b/goal_src/jak3/pc/features/autosplit.gc @@ -35,6 +35,11 @@ (format 0 "AUTOSPLIT for ~A~%" (quote ,task-node-name))) (set! (-> this ,field-name) (if (task-node-closed? (game-task-node ,task-node-name)) 1 0)))) +(defmacro autosplit-mini-game-rank (field-name game-score) + "Given a field name and a game-score enum index, sets to player's rank (0-3)" + `(set! (-> this ,field-name) (get-best-rank *game-info* ,game-score)) + ) + (defmethod update! ((this autosplit-info)) ;; general statistics ;; when we are blacked out in loads the value of these are temporarily 0, and that messes with the auto splitter. @@ -244,11 +249,24 @@ (autosplit-flag-task-node-closed! int-city-bbush-get-to-31 city-bbush-get-to-31-introduction) ;; start bbush in new haven (harder any%+hero mode palace ruins) (autosplit-flag-task-node-closed! int-city-bbush-get-to-28 city-bbush-get-to-28-introduction) ;; start bbush closest to palace ruins (no oob restricted palace ruins) (autosplit-flag-task-node-closed! desert-final-boss-walker desert-final-boss-walker) ;; terraformer - (autosplit-flag-task-node-closed! wascity-pre-game-gold wascity-pre-game-gold) - (autosplit-flag-task-node-closed! wascity-gungame-gold wascity-gungame-gold) - (autosplit-flag-task-node-closed! city-gun-course-1-gold city-gun-course-1-gold) - (autosplit-flag-task-node-closed! city-gun-course-2-gold city-gun-course-2-gold) - (autosplit-flag-task-node-closed! city-power-game-gold city-power-game-gold) + ;; mini-game ranks (0 unranked, 1 bronze, 2 silver, 3 gold) + (autosplit-mini-game-rank wascity-pre-game-rank (game-score neo-sat-game)) + (autosplit-mini-game-rank desert-bbush-time-trial-1-rank (game-score turtle-race)) + (autosplit-mini-game-rank desert-bbush-rally-rank (game-score snake-race)) + (autosplit-mini-game-rank desert-bbush-air-time-rank (game-score snake-air-time)) + (autosplit-mini-game-rank desert-bbush-total-air-time-rank (game-score snake-total-air-time)) + (autosplit-mini-game-rank desert-bbush-jump-distance-rank (game-score snake-jump-distance)) + (autosplit-mini-game-rank desert-bbush-total-jump-distance-rank (game-score snake-total-jump-distance)) + (autosplit-mini-game-rank desert-bbush-roll-count-rank (game-score snake-roll-count)) + (autosplit-mini-game-rank wascity-gungame-rank (game-score wascity-gungame-1)) + (autosplit-mini-game-rank city-jetboard-bbush-rank (game-score hoverboard)) + (autosplit-mini-game-rank city-gun-course-1-rank (game-score gungame-1)) + (autosplit-mini-game-rank city-gun-course-2-rank (game-score gungame-2)) + (autosplit-mini-game-rank city-ratchet-gun-course-rank (game-score gungame-3)) + (autosplit-mini-game-rank city-clank-gun-course-rank (game-score gungame-4)) + (autosplit-mini-game-rank city-power-game-rank (game-score power-game)) + (autosplit-mini-game-rank desert-bbush-destroy-interceptors-rank (game-score destroy-interceptors)) + ;; orbs per level (set! (-> this vinroom-num-orbs) (-> *game-info* money-per-level (level-money-data-index vinroom))) (set! (-> this ctygenb-num-orbs) (-> *game-info* money-per-level (level-money-data-index ctygenb))) diff --git a/goal_src/jak3/pc/progress/progress-draw-pc.gc b/goal_src/jak3/pc/progress/progress-draw-pc.gc index 7e93ef8956..ab78c5a3f1 100644 --- a/goal_src/jak3/pc/progress/progress-draw-pc.gc +++ b/goal_src/jak3/pc/progress/progress-draw-pc.gc @@ -810,7 +810,7 @@ ) (let ((f30-2 (+ 10.0 arg2 (adjust-x-if-needed (-> s3-0 x)))) (f28-2 (+ -10.0 arg2 (adjust-x-if-needed (-> s3-0 z)))) - (s3-1 (get-game-score-ref *game-info* (the-as int (-> this game-score)))) + (s3-1 (get-game-score-ref *game-info* (-> this game-score))) ) (set-scale! arg1 0.6) (adjust-font-origin-y arg0 arg1 0.03) diff --git a/goal_src/jak3/pc/progress/progress-pc.gc b/goal_src/jak3/pc/progress/progress-pc.gc index 55af10a3c0..00d6715e1e 100644 --- a/goal_src/jak3/pc/progress/progress-pc.gc +++ b/goal_src/jak3/pc/progress/progress-pc.gc @@ -1411,7 +1411,7 @@ ;; NOTE - this technically includes the gold/silver/bronze times ;; maybe figure out how to omit them eventually, (not sure if there is anything that differentiates them) ;; From a highscores perspective it doesn't really matter, the default scores are awful -(define-extern get-highscore-score (function int int)) +(define-extern get-highscore-score (function int game-score)) (defun progress-pc-get-num-nonzero-local-scores ((highscore-index int)) (let ((count 0) (score-ptr (get-game-score-ref *game-info* (get-highscore-score highscore-index)))) diff --git a/test/decompiler/reference/jak3/engine/game/game-info-h_REF.gc b/test/decompiler/reference/jak3/engine/game/game-info-h_REF.gc index dc7c8b5c63..5954e02cf6 100644 --- a/test/decompiler/reference/jak3/engine/game/game-info-h_REF.gc +++ b/test/decompiler/reference/jak3/engine/game/game-info-h_REF.gc @@ -399,11 +399,11 @@ (you-suck-stage (_type_ symbol int) int) (you-suck-scale (_type_ symbol int) float) (get-next-attack-id! (_type_) uint) - (game-info-method-27 (_type_ game-score float) int) - (get-game-score-ref (_type_ int) (pointer float)) - (game-info-method-29 (_type_ int) int) - (get-highscore-rank (_type_ int float) int) - (game-info-method-31 (_type_ int int) float) + (update-high-score! (_type_ game-score float) int) + (get-game-score-ref (_type_ game-score) (pointer float)) + (get-best-rank (_type_ game-score) int) + (get-rank-for-score (_type_ game-score float) int) + (get-goal-for-rank (_type_ game-score int) float) (calculate-percentage (_type_) float) (inc-death-count! (_type_) none) (get-max-ammo-for-gun (_type_ pickup-type) float) diff --git a/test/decompiler/reference/jak3/engine/game/game-info_REF.gc b/test/decompiler/reference/jak3/engine/game/game-info_REF.gc index 9d0d10a87d..8f61f5c807 100644 --- a/test/decompiler/reference/jak3/engine/game/game-info_REF.gc +++ b/test/decompiler/reference/jak3/engine/game/game-info_REF.gc @@ -1755,7 +1755,7 @@ (format #t "~Tscore:~%") (format #t "~T~T--------------------~%") (dotimes (s4-3 18) - (let ((v1-70 (get-game-score-ref this s4-3)) + (let ((v1-70 (get-game-score-ref this (the-as game-score s4-3))) (t9-18 format) (a0-26 #t) (a1-24 "~T~T~-32S ~8,,0f ~8,,0f ~8,,0f~%") @@ -1902,46 +1902,46 @@ ) ;; definition for method 28 of type game-info -(defmethod get-game-score-ref ((this game-info) (arg0 int)) +(defmethod get-game-score-ref ((this game-info) (arg0 game-score)) (&+ (-> this game-score data) (* (* arg0 8) 4)) ) ;; definition for method 29 of type game-info -(defmethod game-info-method-29 ((this game-info) (arg0 int)) - (let ((gp-0 0)) - (let ((s4-0 (-> *highscore-info-array* arg0)) - (s3-0 (get-game-score-ref this arg0)) - (s5-0 (new 'stack-no-clear 'array 'int8 4)) +(defmethod get-best-rank ((this game-info) (arg0 game-score)) + (let ((best-rank 0)) + (let ((score-goals (-> *highscore-info-array* arg0)) + (player-scores (get-game-score-ref this arg0)) + (player-rank-counts (new 'stack-no-clear 'array 'int8 4)) ) (dotimes (v1-3 4) - (set! (-> s5-0 v1-3) 0) + (set! (-> player-rank-counts v1-3) 0) ) (dotimes (s2-0 8) - (let ((f0-0 (-> s3-0 s2-0))) + (let ((f0-0 (-> player-scores s2-0))) (when (!= f0-0 0.0) - (let ((v1-9 (get-rank s4-0 f0-0))) - (+! (-> s5-0 v1-9) 1) + (let ((v1-9 (get-rank score-goals f0-0))) + (+! (-> player-rank-counts v1-9) 1) ) ) ) ) (dotimes (v1-13 4) - (if (> (-> s5-0 v1-13) 0) - (set! gp-0 v1-13) + (if (> (-> player-rank-counts v1-13) 0) + (set! best-rank v1-13) ) ) ) - gp-0 + best-rank ) ) ;; definition for method 30 of type game-info -(defmethod get-highscore-rank ((this game-info) (arg0 int) (arg1 float)) +(defmethod get-rank-for-score ((this game-info) (arg0 game-score) (arg1 float)) (get-rank (-> *highscore-info-array* arg0) arg1) ) ;; definition for method 31 of type game-info -(defmethod game-info-method-31 ((this game-info) (arg0 int) (arg1 int)) +(defmethod get-goal-for-rank ((this game-info) (arg0 game-score) (arg1 int)) (let ((highscore-arr (-> *highscore-info-array* arg0))) (case arg1 ((1 2 3) @@ -2045,7 +2045,7 @@ ) ;; definition for method 27 of type game-info -(defmethod game-info-method-27 ((this game-info) (arg0 game-score) (arg1 float)) +(defmethod update-high-score! ((this game-info) (arg0 game-score) (arg1 float)) (when (!= arg1 0.0) (let ((v1-3 (&+ (-> this game-score data) (* (* arg0 8) 4)))) (cond diff --git a/test/decompiler/reference/jak3/engine/ui/progress/progress-draw_REF.gc b/test/decompiler/reference/jak3/engine/ui/progress/progress-draw_REF.gc index a77864c1dd..dfada06bc7 100644 --- a/test/decompiler/reference/jak3/engine/ui/progress/progress-draw_REF.gc +++ b/test/decompiler/reference/jak3/engine/ui/progress/progress-draw_REF.gc @@ -1328,7 +1328,7 @@ ) (let ((f30-2 (+ 10.0 arg2 (-> s3-0 x))) (f28-2 (+ -10.0 arg2 (-> s3-0 z))) - (s3-1 (get-game-score-ref *game-info* (the-as int (-> this game-score)))) + (s3-1 (get-game-score-ref *game-info* (-> this game-score))) ) (set-scale! arg1 0.6) (adjust-font-origin-y arg0 arg1 0.03) diff --git a/test/decompiler/reference/jak3/engine/ui/progress/progress-h_REF.gc b/test/decompiler/reference/jak3/engine/ui/progress/progress-h_REF.gc index 978d279a68..74bf4d7ebc 100644 --- a/test/decompiler/reference/jak3/engine/ui/progress/progress-h_REF.gc +++ b/test/decompiler/reference/jak3/engine/ui/progress/progress-h_REF.gc @@ -1075,7 +1075,7 @@ (deftype highscore-page-info (structure) ((text text-id) (secret game-secrets) - (game-score uint8) + (game-score game-score) (icon uint32) (icon-scalex float) (icon-scaley float) diff --git a/test/decompiler/reference/jak3/engine/ui/progress/progress-static_REF.gc b/test/decompiler/reference/jak3/engine/ui/progress/progress-static_REF.gc index 620d1710e2..8f1007e982 100644 --- a/test/decompiler/reference/jak3/engine/ui/progress/progress-static_REF.gc +++ b/test/decompiler/reference/jak3/engine/ui/progress/progress-static_REF.gc @@ -732,7 +732,7 @@ (new 'static 'menu-highscores-option :info (new 'static 'boxed-array :type highscore-page-info (new 'static 'highscore-page-info :text (text-id progress-highscores-satelite-game) - :game-score #x1 + :game-score (game-score neo-sat-game) :icon #x48 :icon-scalex 0.7 :icon-scaley 0.7 @@ -741,7 +741,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-racetrack-time-trial) - :game-score #x2 + :game-score (game-score turtle-race) :icon #x10 :icon-scalex 0.75 :icon-scaley 0.75 @@ -750,7 +750,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-wasteland-run) - :game-score #x3 + :game-score (game-score snake-race) :icon #x11 :icon-scalex 0.75 :icon-scaley 0.75 @@ -759,7 +759,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-single-hang-time) - :game-score #x4 + :game-score (game-score snake-air-time) :icon #x11 :icon-scalex 0.75 :icon-scaley 0.75 @@ -768,7 +768,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-total-hang-time) - :game-score #x5 + :game-score (game-score snake-total-air-time) :icon #x11 :icon-scalex 0.75 :icon-scaley 0.75 @@ -777,7 +777,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-single-distance) - :game-score #x6 + :game-score (game-score snake-jump-distance) :icon #x11 :icon-scalex 0.75 :icon-scaley 0.75 @@ -786,7 +786,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-total-distance) - :game-score #x7 + :game-score (game-score snake-total-jump-distance) :icon #x11 :icon-scalex 0.75 :icon-scaley 0.75 @@ -795,7 +795,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-roll-challenge) - :game-score #x8 + :game-score (game-score snake-roll-count) :icon #x11 :icon-scalex 0.75 :icon-scaley 0.75 @@ -804,7 +804,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-spargus-turret-game) - :game-score #x9 + :game-score (game-score wascity-gungame-1) :icon #x49 :icon-scalex 0.85 :icon-scaley 0.85 @@ -813,7 +813,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-jetboard-challenge) - :game-score #xa + :game-score (game-score hoverboard) :icon #x35 :icon-scalex 1.0 :icon-scaley 1.0 @@ -822,7 +822,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-gun-yellow-2-course) - :game-score #xb + :game-score (game-score gungame-1) :icon #x28 :icon-scalex 0.85 :icon-scaley 0.85 @@ -831,7 +831,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-gun-red-2-course) - :game-score #xc + :game-score (game-score gungame-2) :icon #x25 :icon-scalex 0.85 :icon-scaley 0.85 @@ -841,7 +841,7 @@ (new 'static 'highscore-page-info :text (text-id progress-highscores-ratchet-gun-course) :secret (game-secrets gungame-ratchet) - :game-score #xd + :game-score (game-score gungame-3) :icon #x47 :icon-scalex 0.75 :icon-scaley 0.75 @@ -850,7 +850,7 @@ (new 'static 'highscore-page-info :text (text-id progress-highscores-clank-gun-course) :secret (game-secrets gungame-ratchet) - :game-score #xe + :game-score (game-score gungame-4) :icon #x46 :icon-scalex 0.7 :icon-scaley 0.7 @@ -859,7 +859,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-eco-grid-game) - :game-score #xf + :game-score (game-score power-game) :icon #x4a :icon-scalex 0.85 :icon-scaley 0.85 @@ -868,7 +868,7 @@ ) (new 'static 'highscore-page-info :text (text-id progress-highscores-marauder-challenge) - :game-score #x10 + :game-score (game-score destroy-interceptors) :icon #x11 :icon-scalex 0.75 :icon-scaley 0.75 diff --git a/test/decompiler/reference/jak3/levels/city/ctywide-obs_REF.gc b/test/decompiler/reference/jak3/levels/city/ctywide-obs_REF.gc index e082ee51a2..56bee41ae0 100644 --- a/test/decompiler/reference/jak3/levels/city/ctywide-obs_REF.gc +++ b/test/decompiler/reference/jak3/levels/city/ctywide-obs_REF.gc @@ -3149,7 +3149,7 @@ (challenge-done symbol) (hud-score handle) (hud-goal handle) - (game-score uint8) + (game-score game-score) (new-high-score symbol) (goal-cup uint8) (last-cup uint8) @@ -3199,7 +3199,7 @@ (t9-0 this) ) (set-setting! 'airlock #f 0.0 0) - (set! (-> this game-score) (the-as uint 10)) + (set! (-> this game-score) (game-score hoverboard)) (set! (-> this hud-score) (the-as handle #f)) (set! (-> this hud-goal) (the-as handle #f)) (if (= (-> this hud-score) #f) @@ -3228,7 +3228,7 @@ ) ) (set! (-> *game-info* goal) - (game-info-method-31 *game-info* (the-as int (-> this game-score)) (the-as int (-> this goal-cup))) + (get-goal-for-rank *game-info* (-> this game-score) (the-as int (-> this goal-cup))) ) (let ((v1-14 (handle->process (-> this hud-goal)))) (when v1-14 @@ -3275,8 +3275,8 @@ (defmethod task-manager-bbush-board-method-34 ((this task-manager-bbush-board) (arg0 float)) (set! (-> this roll-back-task?) #t) (let* ((s2-0 (-> this game-score)) - (s4-0 (game-info-method-29 *game-info* (the-as int s2-0))) - (t0-0 (get-highscore-rank *game-info* (the-as int s2-0) arg0)) + (s4-0 (get-best-rank *game-info* s2-0)) + (t0-0 (get-rank-for-score *game-info* s2-0 arg0)) (s3-1 (max 0 (- t0-0 s4-0))) ) (let ((t9-2 format) @@ -3288,58 +3288,58 @@ a0-3 a1-3 (cond - ((= v1-4 7) + ((= v1-4 (game-score snake-total-jump-distance)) "snake-total-jump-distance" ) - ((= v1-4 5) + ((= v1-4 (game-score snake-total-air-time)) "snake-total-air-time" ) - ((= v1-4 10) + ((= v1-4 (game-score hoverboard)) "hoverboard" ) - ((= v1-4 12) + ((= v1-4 (game-score gungame-2)) "gungame-2" ) - ((= v1-4 17) + ((= v1-4 (game-score arena-training)) "arena-training" ) - ((= v1-4 8) + ((= v1-4 (game-score snake-roll-count)) "snake-roll-count" ) - ((= v1-4 14) + ((= v1-4 (game-score gungame-4)) "gungame-4" ) - ((= v1-4 6) + ((= v1-4 (game-score snake-jump-distance)) "snake-jump-distance" ) - ((= v1-4 13) + ((= v1-4 (game-score gungame-3)) "gungame-3" ) - ((= v1-4 4) + ((= v1-4 (game-score snake-air-time)) "snake-air-time" ) - ((= v1-4 9) + ((= v1-4 (game-score wascity-gungame-1)) "wascity-gungame-1" ) - ((zero? v1-4) + ((= v1-4 (game-score none)) "none" ) - ((= v1-4 15) + ((= v1-4 (game-score power-game)) "power-game" ) - ((= v1-4 3) + ((= v1-4 (game-score snake-race)) "snake-race" ) - ((= v1-4 1) + ((= v1-4 (game-score neo-sat-game)) "neo-sat-game" ) - ((= v1-4 16) + ((= v1-4 (game-score destroy-interceptors)) "destroy-interceptors" ) - ((= v1-4 11) + ((= v1-4 (game-score gungame-1)) "gungame-1" ) - ((= v1-4 2) + ((= v1-4 (game-score turtle-race)) "turtle-race" ) (else @@ -3352,7 +3352,7 @@ s3-1 ) ) - (game-info-method-27 *game-info* (the-as game-score s2-0) arg0) + (update-high-score! *game-info* s2-0 arg0) (let ((v1-7 (new 'static 'fact-info)) (f30-0 (* (the float s3-1) (the float (-> this info user-count)))) ) @@ -3373,7 +3373,7 @@ ) ) (else - (let ((f0-5 (game-info-method-31 *game-info* (the-as int (-> this game-score)) (the-as int (-> this goal-cup))))) + (let ((f0-5 (get-goal-for-rank *game-info* (-> this game-score) (the-as int (-> this goal-cup))))) (if (< arg0 f0-5) (send-event this 'fail) ) @@ -3413,7 +3413,7 @@ (while (send-event (handle->process (the-as handle gp-1)) 'waiting) (suspend) ) - (set! (-> self last-cup) (the-as uint (game-info-method-29 *game-info* (the-as int (-> self game-score))))) + (set! (-> self last-cup) (the-as uint (get-best-rank *game-info* (-> self game-score)))) (format #t "last-cup: ~d~%" (-> self last-cup)) (set! (-> self goal-cup) (+ (-> self last-cup) 1)) (suspend) diff --git a/test/decompiler/reference/jak3/levels/city/vinroom/power-game_REF.gc b/test/decompiler/reference/jak3/levels/city/vinroom/power-game_REF.gc index 4519b98844..a3c6ed547c 100644 --- a/test/decompiler/reference/jak3/levels/city/vinroom/power-game_REF.gc +++ b/test/decompiler/reference/jak3/levels/city/vinroom/power-game_REF.gc @@ -1665,21 +1665,21 @@ ((not (task-node-closed? (game-task-node city-power-game-resolution))) ) ((not (task-node-closed? (game-task-node city-power-game-bronze))) - (when (>= f30-0 (game-info-method-31 *game-info* 15 1)) + (when (>= f30-0 (get-goal-for-rank *game-info* (game-score power-game) 1)) (sound-play-by-spec (static-sound-spec "skill-pickup" :group 0 :fo-curve 1) (new-sound-id) (the-as vector #t)) (script-eval '(birth-pickup ("power-game-player" "head") skill FACT_SUPER_SKILL_INC flags (suck-in))) (task-node-close! (game-task-node city-power-game-bronze) 'event) ) ) ((not (task-node-closed? (game-task-node city-power-game-silver))) - (when (>= f30-0 (game-info-method-31 *game-info* 15 2)) + (when (>= f30-0 (get-goal-for-rank *game-info* (game-score power-game) 2)) (sound-play-by-spec (static-sound-spec "skill-pickup" :group 0 :fo-curve 1) (new-sound-id) (the-as vector #t)) (script-eval '(birth-pickup ("power-game-player" "head") skill FACT_SUPER_SKILL_INC flags (suck-in))) (task-node-close! (game-task-node city-power-game-silver) 'event) ) ) ((not (task-node-closed? (game-task-node city-power-game-gold))) - (when (>= f30-0 (game-info-method-31 *game-info* 15 3)) + (when (>= f30-0 (get-goal-for-rank *game-info* (game-score power-game) 3)) (sound-play-by-spec (static-sound-spec "skill-pickup" :group 0 :fo-curve 1) (new-sound-id) (the-as vector #t)) (script-eval '(birth-pickup ("power-game-player" "head") skill FACT_SUPER_SKILL_INC flags (suck-in))) (task-node-close! (game-task-node city-power-game-gold) 'event) @@ -3497,7 +3497,7 @@ ) (when (not (and (-> self next-state) (= (-> self next-state name) 'active))) (format #t "score of ~f~%" (+ (-> self base-score) (-> self score))) - (game-info-method-27 *game-info* (game-score gs14) (+ (-> self base-score) (-> self score))) + (update-high-score! *game-info* (game-score power-game) (+ (-> self base-score) (-> self score))) ) (remove-from-process *task-manager-engine* self) (remove-setting! 'music) diff --git a/test/decompiler/reference/jak3/levels/common/race/race-manager_REF.gc b/test/decompiler/reference/jak3/levels/common/race/race-manager_REF.gc index 32389ed6b7..9c167906f3 100644 --- a/test/decompiler/reference/jak3/levels/common/race/race-manager_REF.gc +++ b/test/decompiler/reference/jak3/levels/common/race/race-manager_REF.gc @@ -1017,8 +1017,8 @@ ) (let ((sv-32 -1)) (when (nonzero? sv-16) - (let ((gp-0 (game-info-method-29 *game-info* (the-as int sv-16))) - (s5-0 (get-highscore-rank *game-info* (the-as int sv-16) sv-20)) + (let ((gp-0 (get-best-rank *game-info* (the-as game-score sv-16))) + (s5-0 (get-rank-for-score *game-info* (the-as game-score sv-16) sv-20)) ) (let ((s4-0 (* (the-as uint (max 0 (- s5-0 gp-0))) (the-as uint (if (= sv-16 3) 6 @@ -1043,7 +1043,7 @@ ) ) ) - (set! sv-32 (game-info-method-27 *game-info* (the-as game-score sv-16) sv-20)) + (set! sv-32 (update-high-score! *game-info* (the-as game-score sv-16) sv-20)) (give *game-info* 'skill (the float s4-0) (the-as handle #f)) ) (if (and (= s5-0 3) (= gp-0 3) (zero? sv-32)) diff --git a/test/decompiler/reference/jak3/levels/desert/des-bbush-tasks_REF.gc b/test/decompiler/reference/jak3/levels/desert/des-bbush-tasks_REF.gc index 5112271379..d9b3075e20 100644 --- a/test/decompiler/reference/jak3/levels/desert/des-bbush-tasks_REF.gc +++ b/test/decompiler/reference/jak3/levels/desert/des-bbush-tasks_REF.gc @@ -352,7 +352,7 @@ (hud-score handle) (hud-goal handle) (squad-manager handle :offset 336) - (game-score uint8) + (game-score game-score) (last-cup uint8) (goal-cup uint8) (new-high-score symbol) @@ -425,9 +425,7 @@ ) ) ) - (set! (-> this goal) - (game-info-method-31 *game-info* (the-as int (-> this game-score)) (the-as int (-> this goal-cup))) - ) + (set! (-> this goal) (get-goal-for-rank *game-info* (-> this game-score) (the-as int (-> this goal-cup)))) (set! (-> gp-0 goal) (* (-> this display-units) (-> this goal))) (set! (-> gp-0 goal-cup) (-> this goal-cup)) ) @@ -561,11 +559,11 @@ ;; WARN: Return type mismatch int vs none. (defmethod award-skill ((this task-manager-vehicle-bbush) (arg0 float)) (let* ((s5-0 (-> this game-score)) - (s3-0 (game-info-method-29 *game-info* (the-as int s5-0))) - (v1-2 (get-highscore-rank *game-info* (the-as int s5-0) arg0)) + (s3-0 (get-best-rank *game-info* s5-0)) + (v1-2 (get-rank-for-score *game-info* s5-0 arg0)) (gp-1 (max 0 (- v1-2 s3-0))) ) - (game-info-method-27 *game-info* (the-as game-score s5-0) arg0) + (update-high-score! *game-info* s5-0 arg0) (give *game-info* 'skill (* (the float gp-1) (-> *FACT-bank* super-skill-inc)) (the-as handle #f)) ) 0 @@ -585,7 +583,7 @@ #f (label cfg-7) (set-setting! 'exclusive-task #f 0.0 (-> self node-info task)) - (set! (-> self last-cup) (the-as uint (game-info-method-29 *game-info* (the-as int (-> self game-score))))) + (set! (-> self last-cup) (the-as uint (get-best-rank *game-info* (-> self game-score)))) (set! (-> self goal-cup) (+ (-> self last-cup) 1)) (task-manager-vehicle-bbush-method-34 self) (set! (-> self new-high-score) #f) @@ -702,7 +700,7 @@ (call-parent-method this) (set! (-> this display-units) 0.0033333334) (set! (-> this time-limit) (seconds 30)) - (set! (-> this game-score) (the-as uint 4)) + (set! (-> this game-score) (game-score snake-air-time)) (set! (-> *wasbbv-hud-info* score-text) (text-id text-0573)) (none) ) @@ -743,7 +741,7 @@ (call-parent-method this) (set! (-> this display-units) 0.0033333334) (set! (-> this time-limit) (seconds 60)) - (set! (-> this game-score) (the-as uint 5)) + (set! (-> this game-score) (game-score snake-total-air-time)) (set! (-> *wasbbv-hud-info* score-text) (text-id text-0078)) (none) ) @@ -788,7 +786,7 @@ (call-parent-method this) (set! (-> this display-units) 0.00024414062) (set! (-> this time-limit) (seconds 30)) - (set! (-> this game-score) (the-as uint 6)) + (set! (-> this game-score) (game-score snake-jump-distance)) (set! (-> *wasbbv-hud-info* score-text) (text-id your-distance)) (set! (-> *wasbbv-hud-info* decimal-place-count) 1) (none) @@ -830,7 +828,7 @@ (call-parent-method this) (set! (-> this display-units) 0.00024414062) (set! (-> this time-limit) (seconds 60)) - (set! (-> this game-score) (the-as uint 7)) + (set! (-> this game-score) (game-score snake-total-jump-distance)) (set! (-> *wasbbv-hud-info* score-text) (text-id total-distance)) (set! (-> *wasbbv-hud-info* decimal-place-count) 1) (none) @@ -876,7 +874,7 @@ (call-parent-method this) (set! (-> this display-units) 1.0) (set! (-> this time-limit) (seconds 60)) - (set! (-> this game-score) (the-as uint 8)) + (set! (-> this game-score) (game-score snake-roll-count)) (set! (-> this want-current-hud?) #f) (set! (-> *wasbbv-hud-info* score-text) (text-id total-rolls)) (set! (-> *wasbbv-hud-info* decimal-place-count) 0) @@ -933,7 +931,7 @@ (call-parent-method this) (set! (-> this display-units) 1.0) (set! (-> this time-limit) (seconds 120)) - (set! (-> this game-score) (the-as uint 16)) + (set! (-> this game-score) (game-score destroy-interceptors)) (set! (-> this want-current-hud?) #f) (set! (-> this max-reserve-count) 1000) (set! (-> *wasbbv-hud-info* score-text) (text-id kills)) diff --git a/test/decompiler/reference/jak3/levels/desert/race/course-race_REF.gc b/test/decompiler/reference/jak3/levels/desert/race/course-race_REF.gc index 69ec173221..5a87cea9a0 100644 --- a/test/decompiler/reference/jak3/levels/desert/race/course-race_REF.gc +++ b/test/decompiler/reference/jak3/levels/desert/race/course-race_REF.gc @@ -783,7 +783,7 @@ ;; definition of type task-manager-bbush-time-trial-1 (deftype task-manager-bbush-time-trial-1 (task-manager-race) - ((game-score uint8) + ((game-score game-score) (hud-goal handle) ) ) @@ -830,14 +830,12 @@ :code (behavior () (set! (-> self start-continue) (the-as continue-point "desertb-time-trial-start")) (set-setting! 'exclusive-task #f 0.0 (-> self node-info task)) - (set! (-> self game-score) (the-as uint 2)) - (let ((v1-6 (game-info-method-29 *game-info* (the-as int (-> self game-score)))) + (set! (-> self game-score) (game-score turtle-race)) + (let ((v1-6 (get-best-rank *game-info* (-> self game-score))) (gp-0 *bbush-time-trial-hud-info*) ) (set! (-> gp-0 goal-cup) (the-as uint (+ v1-6 1))) - (set! (-> gp-0 goal) - (game-info-method-31 *game-info* (the-as int (-> self game-score)) (the-as int (-> gp-0 goal-cup))) - ) + (set! (-> gp-0 goal) (get-goal-for-rank *game-info* (-> self game-score) (the-as int (-> gp-0 goal-cup)))) ) (set! (-> self hud-goal) (ppointer->handle @@ -934,7 +932,7 @@ ;; definition of type task-manager-bbush-rally (deftype task-manager-bbush-rally (task-manager-race) - ((game-score uint8) + ((game-score game-score) (hud-goal handle) ) ) @@ -1013,14 +1011,12 @@ :virtual #t :code (behavior () (set! (-> self start-continue) (the-as continue-point "desrally-race-start")) - (set! (-> self game-score) (the-as uint 3)) - (let ((v1-3 (game-info-method-29 *game-info* (the-as int (-> self game-score)))) + (set! (-> self game-score) (game-score snake-race)) + (let ((v1-3 (get-best-rank *game-info* (-> self game-score))) (gp-0 *bbush-time-trial-hud-info*) ) (set! (-> gp-0 goal-cup) (the-as uint (+ v1-3 1))) - (set! (-> gp-0 goal) - (game-info-method-31 *game-info* (the-as int (-> self game-score)) (the-as int (-> gp-0 goal-cup))) - ) + (set! (-> gp-0 goal) (get-goal-for-rank *game-info* (-> self game-score) (the-as int (-> gp-0 goal-cup)))) ) (set! (-> self hud-goal) (ppointer->handle diff --git a/test/decompiler/reference/jak3/levels/gungame/gungame-manager_REF.gc b/test/decompiler/reference/jak3/levels/gungame/gungame-manager_REF.gc index 0a8b1718bf..968078820c 100644 --- a/test/decompiler/reference/jak3/levels/gungame/gungame-manager_REF.gc +++ b/test/decompiler/reference/jak3/levels/gungame/gungame-manager_REF.gc @@ -11,7 +11,7 @@ (task-bronze game-task-node) (task-silver game-task-node :offset 22) (task-gold game-task-node :offset 24) - (game-score uint8 :offset 26) + (game-score game-score :offset 26) (pass-speech uint16) (training-goal float) (allowed-guns game-feature) @@ -107,7 +107,7 @@ (task-bronze game-task-node :offset 428) (end-door uint8 :offset 430) (start-door uint8) - (game-score uint8) + (game-score game-score) (training-goal float) (training? symbol) (state-time time-frame) @@ -464,7 +464,7 @@ ;; definition for method 23 of type gungame-manager ;; WARN: Return type mismatch object vs none. (defmethod update-hud-text ((this gungame-manager)) - (get-game-score-ref *game-info* (the-as int (-> this game-score))) + (get-game-score-ref *game-info* (-> this game-score)) (let ((gp-0 (the-as hud (handle->process (-> this hud-goal))))) (cond ((not (task-node-closed? (-> this task-bronze))) @@ -638,10 +638,10 @@ (set! (-> self hud-score) (ppointer->handle (process-spawn hud-big-score :init hud-init-by-other :name "hud-big-score" :to self)) ) - (set! (-> self score-gold) (the int (game-info-method-31 *game-info* (the-as int (-> self game-score)) 3))) - (set! (-> self score-silver) (the int (game-info-method-31 *game-info* (the-as int (-> self game-score)) 2))) - (set! (-> self score-bronze) (the int (game-info-method-31 *game-info* (the-as int (-> self game-score)) 1))) - (set! (-> self score-high) (the int (game-info-method-31 *game-info* (the-as int (-> self game-score)) 0))) + (set! (-> self score-gold) (the int (get-goal-for-rank *game-info* (-> self game-score) 3))) + (set! (-> self score-silver) (the int (get-goal-for-rank *game-info* (-> self game-score) 2))) + (set! (-> self score-bronze) (the int (get-goal-for-rank *game-info* (-> self game-score) 1))) + (set! (-> self score-high) (the int (get-goal-for-rank *game-info* (-> self game-score) 0))) (set! (-> self hud-goal) (ppointer->handle (process-spawn hud-goal :init hud-init-by-other :name "hud-goal" :to self)) ) @@ -721,7 +721,7 @@ (logtest? (-> gp-1 flags) (tpath-flag t1)) ) (set! (-> self goal-amount) -1) - (game-info-method-27 *game-info* (the-as game-score (-> self game-score)) (the float (-> self score))) + (update-high-score! *game-info* (-> self game-score) (the float (-> self score))) (cond ((and (-> self training?) (< (-> self score) (the int (-> self training-goal)))) (go-virtual end-course-open-door) @@ -1463,7 +1463,7 @@ :task-bronze (game-task-node city-gun-course-1-bronze) :task-silver (game-task-node city-gun-course-1-silver) :task-gold (game-task-node city-gun-course-1-gold) - :game-score #xb + :game-score (game-score gungame-1) :training-goal 10000.0 :allowed-guns (game-feature gun-yellow-1 gun-yellow-2) :start-gun 30 @@ -1481,7 +1481,7 @@ :task-bronze (game-task-node city-gun-course-2-bronze) :task-silver (game-task-node city-gun-course-2-silver) :task-gold (game-task-node city-gun-course-2-gold) - :game-score #xc + :game-score (game-score gungame-2) :training-goal 11000.0 :allowed-guns (game-feature gun-red-1 gun-red-2) :start-gun 27 @@ -1499,7 +1499,7 @@ :task-bronze (game-task-node city-gun-course-play-for-fun-bronze-rnc-1) :task-silver (game-task-node city-gun-course-play-for-fun-silver-rnc-1) :task-gold (game-task-node city-gun-course-play-for-fun-gold-rnc-1) - :game-score #xd + :game-score (game-score gungame-3) :training-goal -1.0 :allowed-guns (game-feature gun-red-1 gun-red-2 gun-red-3 gun-yellow-1 gun-yellow-2 gun-yellow-3 gun-blue-1 gun-blue-2) :start-gun 30 @@ -1517,7 +1517,7 @@ :task-bronze (game-task-node city-gun-course-play-for-fun-bronze-rnc-2) :task-silver (game-task-node city-gun-course-play-for-fun-silver-rnc-2) :task-gold (game-task-node city-gun-course-play-for-fun-gold-rnc-2) - :game-score #xe + :game-score (game-score gungame-4) :training-goal -1.0 :allowed-guns (game-feature gun-red-1 gun-red-2 gun-red-3 gun-yellow-1 gun-yellow-2 gun-yellow-3 gun-blue-1 gun-blue-2) :start-gun 27 @@ -1978,7 +1978,3 @@ (call-parent-method this) (none) ) - - - - diff --git a/test/decompiler/reference/jak3/levels/wascity/defend/was-pre-game_REF.gc b/test/decompiler/reference/jak3/levels/wascity/defend/was-pre-game_REF.gc index 65b6d7ea41..b76615dbb5 100644 --- a/test/decompiler/reference/jak3/levels/wascity/defend/was-pre-game_REF.gc +++ b/test/decompiler/reference/jak3/levels/wascity/defend/was-pre-game_REF.gc @@ -2575,11 +2575,11 @@ ((not (task-node-closed? (game-task-node wascity-pre-game-resolution))) ) ((not (task-node-closed? (game-task-node wascity-pre-game-bronze))) - (when (>= f30-0 (game-info-method-31 *game-info* 1 1)) + (when (>= f30-0 (get-goal-for-rank *game-info* (game-score neo-sat-game) 1)) (sound-play-by-spec (static-sound-spec "skill-pickup" :group 0 :fo-curve 1) (new-sound-id) (the-as vector #t)) (script-eval '(birth-pickup ("power-game-2" "screen") skill FACT_SUPER_SKILL_INC flags (suck-in))) (task-node-close! (game-task-node wascity-pre-game-bronze) 'event) - (set! (-> *game-info* goal) (game-info-method-31 *game-info* 1 2)) + (set! (-> *game-info* goal) (get-goal-for-rank *game-info* (game-score neo-sat-game) 2)) (let ((v1-39 (the-as hud (handle->process (-> this hud-goal))))) (when v1-39 (let ((gp-1 format) @@ -2594,11 +2594,11 @@ ) ) ((not (task-node-closed? (game-task-node wascity-pre-game-silver))) - (when (>= f30-0 (game-info-method-31 *game-info* 1 2)) + (when (>= f30-0 (get-goal-for-rank *game-info* (game-score neo-sat-game) 2)) (sound-play-by-spec (static-sound-spec "skill-pickup" :group 0 :fo-curve 1) (new-sound-id) (the-as vector #t)) (script-eval '(birth-pickup ("power-game-2" "screen") skill FACT_SUPER_SKILL_INC flags (suck-in))) (task-node-close! (game-task-node wascity-pre-game-silver) 'event) - (set! (-> *game-info* goal) (game-info-method-31 *game-info* 1 3)) + (set! (-> *game-info* goal) (get-goal-for-rank *game-info* (game-score neo-sat-game) 3)) (let ((v1-53 (the-as hud (handle->process (-> this hud-goal))))) (when v1-53 (let ((gp-2 format) @@ -2613,7 +2613,7 @@ ) ) ((not (task-node-closed? (game-task-node wascity-pre-game-gold))) - (when (>= f30-0 (game-info-method-31 *game-info* 1 3)) + (when (>= f30-0 (get-goal-for-rank *game-info* (game-score neo-sat-game) 3)) (sound-play-by-spec (static-sound-spec "skill-pickup" :group 0 :fo-curve 1) (new-sound-id) (the-as vector #t)) (script-eval '(birth-pickup ("power-game-2" "screen") skill FACT_SUPER_SKILL_INC flags (suck-in))) (task-node-close! (game-task-node wascity-pre-game-gold) 'event) @@ -2868,15 +2868,15 @@ ((< 0.0 (-> self point-win)) ) ((not (task-node-closed? (game-task-node wascity-pre-game-bronze))) - (set! (-> *game-info* goal) (game-info-method-31 *game-info* 1 1)) + (set! (-> *game-info* goal) (get-goal-for-rank *game-info* (game-score neo-sat-game) 1)) (set! gp-5 (lookup-text! *common-text* (text-id text-0139) #f)) ) ((not (task-node-closed? (game-task-node wascity-pre-game-silver))) - (set! (-> *game-info* goal) (game-info-method-31 *game-info* 1 2)) + (set! (-> *game-info* goal) (get-goal-for-rank *game-info* (game-score neo-sat-game) 2)) (set! gp-5 (lookup-text! *common-text* (text-id text-0138) #f)) ) ((not (task-node-closed? (game-task-node wascity-pre-game-gold))) - (set! (-> *game-info* goal) (game-info-method-31 *game-info* 1 3)) + (set! (-> *game-info* goal) (get-goal-for-rank *game-info* (game-score neo-sat-game) 3)) (set! gp-5 (lookup-text! *common-text* (text-id text-0137) #f)) ) (else @@ -2941,7 +2941,7 @@ (persist-with-delay *setting-control* 'gun (seconds 0.5) 'gun #f 0.0 0) (remove-setting! 'extra-bank) (send-event *target* 'draw #t) - (game-info-method-27 *game-info* (game-score gs0) (-> self score)) + (update-high-score! *game-info* (game-score neo-sat-game) (-> self score)) (logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons up right down left l1 r1 triangle circle x square) diff --git a/test/decompiler/reference/jak3/levels/wascity/wasgun-manager_REF.gc b/test/decompiler/reference/jak3/levels/wascity/wasgun-manager_REF.gc index 90e9ce1652..dc61338017 100644 --- a/test/decompiler/reference/jak3/levels/wascity/wasgun-manager_REF.gc +++ b/test/decompiler/reference/jak3/levels/wascity/wasgun-manager_REF.gc @@ -43,7 +43,7 @@ (been-out-of-turret? symbol) (won? symbol) (lost? symbol) - (game-score uint8) + (game-score game-score) (task-gold uint16) (task-silver uint16) (task-bronze uint16) @@ -2470,16 +2470,16 @@ ;; WARN: Return type mismatch float vs none. (defmethod task-manager-wascity-gungame-method-38 ((this task-manager-wascity-gungame)) (set! (-> this goal-amount) -1) - (game-info-method-27 *game-info* (the-as game-score (-> this game-score)) (the float (-> this score))) + (update-high-score! *game-info* (-> this game-score) (the float (-> this score))) (set! (-> this goal-amount) 0) (cond - ((>= (-> this score) (the int (game-info-method-31 *game-info* (the-as int (-> this game-score)) 3))) + ((>= (-> this score) (the int (get-goal-for-rank *game-info* (-> this game-score) 3))) (set! (-> this goal-amount) 3) ) - ((>= (-> this score) (the int (game-info-method-31 *game-info* (the-as int (-> this game-score)) 2))) + ((>= (-> this score) (the int (get-goal-for-rank *game-info* (-> this game-score) 2))) (set! (-> this goal-amount) 2) ) - ((>= (-> this score) (the int (game-info-method-31 *game-info* (the-as int (-> this game-score)) 1))) + ((>= (-> this score) (the int (get-goal-for-rank *game-info* (-> this game-score) 1))) (set! (-> this goal-amount) 1) ) ) @@ -2628,11 +2628,11 @@ (set! (-> this task-gold) (the-as uint 60)) (set! (-> this task-silver) (the-as uint 61)) (set! (-> this task-bronze) (the-as uint 62)) - (set! (-> this game-score) (the-as uint 9)) - (set! (-> this score-gold) (the int (game-info-method-31 *game-info* (the-as int (-> this game-score)) 3))) - (set! (-> this score-silver) (the int (game-info-method-31 *game-info* (the-as int (-> this game-score)) 2))) - (set! (-> this score-bronze) (the int (game-info-method-31 *game-info* (the-as int (-> this game-score)) 1))) - (set! (-> this score-high) (the int (game-info-method-31 *game-info* (the-as int (-> this game-score)) 0))) + (set! (-> this game-score) (game-score wascity-gungame-1)) + (set! (-> this score-gold) (the int (get-goal-for-rank *game-info* (-> this game-score) 3))) + (set! (-> this score-silver) (the int (get-goal-for-rank *game-info* (-> this game-score) 2))) + (set! (-> this score-bronze) (the int (get-goal-for-rank *game-info* (-> this game-score) 1))) + (set! (-> this score-high) (the int (get-goal-for-rank *game-info* (-> this game-score) 0))) (set! (-> this score) 0) (set! (-> this wascity-gungame-entity) #f) (set! (-> this cur-group) 0) @@ -2662,7 +2662,3 @@ ) (none) ) - - - - diff --git a/test/decompiler/reference/jak3/levels/wascity/wasstadium/wasstadb-obs_REF.gc b/test/decompiler/reference/jak3/levels/wascity/wasstadium/wasstadb-obs_REF.gc index 6b6873cb87..3a5bfe1ef8 100644 --- a/test/decompiler/reference/jak3/levels/wascity/wasstadium/wasstadb-obs_REF.gc +++ b/test/decompiler/reference/jak3/levels/wascity/wasstadium/wasstadb-obs_REF.gc @@ -146,7 +146,7 @@ (set! (-> this strings 3 scale) 0.5) (set-as-offset-from! (the-as hud-sprite (-> this strings 3 pos)) (-> this strings 2 pos) 0 60) (format (clear (-> this strings 3 text)) (lookup-text! *common-text* (text-id text-0575) #f)) - (let ((s5-4 (get-game-score-ref *game-info* 17)) + (let ((s5-4 (get-game-score-ref *game-info* (game-score arena-training))) (s4-3 4) ) (dotimes (s3-1 3) @@ -1544,7 +1544,3 @@ (logclear! (-> this mask) (process-mask actor-pause)) (go (method-of-object this idle)) ) - - - -