From e8b1aee24d3488ee328402b3c496197a108eb309 Mon Sep 17 00:00:00 2001 From: Hat Kid <6624576+Hat-Kid@users.noreply.github.com> Date: Sun, 25 Sep 2022 16:15:32 +0200 Subject: [PATCH] decomp: majority of `progress` (#1904) Gets through ~90% of `progress`, wasn't able to figure out some stuff. --- decompiler/config/jak2/all-types.gc | 293 +++++++++--------- decompiler/config/jak2/label_types.jsonc | 21 +- decompiler/config/jak2/type_casts.jsonc | 32 +- goal_src/jak2/engine/data/art-h.gc | 2 +- goal_src/jak2/engine/game/game-info-h.gc | 2 +- goal_src/jak2/engine/ps2/pad.gc | 9 + goal_src/jak2/engine/target/logic-target.gc | 12 +- goal_src/jak2/engine/ui/bigmap-h.gc | 2 +- goal_src/jak2/engine/ui/hud-h.gc | 2 +- .../jak2/engine/ui/progress/progress-h.gc | 106 +++---- .../reference/jak2/engine/data/art-h_REF.gc | 2 +- .../jak2/engine/game/game-info-h_REF.gc | 2 +- .../jak2/engine/target/logic-target_REF.gc | 12 +- .../reference/jak2/engine/ui/bigmap-h_REF.gc | 2 +- .../reference/jak2/engine/ui/hud-h_REF.gc | 6 +- .../jak2/engine/ui/progress/progress-h_REF.gc | 106 +++---- 16 files changed, 328 insertions(+), 283 deletions(-) diff --git a/decompiler/config/jak2/all-types.gc b/decompiler/config/jak2/all-types.gc index 57bac2aab1..16ab971e6a 100644 --- a/decompiler/config/jak2/all-types.gc +++ b/decompiler/config/jak2/all-types.gc @@ -3435,6 +3435,15 @@ (circle 13) (x 14) (square 15) + (pb16 16) + (pb17 17) + (pb18 18) + (pb19 19) + (pb20 20) + (pb21 21) + (pb22 22) + (pb23 23) + (pb24 24) ) (deftype scf-time (structure) @@ -7187,7 +7196,7 @@ (bigmap-method-11 () none 11) (bigmap-method-12 () none 12) (bigmap-method-13 () none 13) - (bigmap-method-14 () none 14) + (bigmap-method-14 (_type_) none 14) (bigmap-method-15 () none 15) (bigmap-method-16 () none 16) (bigmap-method-17 () none 17) @@ -10421,7 +10430,7 @@ (get-skeleton-origin (_type_) vector 9) (draw-control-method-10 () none 10) ;; (lod-set! (_type_ int) none 10) (draw-control-method-11 () none 11) ;; (lods-assign! (_type_ lod-set) none 11) - (draw-control-method-12 () none 12) + (draw-control-method-12 (_type_ int int) none 12) (draw-control-method-13 () none 13) (draw-control-method-14 (_type_ cspace-array joint-control) none 14) ) @@ -11919,7 +11928,7 @@ (auto-save-count int32 :offset-assert 460) (pov-camera-handle uint64 :offset-assert 464) (other-camera-handle uint64 :offset-assert 472) - (controller uint64 2 :offset-assert 480) + (controller handle 2 :offset-assert 480) (race-timer uint64 :offset-assert 496) (race-current-lap-count int32 :offset-assert 504) (race-total-lap-count int32 :offset-assert 508) @@ -19532,7 +19541,7 @@ (hud-box-method-10 () none 10) (hud-box-method-11 () none 11) (hud-box-method-12 () none 12) - (hud-box-method-13 () none 13) + (hud-box-method-13 (_type_ dma-buffer float) int 13) (hud-box-method-14 () none 14) (hud-box-method-15 () none 15) ) @@ -20033,24 +20042,27 @@ ;; progress-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(declare-type menu-option basic) +(declare-type menu-option-list basic) + (deftype progress (process-drawable) - ((current-options basic :offset-assert 200) + ((current-options menu-option-list :offset-assert 200) (menu-transition float :offset-assert 204) (option-index int32 :offset-assert 208) (want-option-index int32 :offset-assert 212) (next-option-index int32 :offset-assert 216) (graphic-index int32 :offset-assert 220) - (selected-option basic :offset-assert 224) - (current basic :offset-assert 228) - (next basic :offset-assert 232) + (selected-option symbol :offset-assert 224) + (current symbol :offset-assert 228) + (next symbol :offset-assert 232) (ring-angle float :offset-assert 236) (ring-want-angle float :offset-assert 240) (init-quat quaternion :inline :offset-assert 256) (pos-transition float :offset-assert 272) (anim-frame float :offset-assert 276) (swing float :offset-assert 280) - (main-menu basic :offset-assert 284) - (state-stack int32 5 :offset-assert 288) + (main-menu symbol :offset-assert 284) + (state-stack symbol 5 :offset-assert 288) (option-index-stack int32 5 :offset-assert 308) ;; guessed by decompiler (state-pos int32 :offset-assert 328) (secret-buying basic :offset-assert 332) @@ -20064,19 +20076,19 @@ :size-assert #x164 :flag-assert #x2100f00164 (:methods - (progress-method-20 () none 20) ;; (hidden? (_type_) symbol 20) - (progress-method-21 () none 21) ;; (adjust-sprites (_type_) none 21) - (progress-method-22 () none 22) ;; (adjust-icons (_type_) none 22) - (progress-method-23 () none 23) ;; (adjust-ratios (_type_ symbol symbol) none 23) - (progress-method-24 () none 24) ;; (draw-fuel-cell-screen (_type_ int) none 24) - (progress-method-25 () none 25) ;; (draw-money-screen (_type_ int) none 25) - (progress-method-26 () none 26) ;; (draw-buzzer-screen (_type_ int) none 26) + (come-in () _type_ :state 20) ;; (hidden? (_type_) symbol 20) + (idle () _type_ :state 21) ;; (adjust-sprites (_type_) none 21) + (go-away () _type_ :state 22) ;; (adjust-icons (_type_) none 22) + (gone () _type_ :state 23) ;; (adjust-ratios (_type_ symbol symbol) none 23) + (init-defaults "Initialize default menu settings." (_type_) connection 24) ;; (draw-fuel-cell-screen (_type_ int) none 24) + (progress-method-25 (_type_) none 25) ;; (draw-money-screen (_type_ int) none 25) + (progress-method-26 (_type_) object 26) ;; (draw-buzzer-screen (_type_ int) none 26) (can-go-back? (_type_) symbol 27) ;; (draw-notice-screen (_type_) none 27) - (progress-method-28 () none 28) ;; (draw-options (_type_ int int float) none 28) - (progress-method-29 () none 29) ;; (respond-common (_type_) none 29) - (progress-method-30 () none 30) ;; (respond-progress (_type_) none 30) - (progress-method-31 () none 31) ;; (respond-memcard (_type_) none 31) - (progress-method-32 () none 32) + (progress-method-28 (_type_ symbol) symbol 28) ;; (draw-options (_type_ int int float) none 28) + (progress-method-29 (_type_) int 29) ;; (respond-common (_type_) none 29) + (progress-method-30 (_type_) int 30) ;; (respond-progress (_type_) none 30) + (set-next-state "Set the next menu state specified by arg0 at the index specified by arg1." (_type_ symbol int) int 31) ;; (respond-memcard (_type_) none 31) + (set-menu-options "Set the menu options for the menu state specified by arg0." (_type_ symbol) int 32) ) ) @@ -20089,14 +20101,14 @@ :size-assert #x30 :flag-assert #xc00000030 (:methods - (menu-option-method-9 () none 9) + (respond-progress "Handle progress menu navigation logic." (_type_ progress object symbol) int 9) (menu-option-method-10 () none 10) (menu-option-method-11 () none 11) ) ) (deftype menu-on-off-option (menu-option) - ((value-to-modify uint32 :offset-assert 48) + ((value-to-modify pointer :offset-assert 48) ) :method-count-assert 12 :size-assert #x34 @@ -20106,7 +20118,7 @@ ) (deftype menu-yes-no-option (menu-option) - ((value-to-modify uint32 :offset-assert 48) + ((value-to-modify pointer :offset-assert 48) ) :method-count-assert 12 :size-assert #x34 @@ -20138,7 +20150,7 @@ ) (deftype menu-slider-option (menu-option) - ((value-to-modify uint32 :offset-assert 48) + ((value-to-modify pointer :offset-assert 48) (sprites hud-sprite 5 :inline :offset-assert 64) ;; guess ) :method-count-assert 12 @@ -20442,7 +20454,7 @@ (deftype secret-item-option (menu-option) ((cost int32 :offset-assert 48) - (can-toggle basic :offset-assert 52) + (can-toggle symbol :offset-assert 52) (flag uint32 :offset-assert 56) (avail-after uint16 :offset-assert 60) ) @@ -20473,11 +20485,11 @@ ((y-center int32 :offset-assert 4) (y-space int32 :offset-assert 8) (scale float :offset-assert 12) - (options basic :offset-assert 16) + (options menu-option :dynamic :offset-assert 16) ;; dynamic is a guess ) :method-count-assert 9 - :size-assert #x14 - :flag-assert #x900000014 + :size-assert #x10 + :flag-assert #x900000010 ) (deftype menu-qr-option (menu-option) @@ -20522,8 +20534,8 @@ ) (deftype menu-graphic-option (menu-option) - ((last-move uint64 :offset-assert 48) - (value-to-modify uint32 :offset 60) + ((last-move uint64 :offset-assert 48) + (value-to-modify pointer :offset 60) ) :method-count-assert 12 :size-assert #x40 @@ -20570,8 +20582,8 @@ ) (deftype menu-game-option (menu-option) - ((last-move uint64 :offset-assert 48) - (value-to-modify uint32 :offset 60) + ((last-move uint64 :offset-assert 48) + (value-to-modify pointer :offset 60) ) :method-count-assert 12 :size-assert #x40 @@ -28778,7 +28790,7 @@ (define-extern update-task-masks (function symbol none)) (define-extern play-clean (function symbol none)) (define-extern play-task (function game-task symbol symbol string)) -;; (define-extern restart-mission function) +(define-extern restart-mission (function int)) ;; (define-extern task-node-by-name function) ;; (define-extern task-resolution-close! function) ;; (define-extern task-close! function) @@ -28921,7 +28933,6 @@ ;; hud ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype hud-sprite-work (structure) ((adgif-tmpl dma-gif-packet :inline :offset-assert 0) (sprite-tmpl dma-gif-packet :inline :offset-assert 32) @@ -28932,27 +28943,26 @@ (line-tmpl dma-gif-packet :inline :offset-assert 192) (scan-tmpl dma-gif-packet :inline :offset-assert 224) (line-color uint64 :offset-assert 256) - (scan-colors UNKNOWN 32 :offset-assert 272) - (scanline uint32 :offset-assert 784) + (scan-colors uint64 32 :offset 272) + (scanline uint32 :offset 784) ) :method-count-assert 9 :size-assert #x314 :flag-assert #x900000314 ) -|# -;; (define-extern *hud-sprite-work* object) +(define-extern *hud-sprite-work* hud-sprite-work) ;; (define-extern hud-create-icon function) ;; (define-extern hud-hidden state) ;; (state hud) ;; (define-extern hud-arriving state) ;; (state hud) ;; (define-extern hud-in state) ;; (state hud) ;; (define-extern hud-leaving state) ;; (state int hud) -;; (define-extern hud-init-by-other function) ;; (function int none :behavior hud) -;; (define-extern hide-hud function) ;; (function none) +(define-extern hud-init-by-other (function int none :behavior hud)) +(define-extern hide-hud (function symbol none)) ;; (define-extern enable-hud function) ;; (function none) (define-extern hide-hud-quick (function symbol none)) (define-extern show-hud (function object none)) -;; (define-extern hud-hidden? function) ;; (function symbol) +(define-extern hud-hidden? (function symbol)) ;; (define-extern set-hud-piece-position! function) ;; (define-extern set-as-offset-from! function) @@ -28967,7 +28977,6 @@ ;; progress-static ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype hud-scene-info (basic) ((name basic :offset-assert 4) (continue basic :offset-assert 8) @@ -28979,78 +28988,76 @@ :flag-assert #x900000014 ;; field info uses ~A with a signed load ) -|# -;; (define-extern *main-options* menu-option-list) ;; (array game-option) -;; (define-extern *main-options-debug* menu-option-list) -;; (define-extern *main-kiosk-options* menu-option-list) -;; (define-extern *main-demo-options* menu-option-list) -;; (define-extern *title* menu-option-list) ;; (array game-option) -;; (define-extern *unlocked-secrets* menu-option-list) -;; (define-extern *options* menu-option-list) ;; (array game-option) -;; (define-extern *game-options* menu-option-list) ;; (array game-option) -;; (define-extern *game-options-japan* menu-option-list) ;; (array game-option) -;; (define-extern *game-options-demo* menu-option-list) ;; (array game-option) -;; (define-extern *graphic-options* menu-option-list) ;; (array game-option) -;; (define-extern *graphic-title-options-pal* menu-option-list) ;; (array game-option) -;; (define-extern *sound-options* menu-option-list) ;; (array game-option) -;; (define-extern *quit-restart-options* menu-option-list) -;; (define-extern *load-save-options* menu-option-list) -;; (define-extern *save-options-title* menu-option-list) ;; (array game-option) -;; (define-extern *loading-options* menu-option-list) -;; (define-extern *insufficient-space-options* menu-option-list) -;; (define-extern *secrets-insufficient-space-options* menu-option-list) -;; (define-extern *insert-card-options* menu-option-list) -;; (define-extern *error-loading-options* menu-option-list) -;; (define-extern *error-auto-saving-options* menu-option-list) -;; (define-extern *card-removed-options* menu-option-list) -;; (define-extern *error-disc-removed-options* menu-option-list) -;; (define-extern *error-reading-options* menu-option-list) -;; (define-extern *icon-info-options* menu-option-list) -;; (define-extern *format-card-options* menu-option-list) -;; (define-extern *already-exists-options* menu-option-list) -;; (define-extern *create-game-options* menu-option-list) -;; (define-extern *video-mode-warning-options* menu-option-list) -;; (define-extern *video-mode-ok-options* menu-option-list) -;; (define-extern *progressive-mode-warning-options* menu-option-list) -;; (define-extern *progressive-mode-ok-options* menu-option-list) -;; (define-extern *quit-options* menu-option-list) -;; (define-extern *select-start-options* menu-option-list) -;; (define-extern *select-scene-options* menu-option-list) -;; (define-extern *bigmap-options* menu-option-list) -;; (define-extern *missions-options* menu-option-list) -;; (define-extern *highscores-options* menu-option-list) -;; (define-extern *secret-options* menu-option-list) -;; (define-extern *language-name-remap* array) ;; (array game-text-id) -;; (define-extern *stereo-mode-name-remap* array) -;; (define-extern *hud-ring-graphic-remap* array) -;; (define-extern *hud-ring-kiosk-graphic-remap* array) -;; (define-extern *hud-ring-demo-graphic-remap* array) -;; (define-extern *hud-select-scene-act1* array) -;; (define-extern *hud-select-scene-act2* array) -;; (define-extern *hud-select-scene-act3* array) +(define-extern *main-options* menu-option-list) ;; (array game-option) +(define-extern *main-options-debug* menu-option-list) +(define-extern *main-kiosk-options* menu-option-list) +(define-extern *main-demo-options* menu-option-list) +(define-extern *title* menu-option-list) ;; (array game-option) +(define-extern *unlocked-secrets* menu-option-list) +(define-extern *options* menu-option-list) ;; (array game-option) +(define-extern *game-options* menu-option-list) ;; (array game-option) +(define-extern *game-options-japan* menu-option-list) ;; (array game-option) +(define-extern *game-options-demo* menu-option-list) ;; (array game-option) +(define-extern *graphic-options* menu-option-list) ;; (array game-option) +(define-extern *graphic-title-options-pal* menu-option-list) ;; (array game-option) +(define-extern *sound-options* menu-option-list) ;; (array game-option) +(define-extern *quit-restart-options* menu-option-list) +(define-extern *load-save-options* menu-option-list) +(define-extern *save-options-title* menu-option-list) ;; (array game-option) +(define-extern *loading-options* menu-option-list) +(define-extern *insufficient-space-options* menu-option-list) +(define-extern *secrets-insufficient-space-options* menu-option-list) +(define-extern *insert-card-options* menu-option-list) +(define-extern *error-loading-options* menu-option-list) +(define-extern *error-auto-saving-options* menu-option-list) +(define-extern *card-removed-options* menu-option-list) +(define-extern *error-disc-removed-options* menu-option-list) +(define-extern *error-reading-options* menu-option-list) +(define-extern *icon-info-options* menu-option-list) +(define-extern *format-card-options* menu-option-list) +(define-extern *already-exists-options* menu-option-list) +(define-extern *create-game-options* menu-option-list) +(define-extern *video-mode-warning-options* menu-option-list) +(define-extern *video-mode-ok-options* menu-option-list) +(define-extern *progressive-mode-warning-options* menu-option-list) +(define-extern *progressive-mode-ok-options* menu-option-list) +(define-extern *quit-options* menu-option-list) +(define-extern *select-start-options* menu-option-list) +(define-extern *select-scene-options* menu-option-list) +(define-extern *bigmap-options* menu-option-list) +(define-extern *missions-options* menu-option-list) +(define-extern *highscores-options* menu-option-list) +(define-extern *secret-options* menu-option-list) +(define-extern *language-name-remap* (array game-text-id)) +(define-extern *stereo-mode-name-remap* menu-option-list) +(define-extern *hud-ring-graphic-remap* menu-option-list) +(define-extern *hud-ring-kiosk-graphic-remap* menu-option-list) +(define-extern *hud-ring-demo-graphic-remap* menu-option-list) +(define-extern *hud-select-scene-act1* menu-option-list) +(define-extern *hud-select-scene-act2* menu-option-list) +(define-extern *hud-select-scene-act3* menu-option-list) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; progress ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| -(deftype progress-global-state (UNKNOWN) +(deftype progress-global-state (basic) ((aspect-ratio-choice symbol :offset-assert 4) ;; guessed by decompiler (video-mode-choice symbol :offset-assert 8) ;; guessed by decompiler (yes-no-choice symbol :offset-assert 12) ;; guessed by decompiler - (on-off-choice basic :offset-assert 16) + (on-off-choice symbol :offset-assert 16) (which-slot int32 :offset-assert 20) - (starting-state progress-screen :offset-assert 24) ;; guessed by decompiler + (starting-state symbol :offset-assert 24) ;; guessed by decompiler (last-slot-saved int32 :offset-assert 28) (slider-backup float :offset-assert 32) - (language-backup uint64 :offset-assert 40) ;; language-enum + (language-backup language-enum :offset-assert 40) ;; language-enum (center-x-backup int32 :offset-assert 48) (center-y-backup int32 :offset-assert 52) (aspect-ratio-backup symbol :offset-assert 56) ;; guessed by decompiler - (last-slider-sound uint64 :offset-assert 64) ;; time-frame - (video-mode-timeout uint64 :offset-assert 72) - (progressive-mode-timeout uint64 :offset-assert 80) + (last-slider-sound time-frame :offset-assert 64) ;; time-frame + (video-mode-timeout time-frame :offset-assert 72) + (progressive-mode-timeout time-frame :offset-assert 80) (current-task-index int32 :offset-assert 88) (current-line-index int32 :offset-assert 92) (first-closed-line-index int32 :offset-assert 96) @@ -29063,15 +29070,15 @@ (game-options-item-selected int32 :offset-assert 124) (game-options-item-picked basic :offset-assert 128) (game-options-last-move uint64 :offset-assert 136) - (game-options-vibrations basic :offset-assert 144) - (game-options-subtitles basic :offset-assert 148) + (game-options-vibrations symbol :offset-assert 144) + (game-options-subtitles symbol :offset-assert 148) (game-options-language-index int32 :offset-assert 152) (game-options-subtitle-language-index int32 :offset-assert 156) (graphic-options-item-selected int32 :offset-assert 160) (graphic-options-item-picked basic :offset-assert 164) (graphic-options-last-move uint64 :offset-assert 168) - (graphic-options-aspect-ratio basic :offset-assert 176) - (graphic-options-progressive-scan basic :offset-assert 180) + (graphic-options-aspect-ratio symbol :offset-assert 176) + (graphic-options-progressive-scan symbol :offset-assert 180) (qr-options-item-selected int32 :offset-assert 184) (qr-options-item-picked basic :offset-assert 188) (qr-options-last-move uint64 :offset-assert 192) @@ -29084,49 +29091,50 @@ (missions-total-spacing float :offset-assert 224) (clear-screen basic :offset-assert 228) ) - :method-count-assert 0 - :size-assert #x0 - :flag-assert #x0 + :method-count-assert 9 + :size-assert #xe8 + :flag-assert #x9000000e8 ) -|# -#| -(deftype hud-ring-cell (UNKNOWN) - () - :method-count-assert 0 - :size-assert #x0 - :flag-assert #x0 - ;; Failed to read fields. +(deftype hud-ring-cell (process-drawable) + ((joint-idx int32 :offset-assert 200) + (init-angle degrees :offset-assert 204) + (graphic-index int32 :offset-assert 208) + ) + :method-count-assert 21 + :size-assert #xd4 + :flag-assert #x15006000d4 + (:methods + (idle () _type_ :state 20) + ) ) -|# -;; (define-extern *progress-stack* object) ;; (pointer uint8) +(define-extern *progress-stack* (pointer uint8)) (define-extern *progress-process* (pointer progress)) -;; (define-extern *progress-state* progress-global-state) ;; progress-global-state -;; (define-extern *progress-save-info* object) ;; mc-slot-info -;; (define-extern min-max-wrap-around function) -;; (define-extern progress-intro-start function) -;; (define-extern hud-ring-cell-init-by-other function) -;; (define-extern progress-init-by-other function) ;; (function none :behavior progress) -;; (define-extern set-ring-position function) +(define-extern *progress-state* progress-global-state) +(define-extern *progress-save-info* mc-slot-info) +(define-extern min-max-wrap-around (function int int int int)) +(define-extern progress-intro-start (function symbol int)) +(define-extern hud-ring-cell-init-by-other (function int float int object :behavior hud-ring-cell)) +(define-extern progress-init-by-other (function symbol object :behavior progress)) +(define-extern set-ring-position (function progress float)) (define-extern activate-progress (function process symbol none)) (define-extern deactivate-progress (function none)) (define-extern hide-progress-screen (function none)) (define-extern progress-allowed? (function symbol)) -;; (define-extern menu-update-purchase-secrets function) +(define-extern menu-update-purchase-secrets (function secret-item-option none)) ;; (define-extern progress-trans function) -;; (define-extern begin-scan function) -;; (define-extern end-scan function) -;; (define-extern progress-post function) -;; (define-extern update-center-screen function) -;; (define-extern update-restart-quit function) +(define-extern begin-scan (function hud-box progress int)) +(define-extern end-scan (function hud-box float int)) +(define-extern progress-post (function none :behavior progress)) +(define-extern update-center-screen (function int)) +(define-extern update-restart-quit (function menu-option progress symbol int)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; progress-draw ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| -(deftype print-highscore-obj (UNKNOWN) +(deftype print-highscore-obj (basic) ((self basic :offset-assert 4) (index int32 :offset-assert 8) (previous basic :offset-assert 12) @@ -29137,13 +29145,12 @@ (local-scale float :offset-assert 32) (interp float :offset-assert 36) ) - :method-count-assert 0 - :size-assert #x0 - :flag-assert #x0 + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 ) -|# -;; (define-extern progress-selected function) +(define-extern progress-selected (function int :behavior progress)) ;; (define-extern draw-percent-bar function) ;; (function int int float rgba none) ;; (define-extern draw-highlight function) ;; (define-extern draw-busy-loading function) @@ -29163,7 +29170,7 @@ ;; (define-extern end-scissor-level function) ;; (define-extern print-language-name function) ;; (function int font-context int symbol font-context) ;; (define-extern unlocked-secret-menu? function) -;; (define-extern memcard-unlocked-secrets? function) +(define-extern memcard-unlocked-secrets? (function symbol none)) ;; (define-extern num-unlocked-secret? function) ;; (define-extern print-menu-text function) ;; (define-extern draw-yes-no function) @@ -29191,10 +29198,10 @@ ;; (define-extern get-highscore-text-sub function) ;; (define-extern get-highscore-icon function) ;; (define-extern get-highscore-type function) -;; (define-extern highscore-available? function) -;; (define-extern get-num-highscores function) -;; (define-extern get-next-highscore function) -;; (define-extern get-prev-highscore function) +(define-extern highscore-available? (function symbol)) +(define-extern get-num-highscores (function int)) +(define-extern get-next-highscore (function int int)) +(define-extern get-prev-highscore (function int int)) ;; (define-extern get-highscore-icon-scale function) ;; (define-extern get-highscore-icon-xoffset function) ;; (define-extern get-highscore-icon-yoffset function) diff --git a/decompiler/config/jak2/label_types.jsonc b/decompiler/config/jak2/label_types.jsonc index 24e8404bcc..1e793146ee 100644 --- a/decompiler/config/jak2/label_types.jsonc +++ b/decompiler/config/jak2/label_types.jsonc @@ -189,6 +189,25 @@ ["L896", "(pointer uint64)", 1], ["L897", "(pointer uint64)", 1] ], + "nav-mesh": [["L347", "(inline-array vector)", 2]], "tfrag-methods": [["L119", "(inline-array tfrag-init-data)", 6]], - "nav-mesh": [["L347", "(inline-array vector)", 2]] + "progress": [ + ["L879", "uint64", true], + ["L880", "uint64", true], + ["L881", "uint64", true], + ["L882", "uint64", true], + ["L883", "uint64", true], + ["L884", "uint64", true], + ["L885", "uint64", true], + ["L886", "uint64", true], + ["L887", "uint64", true], + ["L888", "uint64", true], + ["L889", "uint64", true], + ["L890", "uint64", true], + ["L891", "uint64", true], + ["L892", "uint64", true], + ["L893", "uint64", true], + ["L953", "uint64", true], + ["L954", "uint64", true] + ] } diff --git a/decompiler/config/jak2/type_casts.jsonc b/decompiler/config/jak2/type_casts.jsonc index fad9f327db..e2a9c19c44 100644 --- a/decompiler/config/jak2/type_casts.jsonc +++ b/decompiler/config/jak2/type_casts.jsonc @@ -2373,7 +2373,6 @@ [19, "a0", "drawable-inline-array-node"], [[104, 110], "v1", "dma-packet"], [[183, 189], "v1", "dma-packet"] - ], "draw-drawable-tree-tfrag-trans": [ [18, "v1", "drawable-inline-array-node"], @@ -2419,5 +2418,34 @@ [[157, 162], "a1", "dma-packet"] ], "(enter othercam-running)": [[[50, 60], "gp", "process-drawable"]], - "(code othercam-running)": [[[2, 65], "s2", "process-drawable"]] + "(code othercam-running)": [[[2, 65], "s2", "process-drawable"]], + "(method 10 progress)": [[45, "t9", "(function progress none)"]], + + "hud-ring-cell-init-by-other": [ + [36, "a0", "progress"], + [45, "v1", "progress"], + [56, "a0", "progress"], + [132, "a1", "progress"], + [159, "a1", "progress"], + [178, "a1", "progress"] + ], + + "(post idle hud-ring-cell)": [ + [8, "a1", "progress"], + [13, "v1", "progress"], + [36, "a1", "progress"], + [63, "a1", "progress"], + [82, "a1", "progress"], + [99, "v1", "progress"], + [102, "v1", "progress"], + [137, "v1", "progress"], + [159, "v1", "progress"] + ], + + "end-scan": [ + [[18, 22], "v1", "dma-packet"] + ], + + // placeholder + "placeholder-do-not-add-below": [] } diff --git a/goal_src/jak2/engine/data/art-h.gc b/goal_src/jak2/engine/data/art-h.gc index 239bc38cdc..1736cd1079 100644 --- a/goal_src/jak2/engine/data/art-h.gc +++ b/goal_src/jak2/engine/data/art-h.gc @@ -390,7 +390,7 @@ (get-skeleton-origin (_type_) vector 9) (draw-control-method-10 () none 10) (draw-control-method-11 () none 11) - (draw-control-method-12 () none 12) + (draw-control-method-12 (_type_ int int) none 12) (draw-control-method-13 () none 13) (draw-control-method-14 (_type_ cspace-array joint-control) none 14) ) diff --git a/goal_src/jak2/engine/game/game-info-h.gc b/goal_src/jak2/engine/game/game-info-h.gc index 3c82066e3c..62ec5cf271 100644 --- a/goal_src/jak2/engine/game/game-info-h.gc +++ b/goal_src/jak2/engine/game/game-info-h.gc @@ -324,7 +324,7 @@ (auto-save-count int32 :offset-assert 460) (pov-camera-handle uint64 :offset-assert 464) (other-camera-handle uint64 :offset-assert 472) - (controller uint64 2 :offset-assert 480) + (controller handle 2 :offset-assert 480) (race-timer uint64 :offset-assert 496) (race-current-lap-count int32 :offset-assert 504) (race-total-lap-count int32 :offset-assert 508) diff --git a/goal_src/jak2/engine/ps2/pad.gc b/goal_src/jak2/engine/ps2/pad.gc index ec3e5762ff..936a179b64 100644 --- a/goal_src/jak2/engine/ps2/pad.gc +++ b/goal_src/jak2/engine/ps2/pad.gc @@ -35,6 +35,15 @@ (circle 13) (x 14) (square 15) + (pb16 16) + (pb17 17) + (pb18 18) + (pb19 19) + (pb20 20) + (pb21 21) + (pb22 22) + (pb23 23) + (pb24 24) ) (defenum pad-type diff --git a/goal_src/jak2/engine/target/logic-target.gc b/goal_src/jak2/engine/target/logic-target.gc index b555595429..c77ff262a1 100644 --- a/goal_src/jak2/engine/target/logic-target.gc +++ b/goal_src/jak2/engine/target/logic-target.gc @@ -1928,19 +1928,11 @@ (when (!= (-> self beard?) v1-248) (cond (v1-248 - (let ((t9-22 (method-of-object (-> self draw) draw-control-method-12))) - 2 - 0 - (t9-22) - ) + (draw-control-method-12 (-> self draw) 2 0) (set! (-> self beard?) #t) ) (else - (let ((t9-23 (method-of-object (-> self draw) draw-control-method-12))) - 0 - 2 - (t9-23) - ) + (draw-control-method-12 (-> self draw) 2 0) (set! (-> self beard?) #f) ) ) diff --git a/goal_src/jak2/engine/ui/bigmap-h.gc b/goal_src/jak2/engine/ui/bigmap-h.gc index eb6d9f00e7..5d20be9164 100644 --- a/goal_src/jak2/engine/ui/bigmap-h.gc +++ b/goal_src/jak2/engine/ui/bigmap-h.gc @@ -133,7 +133,7 @@ (bigmap-method-11 () none 11) (bigmap-method-12 () none 12) (bigmap-method-13 () none 13) - (bigmap-method-14 () none 14) + (bigmap-method-14 (_type_) none 14) (bigmap-method-15 () none 15) (bigmap-method-16 () none 16) (bigmap-method-17 () none 17) diff --git a/goal_src/jak2/engine/ui/hud-h.gc b/goal_src/jak2/engine/ui/hud-h.gc index 0d61ab818c..3a355e21c8 100644 --- a/goal_src/jak2/engine/ui/hud-h.gc +++ b/goal_src/jak2/engine/ui/hud-h.gc @@ -55,7 +55,7 @@ (hud-box-method-10 () none 10) (hud-box-method-11 () none 11) (hud-box-method-12 () none 12) - (hud-box-method-13 () none 13) + (hud-box-method-13 (_type_ dma-buffer float) int 13) (hud-box-method-14 () none 14) (hud-box-method-15 () none 15) ) diff --git a/goal_src/jak2/engine/ui/progress/progress-h.gc b/goal_src/jak2/engine/ui/progress/progress-h.gc index e0e9d58ea5..954c7fd4ea 100644 --- a/goal_src/jak2/engine/ui/progress/progress-h.gc +++ b/goal_src/jak2/engine/ui/progress/progress-h.gc @@ -8,54 +8,56 @@ (define-extern deactivate-progress (function none)) (define-extern progress-allowed? (function symbol)) (define-extern hide-progress-screen (function none)) +(declare-type menu-option basic) +(declare-type menu-option-list basic) ;; DECOMP BEGINS (deftype progress (process-drawable) - ((current-options basic :offset-assert 200) - (menu-transition float :offset-assert 204) - (option-index int32 :offset-assert 208) - (want-option-index int32 :offset-assert 212) - (next-option-index int32 :offset-assert 216) - (graphic-index int32 :offset-assert 220) - (selected-option basic :offset-assert 224) - (current basic :offset-assert 228) - (next basic :offset-assert 232) - (ring-angle float :offset-assert 236) - (ring-want-angle float :offset-assert 240) - (init-quat quaternion :inline :offset-assert 256) - (pos-transition float :offset-assert 272) - (anim-frame float :offset-assert 276) - (swing float :offset-assert 280) - (main-menu basic :offset-assert 284) - (state-stack int32 5 :offset-assert 288) - (option-index-stack int32 5 :offset-assert 308) - (state-pos int32 :offset-assert 328) - (secret-buying basic :offset-assert 332) - (secret-buy-choice basic :offset-assert 336) - (sliding float :offset-assert 340) - (sliding-off float :offset-assert 344) - (scanlines-alpha float :offset-assert 348) - (sliding-height float :offset-assert 352) + ((current-options menu-option-list :offset-assert 200) + (menu-transition float :offset-assert 204) + (option-index int32 :offset-assert 208) + (want-option-index int32 :offset-assert 212) + (next-option-index int32 :offset-assert 216) + (graphic-index int32 :offset-assert 220) + (selected-option symbol :offset-assert 224) + (current symbol :offset-assert 228) + (next symbol :offset-assert 232) + (ring-angle float :offset-assert 236) + (ring-want-angle float :offset-assert 240) + (init-quat quaternion :inline :offset-assert 256) + (pos-transition float :offset-assert 272) + (anim-frame float :offset-assert 276) + (swing float :offset-assert 280) + (main-menu symbol :offset-assert 284) + (state-stack symbol 5 :offset-assert 288) + (option-index-stack int32 5 :offset-assert 308) + (state-pos int32 :offset-assert 328) + (secret-buying basic :offset-assert 332) + (secret-buy-choice basic :offset-assert 336) + (sliding float :offset-assert 340) + (sliding-off float :offset-assert 344) + (scanlines-alpha float :offset-assert 348) + (sliding-height float :offset-assert 352) ) :heap-base #xf0 :method-count-assert 33 :size-assert #x164 :flag-assert #x2100f00164 (:methods - (progress-method-20 () none 20) - (progress-method-21 () none 21) - (progress-method-22 () none 22) - (progress-method-23 () none 23) - (progress-method-24 () none 24) - (progress-method-25 () none 25) - (progress-method-26 () none 26) + (come-in () _type_ :state 20) + (idle () _type_ :state 21) + (go-away () _type_ :state 22) + (gone () _type_ :state 23) + (init-defaults (_type_) connection 24) + (progress-method-25 (_type_) none 25) + (progress-method-26 (_type_) object 26) (can-go-back? (_type_) symbol 27) - (progress-method-28 () none 28) - (progress-method-29 () none 29) - (progress-method-30 () none 30) - (progress-method-31 () none 31) - (progress-method-32 () none 32) + (progress-method-28 (_type_ symbol) symbol 28) + (progress-method-29 (_type_) int 29) + (progress-method-30 (_type_) int 30) + (set-next-state (_type_ symbol int) int 31) + (set-menu-options (_type_ symbol) int 32) ) ) @@ -68,14 +70,14 @@ :size-assert #x30 :flag-assert #xc00000030 (:methods - (menu-option-method-9 () none 9) + (respond-progress (_type_ progress object symbol) int 9) (menu-option-method-10 () none 10) (menu-option-method-11 () none 11) ) ) (deftype menu-on-off-option (menu-option) - ((value-to-modify uint32 :offset-assert 48) + ((value-to-modify pointer :offset-assert 48) ) :method-count-assert 12 :size-assert #x34 @@ -83,7 +85,7 @@ ) (deftype menu-yes-no-option (menu-option) - ((value-to-modify uint32 :offset-assert 48) + ((value-to-modify pointer :offset-assert 48) ) :method-count-assert 12 :size-assert #x34 @@ -109,7 +111,7 @@ ) (deftype menu-slider-option (menu-option) - ((value-to-modify uint32 :offset-assert 48) + ((value-to-modify pointer :offset-assert 48) (sprites hud-sprite 5 :inline :offset-assert 64) ) :method-count-assert 12 @@ -351,7 +353,7 @@ (deftype secret-item-option (menu-option) ((cost int32 :offset-assert 48) - (can-toggle basic :offset-assert 52) + (can-toggle symbol :offset-assert 52) (flag uint32 :offset-assert 56) (avail-after uint16 :offset-assert 60) ) @@ -375,14 +377,14 @@ ) (deftype menu-option-list (basic) - ((y-center int32 :offset-assert 4) - (y-space int32 :offset-assert 8) - (scale float :offset-assert 12) - (options basic :offset-assert 16) + ((y-center int32 :offset-assert 4) + (y-space int32 :offset-assert 8) + (scale float :offset-assert 12) + (options menu-option :dynamic :offset-assert 16) ) :method-count-assert 9 - :size-assert #x14 - :flag-assert #x900000014 + :size-assert #x10 + :flag-assert #x900000010 ) (deftype menu-qr-option (menu-option) @@ -419,8 +421,8 @@ ) (deftype menu-graphic-option (menu-option) - ((last-move uint64 :offset-assert 48) - (value-to-modify uint32 :offset 60) + ((last-move uint64 :offset-assert 48) + (value-to-modify pointer :offset 60) ) :method-count-assert 12 :size-assert #x40 @@ -457,8 +459,8 @@ ) (deftype menu-game-option (menu-option) - ((last-move uint64 :offset-assert 48) - (value-to-modify uint32 :offset 60) + ((last-move uint64 :offset-assert 48) + (value-to-modify pointer :offset 60) ) :method-count-assert 12 :size-assert #x40 diff --git a/test/decompiler/reference/jak2/engine/data/art-h_REF.gc b/test/decompiler/reference/jak2/engine/data/art-h_REF.gc index a4a2895e34..a507df7d02 100644 --- a/test/decompiler/reference/jak2/engine/data/art-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/data/art-h_REF.gc @@ -611,7 +611,7 @@ (get-skeleton-origin (_type_) vector 9) (draw-control-method-10 () none 10) (draw-control-method-11 () none 11) - (draw-control-method-12 () none 12) + (draw-control-method-12 (_type_ int int) none 12) (draw-control-method-13 () none 13) (draw-control-method-14 (_type_ cspace-array joint-control) none 14) ) diff --git a/test/decompiler/reference/jak2/engine/game/game-info-h_REF.gc b/test/decompiler/reference/jak2/engine/game/game-info-h_REF.gc index ae5d94f9a4..da3ed9184b 100644 --- a/test/decompiler/reference/jak2/engine/game/game-info-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/game/game-info-h_REF.gc @@ -295,7 +295,7 @@ (auto-save-count int32 :offset-assert 460) (pov-camera-handle uint64 :offset-assert 464) (other-camera-handle uint64 :offset-assert 472) - (controller uint64 2 :offset-assert 480) + (controller handle 2 :offset-assert 480) (race-timer uint64 :offset-assert 496) (race-current-lap-count int32 :offset-assert 504) (race-total-lap-count int32 :offset-assert 508) diff --git a/test/decompiler/reference/jak2/engine/target/logic-target_REF.gc b/test/decompiler/reference/jak2/engine/target/logic-target_REF.gc index 35514ffc25..8f67c57c9c 100644 --- a/test/decompiler/reference/jak2/engine/target/logic-target_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/logic-target_REF.gc @@ -1899,19 +1899,11 @@ (when (!= (-> self beard?) v1-248) (cond (v1-248 - (let ((t9-22 (method-of-object (-> self draw) draw-control-method-12))) - 2 - 0 - (t9-22) - ) + (draw-control-method-12 (-> self draw) 2 0) (set! (-> self beard?) #t) ) (else - (let ((t9-23 (method-of-object (-> self draw) draw-control-method-12))) - 0 - 2 - (t9-23) - ) + (draw-control-method-12 (-> self draw) 0 2) (set! (-> self beard?) #f) ) ) diff --git a/test/decompiler/reference/jak2/engine/ui/bigmap-h_REF.gc b/test/decompiler/reference/jak2/engine/ui/bigmap-h_REF.gc index 416d5ffb70..8e8fabe5c5 100644 --- a/test/decompiler/reference/jak2/engine/ui/bigmap-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/ui/bigmap-h_REF.gc @@ -234,7 +234,7 @@ (bigmap-method-11 () none 11) (bigmap-method-12 () none 12) (bigmap-method-13 () none 13) - (bigmap-method-14 () none 14) + (bigmap-method-14 (_type_) none 14) (bigmap-method-15 () none 15) (bigmap-method-16 () none 16) (bigmap-method-17 () none 17) diff --git a/test/decompiler/reference/jak2/engine/ui/hud-h_REF.gc b/test/decompiler/reference/jak2/engine/ui/hud-h_REF.gc index 20fd417191..2a6ce56b92 100644 --- a/test/decompiler/reference/jak2/engine/ui/hud-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/ui/hud-h_REF.gc @@ -81,7 +81,7 @@ (hud-box-method-10 () none 10) (hud-box-method-11 () none 11) (hud-box-method-12 () none 12) - (hud-box-method-13 () none 13) + (hud-box-method-13 (_type_ dma-buffer float) int 13) (hud-box-method-14 () none 14) (hud-box-method-15 () none 15) ) @@ -1269,7 +1269,3 @@ ;; failed to figure out what this is: 0 - - - - diff --git a/test/decompiler/reference/jak2/engine/ui/progress/progress-h_REF.gc b/test/decompiler/reference/jak2/engine/ui/progress/progress-h_REF.gc index 1e0ed52b3e..c6be54dbe7 100644 --- a/test/decompiler/reference/jak2/engine/ui/progress/progress-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/ui/progress/progress-h_REF.gc @@ -3,50 +3,50 @@ ;; definition of type progress (deftype progress (process-drawable) - ((current-options basic :offset-assert 200) - (menu-transition float :offset-assert 204) - (option-index int32 :offset-assert 208) - (want-option-index int32 :offset-assert 212) - (next-option-index int32 :offset-assert 216) - (graphic-index int32 :offset-assert 220) - (selected-option basic :offset-assert 224) - (current basic :offset-assert 228) - (next basic :offset-assert 232) - (ring-angle float :offset-assert 236) - (ring-want-angle float :offset-assert 240) - (init-quat quaternion :inline :offset-assert 256) - (pos-transition float :offset-assert 272) - (anim-frame float :offset-assert 276) - (swing float :offset-assert 280) - (main-menu basic :offset-assert 284) - (state-stack int32 5 :offset-assert 288) - (option-index-stack int32 5 :offset-assert 308) - (state-pos int32 :offset-assert 328) - (secret-buying basic :offset-assert 332) - (secret-buy-choice basic :offset-assert 336) - (sliding float :offset-assert 340) - (sliding-off float :offset-assert 344) - (scanlines-alpha float :offset-assert 348) - (sliding-height float :offset-assert 352) + ((current-options menu-option-list :offset-assert 200) + (menu-transition float :offset-assert 204) + (option-index int32 :offset-assert 208) + (want-option-index int32 :offset-assert 212) + (next-option-index int32 :offset-assert 216) + (graphic-index int32 :offset-assert 220) + (selected-option symbol :offset-assert 224) + (current symbol :offset-assert 228) + (next symbol :offset-assert 232) + (ring-angle float :offset-assert 236) + (ring-want-angle float :offset-assert 240) + (init-quat quaternion :inline :offset-assert 256) + (pos-transition float :offset-assert 272) + (anim-frame float :offset-assert 276) + (swing float :offset-assert 280) + (main-menu symbol :offset-assert 284) + (state-stack symbol 5 :offset-assert 288) + (option-index-stack int32 5 :offset-assert 308) + (state-pos int32 :offset-assert 328) + (secret-buying basic :offset-assert 332) + (secret-buy-choice basic :offset-assert 336) + (sliding float :offset-assert 340) + (sliding-off float :offset-assert 344) + (scanlines-alpha float :offset-assert 348) + (sliding-height float :offset-assert 352) ) :heap-base #xf0 :method-count-assert 33 :size-assert #x164 :flag-assert #x2100f00164 (:methods - (progress-method-20 () none 20) - (progress-method-21 () none 21) - (progress-method-22 () none 22) - (progress-method-23 () none 23) - (progress-method-24 () none 24) - (progress-method-25 () none 25) - (progress-method-26 () none 26) + (come-in () _type_ :state 20) + (idle () _type_ :state 21) + (go-away () _type_ :state 22) + (gone () _type_ :state 23) + (init-defaults (_type_) connection 24) + (progress-method-25 (_type_) none 25) + (progress-method-26 (_type_) object 26) (can-go-back? (_type_) symbol 27) - (progress-method-28 () none 28) - (progress-method-29 () none 29) - (progress-method-30 () none 30) - (progress-method-31 () none 31) - (progress-method-32 () none 32) + (progress-method-28 (_type_ symbol) symbol 28) + (progress-method-29 (_type_) int 29) + (progress-method-30 (_type_) int 30) + (set-next-state (_type_ symbol int) int 31) + (set-menu-options (_type_ symbol) int 32) ) ) @@ -98,7 +98,7 @@ :size-assert #x30 :flag-assert #xc00000030 (:methods - (menu-option-method-9 () none 9) + (respond-progress (_type_ progress object symbol) int 9) (menu-option-method-10 () none 10) (menu-option-method-11 () none 11) ) @@ -120,7 +120,7 @@ ;; definition of type menu-on-off-option (deftype menu-on-off-option (menu-option) - ((value-to-modify uint32 :offset-assert 48) + ((value-to-modify pointer :offset-assert 48) ) :method-count-assert 12 :size-assert #x34 @@ -144,7 +144,7 @@ ;; definition of type menu-yes-no-option (deftype menu-yes-no-option (menu-option) - ((value-to-modify uint32 :offset-assert 48) + ((value-to-modify pointer :offset-assert 48) ) :method-count-assert 12 :size-assert #x34 @@ -220,7 +220,7 @@ ;; definition of type menu-slider-option (deftype menu-slider-option (menu-option) - ((value-to-modify uint32 :offset-assert 48) + ((value-to-modify pointer :offset-assert 48) (sprites hud-sprite 5 :inline :offset-assert 64) ) :method-count-assert 12 @@ -961,7 +961,7 @@ ;; definition of type secret-item-option (deftype secret-item-option (menu-option) ((cost int32 :offset-assert 48) - (can-toggle basic :offset-assert 52) + (can-toggle symbol :offset-assert 52) (flag uint32 :offset-assert 56) (avail-after uint16 :offset-assert 60) ) @@ -1026,14 +1026,14 @@ ;; definition of type menu-option-list (deftype menu-option-list (basic) - ((y-center int32 :offset-assert 4) - (y-space int32 :offset-assert 8) - (scale float :offset-assert 12) - (options basic :offset-assert 16) + ((y-center int32 :offset-assert 4) + (y-space int32 :offset-assert 8) + (scale float :offset-assert 12) + (options menu-option :dynamic :offset-assert 16) ) :method-count-assert 9 - :size-assert #x14 - :flag-assert #x900000014 + :size-assert #x10 + :flag-assert #x900000010 ) ;; definition for method 3 of type menu-option-list @@ -1046,7 +1046,7 @@ (format #t "~1Ty-center: ~D~%" (-> obj y-center)) (format #t "~1Ty-space: ~D~%" (-> obj y-space)) (format #t "~1Tscale: ~f~%" (-> obj scale)) - (format #t "~1Toptions: ~A~%" (-> obj options)) + (format #t "~1Toptions: ~A~%" (-> obj options 0)) (label cfg-4) obj ) @@ -1161,8 +1161,8 @@ ;; definition of type menu-graphic-option (deftype menu-graphic-option (menu-option) - ((last-move uint64 :offset-assert 48) - (value-to-modify uint32 :offset 60) + ((last-move uint64 :offset-assert 48) + (value-to-modify pointer :offset 60) ) :method-count-assert 12 :size-assert #x40 @@ -1290,8 +1290,8 @@ ;; definition of type menu-game-option (deftype menu-game-option (menu-option) - ((last-move uint64 :offset-assert 48) - (value-to-modify uint32 :offset 60) + ((last-move uint64 :offset-assert 48) + (value-to-modify pointer :offset 60) ) :method-count-assert 12 :size-assert #x40