mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 21:27:52 -04:00
403bb5f4de
* support more process stuff * more of game info * add ref file * progress on save
187 lines
7.4 KiB
Common Lisp
187 lines
7.4 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; name: progress-h.gc
|
|
;; name in dgo: progress-h
|
|
;; dgos: GAME, ENGINE
|
|
|
|
;; progress screen display-state enum:
|
|
;; 32 - nocd
|
|
;; 33 - dirtycd
|
|
|
|
(deftype count-info (structure)
|
|
((money-count int32 :offset-assert 0)
|
|
(buzzer-count int32 :offset-assert 4)
|
|
)
|
|
:pack-me
|
|
:method-count-assert 9
|
|
:size-assert #x8
|
|
:flag-assert #x900000008
|
|
)
|
|
|
|
(deftype game-count-info (basic)
|
|
((length int32 :offset-assert 4)
|
|
(data count-info :inline :dynamic :offset-assert 8)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x8
|
|
:flag-assert #x900000008
|
|
)
|
|
|
|
(deftype task-info-data (basic)
|
|
((task-id game-task :offset-assert 4)
|
|
(task-name game-text-id 4 :offset-assert 8)
|
|
(text-index-when-resolved int32 :offset-assert 24)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x1c
|
|
:flag-assert #x90000001c
|
|
)
|
|
|
|
(deftype level-tasks-info (basic)
|
|
((level-name-id game-text-id :offset-assert 4)
|
|
(text-group-index int32 :offset-assert 8)
|
|
(nb-of-tasks int32 :offset-assert 12)
|
|
(buzzer-task-index int32 :offset-assert 16)
|
|
(task-info task-info-data 8 :offset-assert 20)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x34
|
|
:flag-assert #x900000034
|
|
)
|
|
|
|
(deftype game-option (basic)
|
|
((option-type uint64 :offset-assert 8)
|
|
(name game-text-id :offset-assert 16)
|
|
(scale basic :offset-assert 20)
|
|
(param1 float :offset-assert 24)
|
|
(param2 float :offset-assert 28)
|
|
(param3 int32 :offset-assert 32)
|
|
(value-to-modify uint32 :offset-assert 36)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x28
|
|
:flag-assert #x900000028
|
|
)
|
|
|
|
(deftype progress (process)
|
|
((current-debug-string int32 :offset-assert 112)
|
|
(current-debug-language int32 :offset-assert 116)
|
|
(current-debug-group int32 :offset-assert 120)
|
|
(in-out-position int32 :offset-assert 124)
|
|
(display-state uint64 :offset-assert 128)
|
|
(next-display-state uint64 :offset-assert 136)
|
|
(option-index int32 :offset-assert 144)
|
|
(selected-option basic :offset-assert 148)
|
|
(completion-percentage float :offset-assert 152)
|
|
(ready-to-run basic :offset-assert 156)
|
|
(display-level-index int32 :offset-assert 160)
|
|
(next-level-index int32 :offset-assert 164)
|
|
(task-index int32 :offset-assert 168)
|
|
(in-transition basic :offset-assert 172)
|
|
(last-in-transition basic :offset-assert 176)
|
|
(force-transition basic :offset-assert 180)
|
|
(stat-transition basic :offset-assert 184)
|
|
(level-transition int32 :offset-assert 188)
|
|
(language-selection uint64 :offset-assert 192)
|
|
(language-direction basic :offset-assert 200)
|
|
(language-transition basic :offset-assert 204)
|
|
(language-x-offset int32 :offset-assert 208)
|
|
(sides-x-scale float :offset-assert 212)
|
|
(sides-y-scale float :offset-assert 216)
|
|
(left-x-offset int32 :offset-assert 220)
|
|
(right-x-offset int32 :offset-assert 224)
|
|
(button-scale float :offset-assert 228)
|
|
(slot-scale float :offset-assert 232)
|
|
(left-side-x-scale float :offset-assert 236)
|
|
(left-side-y-scale float :offset-assert 240)
|
|
(right-side-x-scale float :offset-assert 244)
|
|
(right-side-y-scale float :offset-assert 248)
|
|
(small-orb-y-offset int32 :offset-assert 252)
|
|
(big-orb-y-offset int32 :offset-assert 256)
|
|
(transition-offset int32 :offset-assert 260)
|
|
(transition-offset-invert int32 :offset-assert 264)
|
|
(transition-percentage float :offset-assert 268)
|
|
(transition-percentage-invert float :offset-assert 272)
|
|
(transition-speed float :offset-assert 276)
|
|
(total-nb-of-power-cells int32 :offset-assert 280)
|
|
(total-nb-of-orbs int32 :offset-assert 284)
|
|
(total-nb-of-buzzers int32 :offset-assert 288)
|
|
(card-info mc-slot-info :offset-assert 292)
|
|
(last-option-index-change uint64 :offset-assert 296)
|
|
(video-mode-timeout uint64 :offset-assert 304)
|
|
(display-state-stack uint64 5 :offset-assert 312)
|
|
(option-index-stack uint32 5 :offset-assert 352)
|
|
(display-state-pos int32 :offset-assert 372)
|
|
(nb-of-icons int32 :offset-assert 376)
|
|
(icons uint32 6 :offset-assert 380)
|
|
(max-nb-of-particles int32 :offset-assert 404)
|
|
(nb-of-particles int32 :offset-assert 408)
|
|
(particles uint32 40 :offset-assert 412)
|
|
(particle-state uint32 40 :offset-assert 572)
|
|
)
|
|
:method-count-assert 59
|
|
:size-assert #x2dc
|
|
:flag-assert #x3b000002dc
|
|
(:methods
|
|
(dummy-14 () none 14)
|
|
(dummy-15 () none 15)
|
|
(dummy-16 () none 16)
|
|
(dummy-17 () none 17)
|
|
(dummy-18 () none 18)
|
|
(dummy-19 () none 19)
|
|
(hidden? (_type_) symbol 20)
|
|
(dummy-21 () none 21)
|
|
(dummy-22 () none 22)
|
|
(TODO-RENAME-23 (_type_ symbol symbol) none 23)
|
|
(dummy-24 () none 24)
|
|
(dummy-25 () none 25)
|
|
(dummy-26 () none 26)
|
|
(dummy-27 () none 27)
|
|
(dummy-28 () none 28)
|
|
(dummy-29 () none 29)
|
|
(dummy-30 () none 30)
|
|
(dummy-31 () none 31)
|
|
(dummy-32 (_type_) none 32)
|
|
(dummy-33 () none 33)
|
|
(dummy-34 () none 34)
|
|
(dummy-35 () none 35)
|
|
(dummy-36 () none 36)
|
|
(dummy-37 () none 37)
|
|
(dummy-38 () none 38)
|
|
(dummy-39 () none 39)
|
|
(dummy-40 () none 40)
|
|
(dummy-41 () none 41)
|
|
(dummy-42 () none 42)
|
|
(dummy-43 () none 43)
|
|
(dummy-44 () none 44)
|
|
(dummy-45 () none 45)
|
|
(dummy-46 () none 46)
|
|
(dummy-47 () none 47)
|
|
(dummy-48 () none 48)
|
|
(dummy-49 () none 49)
|
|
(dummy-50 () none 50)
|
|
(dummy-51 () none 51)
|
|
(dummy-52 () none 52)
|
|
(dummy-53 () none 53)
|
|
(dummy-54 () none 54)
|
|
(dummy-55 () none 55)
|
|
(dummy-56 () none 56)
|
|
(dummy-57 () none 57)
|
|
(dummy-58 () none 58)
|
|
)
|
|
)
|
|
|
|
(define *progress-process* (the (pointer progress) #f))
|
|
(define *progress-last-task-index* 0)
|
|
|
|
(defun-extern activate-progress process int int)
|
|
|
|
(define-extern *level-task-data* (array level-tasks-info))
|
|
(define-extern *level-task-data-remap* (array int32))
|
|
(define-extern get-game-count (function int count-info))
|
|
(define-extern activate-orb-all (function int int)) ;; maybe in hud?
|
|
(define-extern progress-allowed? (function symbol))
|
|
(define-extern pause-allowed? (function symbol))
|
|
(define-extern deactivate-progress (function none))
|
|
(define-extern calculate-completion (function symbol float)) |