mirror of
https://github.com/open-goal/jak-project
synced 2026-07-04 05:20:56 -04:00
05b7b571c8
Lots of manual fixes to make the text and other UI elements in the progress fit within the small 4x3 view.         I've also changed the select start menus to not have that giant space in each option. It's behind a toggle in the code right now.  Additionally: - fixed city billboard particles - fix stadium crash from original game - fix an accidental regression
579 lines
15 KiB
Common Lisp
579 lines
15 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; name: progress-h.gc
|
|
;; name in dgo: progress-h
|
|
;; dgos: ENGINE, GAME
|
|
|
|
(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)
|
|
|
|
(declare-type progress process-drawable)
|
|
(define-extern *progress-process* (pointer progress))
|
|
(define-extern activate-progress (function process symbol none))
|
|
|
|
(define-extern memcard-unlocked-secrets? (function symbol game-secrets))
|
|
(define-extern progress-selected (function int font-color :behavior progress))
|
|
(define-extern get-num-highscores (function int))
|
|
(define-extern get-next-highscore (function int int))
|
|
(define-extern get-prev-highscore (function int int))
|
|
|
|
;; DECOMP BEGINS
|
|
|
|
(deftype progress (process-drawable)
|
|
((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
|
|
(come-in () _type_ :state 20)
|
|
(idle () _type_ :state 21)
|
|
(go-away () _type_ :state 22)
|
|
(gone () _type_ :state 23)
|
|
(init-defaults (_type_) connection 24)
|
|
(respond-to-cpad (_type_) none 25)
|
|
(gone? (_type_) object 26)
|
|
(can-go-back? (_type_) symbol 27)
|
|
(get-state-check-card (_type_ symbol) symbol 28)
|
|
(push-state (_type_) int 29)
|
|
(pop-state (_type_) int 30)
|
|
(set-next-state (_type_ symbol int) int 31)
|
|
(set-menu-options (_type_ symbol) int 32)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-option (basic)
|
|
((name text-id :offset-assert 4)
|
|
(scale symbol :offset-assert 8)
|
|
(unknown function :offset-assert 12)
|
|
(box hud-box 1 :inline :offset-assert 16)
|
|
(options menu-option 8 :offset 16)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x30
|
|
:flag-assert #xc00000030
|
|
(:methods
|
|
(respond-progress (_type_ progress symbol) int :behavior progress 9)
|
|
(draw-option (_type_ progress font-context int symbol) none 10)
|
|
(menu-option-method-11 () none 11)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-on-off-option (menu-option)
|
|
((value-to-modify (pointer symbol) :offset-assert 48)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x34
|
|
:flag-assert #xc00000034
|
|
)
|
|
|
|
|
|
(deftype menu-yes-no-option (menu-option)
|
|
((value-to-modify pointer :offset-assert 48)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x34
|
|
:flag-assert #xc00000034
|
|
)
|
|
|
|
|
|
(deftype menu-language-option (menu-option)
|
|
((language-selection language-enum :offset-assert 48)
|
|
(language-direction symbol :offset-assert 56)
|
|
(language-transition basic :offset-assert 60)
|
|
(language-x-offset int32 :offset-assert 64)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x44
|
|
:flag-assert #xc00000044
|
|
)
|
|
|
|
|
|
(deftype menu-quit-option (menu-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x30
|
|
:flag-assert #xc00000030
|
|
)
|
|
|
|
|
|
(deftype menu-slider-option (menu-option)
|
|
((value-to-modify pointer :offset-assert 48)
|
|
(sprites hud-sprite 5 :inline :offset 64)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x180
|
|
:flag-assert #xc00000180
|
|
)
|
|
|
|
|
|
(deftype menu-sub-menu-option (menu-option)
|
|
((next-state symbol :offset-assert 48)
|
|
(pad uint8 44 :offset-assert 52)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x60
|
|
:flag-assert #xc00000060
|
|
)
|
|
|
|
|
|
(deftype menu-sub-menu-sound-option (menu-option)
|
|
((next-state symbol :offset-assert 48)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x34
|
|
:flag-assert #xc00000034
|
|
)
|
|
|
|
|
|
(deftype menu-stereo-mode-sound-option (menu-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x30
|
|
:flag-assert #xc00000030
|
|
)
|
|
|
|
|
|
(deftype menu-sub-menu-graphic-option (menu-option)
|
|
((next-state symbol :offset-assert 48)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x34
|
|
:flag-assert #xc00000034
|
|
)
|
|
|
|
|
|
(deftype menu-unlocked-menu-option (menu-sub-menu-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x60
|
|
:flag-assert #xc00000060
|
|
)
|
|
|
|
|
|
(deftype menu-main-menu-option (menu-option)
|
|
((next-state symbol :offset-assert 48)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x34
|
|
:flag-assert #xc00000034
|
|
)
|
|
|
|
|
|
(deftype menu-memcard-slot-option (menu-option)
|
|
((sprites hud-sprite 5 :inline :offset 48)
|
|
(pad uint8 32 :offset-assert 368)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x190
|
|
:flag-assert #xc00000190
|
|
)
|
|
|
|
|
|
(deftype menu-loading-option (menu-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x30
|
|
:flag-assert #xc00000030
|
|
)
|
|
|
|
|
|
(deftype menu-insufficient-space-option (menu-option)
|
|
((last-move uint64 :offset-assert 48)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x38
|
|
:flag-assert #xc00000038
|
|
)
|
|
|
|
|
|
(deftype menu-secrets-insufficient-space-option (menu-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x30
|
|
:flag-assert #xc00000030
|
|
)
|
|
|
|
|
|
(deftype menu-insert-card-option (menu-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x30
|
|
:flag-assert #xc00000030
|
|
)
|
|
|
|
|
|
(deftype menu-error-loading-option (menu-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x30
|
|
:flag-assert #xc00000030
|
|
)
|
|
|
|
|
|
(deftype menu-error-auto-saving-option (menu-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x30
|
|
:flag-assert #xc00000030
|
|
)
|
|
|
|
|
|
(deftype menu-card-removed-option (menu-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x30
|
|
:flag-assert #xc00000030
|
|
)
|
|
|
|
|
|
(deftype menu-error-disc-removed-option (menu-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x30
|
|
:flag-assert #xc00000030
|
|
)
|
|
|
|
|
|
(deftype menu-error-reading-option (menu-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x30
|
|
:flag-assert #xc00000030
|
|
)
|
|
|
|
|
|
(deftype menu-icon-info-option (menu-option)
|
|
((sprites hud-sprite 2 :inline :offset 48)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #xb0
|
|
:flag-assert #xc000000b0
|
|
)
|
|
|
|
|
|
(deftype menu-format-card-option (menu-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x30
|
|
:flag-assert #xc00000030
|
|
)
|
|
|
|
|
|
(deftype menu-already-exists-option (menu-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x30
|
|
:flag-assert #xc00000030
|
|
)
|
|
|
|
|
|
(deftype menu-create-game-option (menu-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x30
|
|
:flag-assert #xc00000030
|
|
)
|
|
|
|
|
|
(deftype menu-video-mode-warning-option (menu-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x30
|
|
:flag-assert #xc00000030
|
|
)
|
|
|
|
|
|
(deftype menu-video-mode-ok-option (menu-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x30
|
|
:flag-assert #xc00000030
|
|
)
|
|
|
|
|
|
(deftype menu-progressive-mode-warning-option (menu-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x30
|
|
:flag-assert #xc00000030
|
|
)
|
|
|
|
|
|
(deftype menu-progressive-mode-ok-option (menu-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x30
|
|
:flag-assert #xc00000030
|
|
)
|
|
|
|
|
|
(deftype menu-select-start-option (menu-option)
|
|
((task-index int32 :offset-assert 48)
|
|
(real-task-index int32 :offset-assert 52)
|
|
(last-move uint64 :offset-assert 56)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x40
|
|
:flag-assert #xc00000040
|
|
)
|
|
|
|
|
|
(deftype menu-select-scene-option (menu-option)
|
|
((task-index int32 :offset-assert 48)
|
|
(last-move uint64 :offset-assert 56)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x40
|
|
:flag-assert #xc00000040
|
|
)
|
|
|
|
|
|
(deftype menu-bigmap-option (menu-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x30
|
|
:flag-assert #xc00000030
|
|
)
|
|
|
|
|
|
(deftype paged-menu-option (menu-option)
|
|
((page-index int32 :offset-assert 48)
|
|
(prev-page-index int32 :offset-assert 52)
|
|
(num-pages int32 :offset-assert 56)
|
|
(slide-dir float :offset-assert 60)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x40
|
|
:flag-assert #xc00000040
|
|
)
|
|
|
|
|
|
(deftype menu-missions-option (paged-menu-option)
|
|
((task-line-index int32 :offset-assert 64)
|
|
(last-move uint64 :offset-assert 72)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x50
|
|
:flag-assert #xc00000050
|
|
)
|
|
|
|
|
|
(deftype menu-highscores-option (paged-menu-option)
|
|
((last-move uint64 :offset-assert 64)
|
|
(sprites hud-sprite 2 :inline :offset 80)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #xd0
|
|
:flag-assert #xc000000d0
|
|
)
|
|
|
|
|
|
(deftype secret-item-option (menu-option)
|
|
((cost int32 :offset-assert 48)
|
|
(can-toggle symbol :offset-assert 52)
|
|
(flag game-secrets :offset-assert 56)
|
|
(avail-after game-task-node :offset-assert 60)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x3e
|
|
:flag-assert #xc0000003e
|
|
)
|
|
|
|
|
|
(deftype menu-secret-option (menu-option)
|
|
((item-index int32 :offset-assert 48)
|
|
(prev-item-index int32 :offset-assert 52)
|
|
(num-items int32 :offset-assert 56)
|
|
(num-hero-items int32 :offset-assert 60)
|
|
(secret-items (array secret-item-option) :offset-assert 64)
|
|
(last-move uint64 :offset-assert 72)
|
|
(sprites hud-sprite 2 :inline :offset 80)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #xd0
|
|
:flag-assert #xc000000d0
|
|
)
|
|
|
|
|
|
(deftype menu-option-list (basic)
|
|
((y-center int32 :offset-assert 4)
|
|
(y-space int32 :offset-assert 8)
|
|
(scale float :offset-assert 12)
|
|
(options (array menu-option) :offset-assert 16)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x14
|
|
:flag-assert #x900000014
|
|
)
|
|
|
|
|
|
(deftype menu-qr-option (menu-option)
|
|
((last-move uint64 :offset-assert 48)
|
|
(value-to-modify function :offset 60)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x40
|
|
:flag-assert #xc00000040
|
|
)
|
|
|
|
|
|
(deftype menu-restart-mission-qr-option (menu-qr-option)
|
|
((next-state symbol :offset-assert 64)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x44
|
|
:flag-assert #xc00000044
|
|
)
|
|
|
|
|
|
(deftype menu-quit-qr-option (menu-qr-option)
|
|
((next-state symbol :offset-assert 64)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x44
|
|
:flag-assert #xc00000044
|
|
)
|
|
|
|
|
|
(deftype menu-sub-menu-qr-option (menu-qr-option)
|
|
((next-state symbol :offset-assert 64)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x44
|
|
:flag-assert #xc00000044
|
|
)
|
|
|
|
|
|
(deftype menu-graphic-option (menu-option)
|
|
((last-move uint64 :offset-assert 48)
|
|
(value-to-modify pointer :offset 60)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x40
|
|
:flag-assert #xc00000040
|
|
)
|
|
|
|
|
|
(deftype menu-on-off-progressive-scan-graphic-option (menu-graphic-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x40
|
|
:flag-assert #xc00000040
|
|
)
|
|
|
|
|
|
(deftype menu-aspect-ratio-option (menu-graphic-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x40
|
|
:flag-assert #xc00000040
|
|
)
|
|
|
|
|
|
(deftype menu-center-screen-graphic-option (menu-graphic-option)
|
|
((next-state symbol :offset-assert 64)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x44
|
|
:flag-assert #xc00000044
|
|
)
|
|
|
|
|
|
(deftype menu-video-mode-option (menu-graphic-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x40
|
|
:flag-assert #xc00000040
|
|
)
|
|
|
|
|
|
(deftype menu-game-option (menu-option)
|
|
((last-move uint64 :offset-assert 48)
|
|
(value-to-modify pointer :offset 60)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x40
|
|
:flag-assert #xc00000040
|
|
)
|
|
|
|
|
|
(deftype menu-on-off-game-vibrations-option (menu-game-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x40
|
|
:flag-assert #xc00000040
|
|
)
|
|
|
|
|
|
(deftype menu-on-off-game-subtitles-option (menu-game-option)
|
|
()
|
|
:method-count-assert 12
|
|
:size-assert #x40
|
|
:flag-assert #xc00000040
|
|
)
|
|
|
|
|
|
(deftype menu-sub-menu-game-option (menu-game-option)
|
|
((next-state symbol :offset-assert 64)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x44
|
|
:flag-assert #xc00000044
|
|
)
|
|
|
|
|
|
(deftype menu-language-game-option (menu-game-option)
|
|
((language-selection uint64 :offset-assert 64)
|
|
(language-direction basic :offset-assert 72)
|
|
(language-transition basic :offset-assert 76)
|
|
(language-x-offset int32 :offset-assert 80)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x54
|
|
:flag-assert #xc00000054
|
|
)
|
|
|
|
|
|
(deftype menu-subtitle-language-game-option (menu-game-option)
|
|
((language-selection uint64 :offset-assert 64)
|
|
(language-direction basic :offset-assert 72)
|
|
(language-transition basic :offset-assert 76)
|
|
(language-x-offset int32 :offset-assert 80)
|
|
)
|
|
:method-count-assert 12
|
|
:size-assert #x54
|
|
:flag-assert #xc00000054
|
|
)
|