mirror of
https://github.com/open-goal/jak-project
synced 2026-06-11 13:10:44 -04:00
406441038b
- `settings` - `generic-vu1` - `generic-vu0`
745 lines
14 KiB
Common Lisp
745 lines
14 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; name: progress-h.gc
|
|
;; name in dgo: progress-h
|
|
;; dgos: GAME
|
|
|
|
(declare-type progress process)
|
|
(declare-type progress-work structure)
|
|
(define-extern *progress-process* (pointer progress))
|
|
(define-extern activate-progress (function process symbol none))
|
|
(define-extern *progress-work* progress-work)
|
|
(define-extern progress-allowed? (function symbol))
|
|
|
|
;; +++progress-icon-flags
|
|
(defenum progress-icon-flags
|
|
:type uint32
|
|
:bitfield #t
|
|
(pi0 0)
|
|
(pi1 1)
|
|
(pi2 2)
|
|
(pi3 3)
|
|
(pi4 4)
|
|
(pi5 5)
|
|
(pi6 6)
|
|
(pi7 7)
|
|
(pi8 8)
|
|
(pi9 9)
|
|
(pi10 10)
|
|
(pi11 11)
|
|
(pi12 12)
|
|
(pi13 13)
|
|
(pi14 14)
|
|
(pi15 15)
|
|
(pi16 16)
|
|
(pi17 17)
|
|
(pi18 18)
|
|
(pi19 19)
|
|
(pi20 20)
|
|
(pi21 21)
|
|
(pi22 22)
|
|
(pi23 23)
|
|
(pi24 24)
|
|
(pi25 25)
|
|
(pi26 26)
|
|
(pi27 27)
|
|
(pi28 28)
|
|
(pi29 29)
|
|
(pi30 30)
|
|
(pi31 31)
|
|
)
|
|
;; ---progress-icon-flags
|
|
|
|
|
|
;; +++inventory-icon
|
|
(defenum inventory-icon
|
|
:type uint32
|
|
(icon0 0)
|
|
(icon1 1)
|
|
(icon2 2)
|
|
(icon3 3)
|
|
(icon4 4)
|
|
(icon5 5)
|
|
(icon6 6)
|
|
(icon7 7)
|
|
(icon8 8)
|
|
(icon9 9)
|
|
(icon10 10)
|
|
(icon11 11)
|
|
(icon12 12)
|
|
(icon13 13)
|
|
(icon14 14)
|
|
(icon15 15)
|
|
(v-turtle 16)
|
|
(v-snake 17)
|
|
(v-toad 18)
|
|
(v-scorpion 19)
|
|
(v-rhino 20)
|
|
(v-fox 21)
|
|
(v-mirage 22)
|
|
(v-x-ride 23)
|
|
(armor3 24)
|
|
(armor0 25)
|
|
(armor1 26)
|
|
(armor2 27)
|
|
(darkjak-bomb0 28)
|
|
(darkjak-bomb1 29)
|
|
(artifact-invis 30)
|
|
(darkjak-smack 31)
|
|
(lightjak-swoop 32)
|
|
(lightjak-regen 33)
|
|
(lightjak-shield 34)
|
|
(lightjak-freeze 35)
|
|
(gun-red-1 36)
|
|
(gun-red-2 37)
|
|
(gun-red-3 38)
|
|
(gun-yellow-1 39)
|
|
(gun-yellow-2 40)
|
|
(gun-yellow-3 41)
|
|
(gun-blue-1 42)
|
|
(gun-blue-2 43)
|
|
(gun-blue-3 44)
|
|
(gun-dark-1 45)
|
|
(gun-dark-2 46)
|
|
(gun-dark-3 47)
|
|
(pass-wascity 48)
|
|
(amulet2 49)
|
|
(amulet0 50)
|
|
(amulet1 51)
|
|
(seal-of-mar 52)
|
|
(board 53)
|
|
(pass-factory 54)
|
|
(artifact-holocube 55)
|
|
(artifact-beam-generator 56)
|
|
(artifact-prism 57)
|
|
(artifact-quantum-reflector 58)
|
|
(artifact-time-map 59)
|
|
(light-eco-crystal 60)
|
|
(dark-eco-crystal 61)
|
|
(eco-sphere 62)
|
|
(icon63 63)
|
|
)
|
|
;; ---inventory-icon
|
|
|
|
|
|
(declare-type menu-option-list basic)
|
|
|
|
;; +++secret-item-option-flags
|
|
(defenum secret-item-option-flags
|
|
:type uint8
|
|
:bitfield #t
|
|
(sf0)
|
|
(sf1)
|
|
(sf2)
|
|
(sf3)
|
|
(sf4)
|
|
(sf5)
|
|
(sf6)
|
|
(sf7)
|
|
)
|
|
;; ---secret-item-option-flags
|
|
|
|
|
|
;; DECOMP BEGINS
|
|
|
|
(deftype progress-list (basic)
|
|
()
|
|
(:methods
|
|
(progress-list-method-9 () none)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype progress-list-level (progress-list)
|
|
((act int32)
|
|
(mode symbol)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype progress-box (structure)
|
|
((aspect4x3 hud-box :inline)
|
|
(aspect16x9 hud-box :inline)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype progress (process-drawable)
|
|
((scissor-stack vector 8 :inline)
|
|
(scissor-count int32)
|
|
(current-options menu-option-list)
|
|
(menu-transition float)
|
|
(option-index int32)
|
|
(current-index int32)
|
|
(want-option-index int32)
|
|
(next-option-index int32)
|
|
(graphic-index int32)
|
|
(selected-option symbol)
|
|
(current symbol)
|
|
(next symbol)
|
|
(ring-angle float)
|
|
(ring-want-angle float)
|
|
(init-quat quaternion :inline)
|
|
(pos-transition float)
|
|
(anim-frame float)
|
|
(swing float)
|
|
(main-menu symbol)
|
|
(state-array symbol 8)
|
|
(option-index-stack int32 8)
|
|
(state-pos int32)
|
|
(secret-buying basic)
|
|
(secret-buy-choice basic)
|
|
(scanlines-alpha float)
|
|
(start-time time-frame)
|
|
(which-slot int32)
|
|
(starting-state basic)
|
|
(yes-no-choice basic)
|
|
(time-out time-frame)
|
|
(last-sound time-frame)
|
|
(last-move time-frame)
|
|
(center-x-backup int32)
|
|
(center-y-backup int32)
|
|
(flip-horizontal basic)
|
|
(flip-vertical basic)
|
|
(progressive-scan basic)
|
|
(aspect-ratio basic)
|
|
(video-mode basic)
|
|
(stereo-mode-backup int32)
|
|
(vibrations basic)
|
|
(subtitles basic)
|
|
(languages int32 3)
|
|
(subtitle-language-index int32 :overlay-at (-> languages 0))
|
|
(language-index int32 :overlay-at (-> languages 1))
|
|
(audio-language-index int32 :overlay-at (-> languages 2))
|
|
(current-task-index int32)
|
|
(current-line-index int32)
|
|
(first-closed-line-index int32)
|
|
(extra-text-state int32)
|
|
(current-task game-task)
|
|
(num-open-tasks-found int32)
|
|
(num-closed-tasks-found int32)
|
|
(num-unlocked-secrets int32)
|
|
(total-num-tasks int32)
|
|
(missions-total-spacing float)
|
|
(clear-screen symbol)
|
|
(progress-id uint32)
|
|
(lock-tick-count int32)
|
|
)
|
|
(:methods
|
|
(progress-method-20 () none)
|
|
(progress-method-21 () none)
|
|
(progress-method-22 () none)
|
|
(progress-method-23 () none)
|
|
(progress-method-24 () none)
|
|
(progress-method-25 () none)
|
|
(progress-method-26 () none)
|
|
(progress-method-27 () none)
|
|
(progress-method-28 () none)
|
|
(progress-method-29 () none)
|
|
(progress-method-30 () none)
|
|
(progress-method-31 () none)
|
|
(progress-method-32 () none)
|
|
(progress-method-33 () none)
|
|
(progress-method-34 () none)
|
|
(progress-method-35 () none)
|
|
(progress-method-36 () none)
|
|
(progress-method-37 () none)
|
|
(progress-method-38 () none)
|
|
(progress-method-39 () none)
|
|
(progress-method-40 () none)
|
|
(progress-method-41 () none)
|
|
(progress-method-42 () none)
|
|
(progress-method-43 () none)
|
|
(progress-method-44 () none)
|
|
(progress-method-45 () none)
|
|
(progress-method-46 () none)
|
|
(progress-method-47 () none)
|
|
(progress-method-48 () none)
|
|
(progress-method-49 () none)
|
|
(progress-method-50 () none)
|
|
(progress-method-51 () none)
|
|
(progress-method-52 () none)
|
|
(progress-method-53 () none)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype progress-work (structure)
|
|
((full-screen progress-box :inline)
|
|
(small-screen progress-box :inline)
|
|
(header progress-box :inline)
|
|
(body progress-box :inline)
|
|
(body-footer progress-box :inline)
|
|
(footer progress-box :inline)
|
|
(sub-header progress-box :inline)
|
|
(sub-body progress-box :inline)
|
|
(sub-body-footer progress-box :inline)
|
|
(highscore-0 progress-box :inline)
|
|
(highscore-1 progress-box :inline)
|
|
(highscore-body progress-box :inline)
|
|
(load-save-0a progress-box :inline)
|
|
(load-save-0b progress-box :inline)
|
|
(load-save-1a progress-box :inline)
|
|
(load-save-1b progress-box :inline)
|
|
(load-save-2a progress-box :inline)
|
|
(load-save-2b progress-box :inline)
|
|
(load-save-3a progress-box :inline)
|
|
(load-save-3b progress-box :inline)
|
|
(last-slot-saved int32)
|
|
(selected-num int32)
|
|
(secrets-unlocked basic)
|
|
(hero-mode-save symbol)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype progress-icon-part (structure)
|
|
((offset vector2w :inline)
|
|
(tex-id texture-id)
|
|
(bucket bucket-id)
|
|
(flags progress-icon-flags)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype progress-icon-array (array)
|
|
((icons progress-icon-part :dynamic :offset 16)
|
|
)
|
|
(:methods
|
|
(progress-icon-array-method-9 () none)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-option (basic)
|
|
((name text-id)
|
|
(menu-option-type uint32)
|
|
(offset-y float)
|
|
(box hud-box 1 :inline)
|
|
)
|
|
(:methods
|
|
(menu-option-method-9 () none)
|
|
(menu-option-method-10 () none)
|
|
(menu-option-method-11 () none)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-slider-option (menu-option)
|
|
((setting-offset uint32)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-sound-slider-option (menu-slider-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-picture-slider-option (menu-slider-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-sub-menu-option (menu-option)
|
|
((next-state symbol)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-stereo-mode-sound-option (menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-unlocked-sub-menu-option (menu-sub-menu-option)
|
|
((mask uint64)
|
|
(value int32)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-save-sub-menu-option (menu-sub-menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-main-menu-option (menu-option)
|
|
((next-state symbol)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-memcard-slot-option (menu-option)
|
|
((sprites hud-sprite 5 :inline)
|
|
(pad uint8 32)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-loading-option (menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-insufficient-space-option (menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-secrets-insufficient-space-option (menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-hero-mode-message-option (menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-insert-card-option (menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-error-loading-option (menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-error-auto-saving-option (menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-card-removed-option (menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-error-disc-removed-option (menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-error-reading-option (menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-icon-info-option (menu-option)
|
|
((sprites hud-sprite 2 :inline)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-format-card-option (menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-already-exists-option (menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-create-game-option (menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-video-mode-warning-option (menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-video-mode-ok-option (menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-progressive-mode-warning-option (menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-progressive-mode-ok-option (menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-select-start-option (menu-option)
|
|
((current-index float)
|
|
(target-index float)
|
|
(selected-index int32)
|
|
(scroll-speed float)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-select-scene-option (menu-option)
|
|
((current-index float)
|
|
(target-index float)
|
|
(selected-index int32)
|
|
(scroll-speed float)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-bigmap-option (menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype paged-menu-option (menu-option)
|
|
((page-index int32)
|
|
(prev-page-index int32)
|
|
(num-pages int32)
|
|
(slide-dir float)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-missions-option (paged-menu-option)
|
|
((current-index float)
|
|
(target-index float)
|
|
(scroll-speed float)
|
|
(on-screen basic)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype highscore-page-info (structure)
|
|
((text text-id)
|
|
(secret game-secrets)
|
|
(game-score uint8)
|
|
(icon uint32)
|
|
(icon-scalex float)
|
|
(icon-scaley float)
|
|
(icon-offsetx float)
|
|
(icon-offsety float)
|
|
)
|
|
(:methods
|
|
(highscore-page-info-method-9 () none)
|
|
(highscore-page-info-method-10 () none)
|
|
(highscore-page-info-method-11 () none)
|
|
(highscore-page-info-method-12 () none)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-highscores-option (menu-option)
|
|
((current-index float)
|
|
(target-index float)
|
|
(num-pages int32)
|
|
(pages highscore-page-info 16)
|
|
(info basic)
|
|
)
|
|
(:methods
|
|
(menu-highscores-option-method-12 () none)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype controls-string-info (structure)
|
|
((button text-id)
|
|
(action text-id)
|
|
(feature game-feature)
|
|
(secret game-secrets)
|
|
(vehicle game-vehicles)
|
|
)
|
|
(:methods
|
|
(controls-string-info-method-9 () none)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype controls-page-info (structure)
|
|
((title text-id)
|
|
(feature game-feature)
|
|
(secret game-secrets)
|
|
(vehicle game-vehicles)
|
|
(current-index float)
|
|
(target-index float)
|
|
(num-text int32)
|
|
(on-screen basic)
|
|
(text text-id 9)
|
|
(strings (array controls-string-info))
|
|
)
|
|
(:methods
|
|
(controls-page-info-method-9 () none)
|
|
(controls-page-info-method-10 () none)
|
|
(controls-page-info-method-11 () none)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-controls-option (paged-menu-option)
|
|
((current-index float)
|
|
(target-index float)
|
|
(pages controls-page-info 7 :offset 76)
|
|
(info basic)
|
|
)
|
|
(:methods
|
|
(menu-controls-option-method-12 () none)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype secret-item-option (menu-option)
|
|
((cost int32)
|
|
(secret game-secrets)
|
|
(avail-after game-task-node)
|
|
(required-secrets game-secrets)
|
|
(mask-secrets game-secrets)
|
|
(flags secret-item-option-flags)
|
|
)
|
|
(:methods
|
|
(secret-item-option-method-12 () none)
|
|
(secret-item-option-method-13 () none)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-secret-option (menu-option)
|
|
((current-index float)
|
|
(target-index float)
|
|
(selected-index int32)
|
|
(buy-menu symbol)
|
|
(available-title symbol)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-option-list (basic)
|
|
((y-center int32)
|
|
(y-space int32)
|
|
(scale float)
|
|
(options (array menu-option))
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-qr-option (menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-restart-mission-qr-option (menu-qr-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-quit-qr-option (menu-qr-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-graphic-option (menu-option)
|
|
((setting-offset uint32)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-on-off-progressive-scan-graphic-option (menu-graphic-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-aspect-ratio-option (menu-graphic-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-center-screen-graphic-option (menu-graphic-option)
|
|
((next-state symbol)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-video-mode-option (menu-graphic-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-camera-option (menu-option)
|
|
((setting-offset uint32)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-game-option (menu-option)
|
|
((setting-offset uint32)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-language-option (menu-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-on-off-game-vibrations-option (menu-game-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-on-off-game-subtitles-option (menu-game-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype menu-language-game-option (menu-game-option)
|
|
()
|
|
)
|
|
|
|
|
|
(deftype inventory-item (structure)
|
|
((icon inventory-icon)
|
|
(icon-scale float)
|
|
(offset vector2 :offset 16)
|
|
(feature game-feature)
|
|
(vehicle game-vehicles)
|
|
(item game-items)
|
|
)
|
|
(:methods
|
|
(inventory-item-method-9 () none)
|
|
(inventory-item-method-10 () none)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype inventory-item-group (structure)
|
|
((name text-id)
|
|
(index-left uint8)
|
|
(index-right uint8)
|
|
(index-up uint8)
|
|
(index-down uint8)
|
|
(items (array inventory-item))
|
|
)
|
|
(:methods
|
|
(inventory-item-group-method-9 () none)
|
|
(inventory-item-group-method-10 () none)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype inventory-screen (structure)
|
|
((name text-id)
|
|
(current-index uint8)
|
|
(groups (array inventory-item-group))
|
|
)
|
|
(:methods
|
|
(inventory-screen-method-9 () none)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype menu-inventory (menu-option)
|
|
((current-index float)
|
|
(target-index float)
|
|
(screens (array inventory-screen))
|
|
)
|
|
)
|