d/jak2: progress updated

This commit is contained in:
Tyler Wilding
2022-09-27 22:42:35 -04:00
parent 593b35c6ab
commit 930d56deb0
25 changed files with 2823 additions and 4730 deletions
+1 -1
View File
@@ -67,7 +67,7 @@
"--game",
"jak2",
"--file",
"progress-static"
"progress"
]
},
{
-1
View File
@@ -137,4 +137,3 @@ tasks:
type-test:
cmds:
- cmd: '{{.GOALCTEST_BIN_RELEASE_DIR}}/goalc-test --gtest_brief=0 --gtest_filter="*Jak2TypeConsistency*"'
ignore_error: true
+9 -7
View File
@@ -978,10 +978,12 @@ static std::vector<ReplaceInfo> s_replace_info_jak2 = {
"<PAD_ANALOG_ANY>"},
{"~Y~1L~+8H\\c91~Z~6L~-8H\\c9e~Z~+24H~6L\\ca4~Z~+40H", "<PAD_ANALOG_LEFT_RIGHT>"},
{"~Y~1L\\c91~Z~6L~-15V\\c9c~Z~+13V~6L\\c98~Z~+26H", "<PAD_ANALOG_UP_DOWN>"},
// icons
{"~Y~6L<~Z~Y~1L>~Z~Y~23L[~Z~+26H", "<ICON_MISSION_COMPLETE>"},
{"~Y~3L<~Z~Y~1L>~Z~Y~23L[~Z~+26H", "<ICON_MISSION_TODO>"},
// TODO
// - ~Y~22L\ca1~Z~22L~+17H~-13V\ca2~Z~22L~+17H~+14V\ca0~Z~22L~+32H\ca3~Z~+56H
// - ~Y~6L<~Z~Y~1L>~Z~Y~23L[~Z~+26H
// - ~Y~3L<~Z~Y~1L>~Z~Y~23L[~Z~+26H
// - ~Y~1L\c85~Z~3L\c8c~Z~7L\c8e~\c5d~-1H~Y~1L\c85~Z~3L\c8d~Z~7L\c8f~Z~+26H
// - ~Y~3L<~Z~Y~1L>~Z~Y~23L[~Z~+26H
// - ~Y~1L\c85~\c5d~-1H~Y~1L\c85~Z~-11H~3L\c86~Z~+26H
@@ -989,11 +991,11 @@ static std::vector<ReplaceInfo> s_replace_info_jak2 = {
// flags
{"~Y~6L\\c81~Z~+15H~1L\\c81~Z~+30H~3L\\c81~Z~+45H", "<FLAG_ITALIAN>"},
{"~Y~5L\\c85~Z~3L\\c8b~\\c5d~-1H~Y~5L\\c85~Z~3L\\c8b~Z~+26H", "<FLAG_SPAIN>"},
{"~Y~39L~~~Z~3L\\c7f~Z~5L\\c80~\\c5d~-1H~Y~39L~~~Z~3L\\c7f~Z~5L\\c80~Z~+26H",
"<FLAG_GERMAN>"},
{"~Y~39L~~~Z~3L\\c7f~Z~5L\\c80~\\c5d~-1H~Y~39L~~~Z~3L\\c7f~Z~5L\\c80~Z~+26H", "<FLAG_GERMAN>"},
{"~Y~7L\\c81~Z~+15H~1L\\c81~Z~+30H~3L\\c81~Z~+47H", "<FLAG_FRANCE>"},
{"~Y~1L\\c85~Z~3L\\c9a~Z~7L\\c9b~\\c5d~-1H~Y~1L\\c85~Z~3L\\c90~Z~+26H", "<FLAG_UK>"},
{"~Y~1L\\c85~Z~39L\\c87~\\c5d~-1H~Y~1L\\c85~Z~39L\\c88~Z~-11H~7L\\c8a~Z~-11H~3L\\c89~Z~+26H", "<FLAG_JAPAN>"},
{"~Y~1L\\c85~Z~39L\\c87~\\c5d~-1H~Y~1L\\c85~Z~39L\\c88~Z~-11H~7L\\c8a~Z~-11H~3L\\c89~Z~+26H",
"<FLAG_JAPAN>"},
{"~Y~1L\\c85~\\c5d~-1H~Y~1L\\c85~Z~-11H~3L\\c86~Z~+26H", "<FLAG_SOUTH_KOREA>"},
// weird stuff
@@ -1010,14 +1012,14 @@ static std::vector<ReplaceInfo> s_replace_info_jak2 = {
"<SUPERSCRIPT_QUOTE>"}, // used for the 4<__> place in spanish. the 5th uses the same
// character but looks different...?
{"~Y~-6Hº~Z~+10H", "°"},
{"\\c5e", "œ"}, // ligature o+e
{"\\c5e", "œ"}, // ligature o+e
// Color / Emphasis
{"~[~1L", "<COLOR_WHITE>"},
{"~[~32L", "<COLOR_DEFAULT>"}};
static std::vector<EncodeInfo> s_encode_info_jak2 = {
{"_", {0x03}}, // large space
{"_", {0x03}}, // large space
{"ˇ", {0x10}}, // caron
{"`", {0x11}}, // grave accent
{"'", {0x12}}, // apostrophe
+32 -14
View File
@@ -1359,23 +1359,41 @@ void SimpleExpressionElement::update_from_stack_mult_si(const Env& env,
FormStack& stack,
std::vector<FormElement*>* result,
bool allow_side_effects) {
auto arg0_i = is_int_type(env, m_my_idx, m_expr.get_arg(0).var());
auto arg1_i = is_int_type(env, m_my_idx, m_expr.get_arg(1).var());
if (m_expr.get_arg(0).is_int()) {
// annoyingly there's a mult3 v1, r0, v1 in jak 2.
auto arg1_i = is_int_type(env, m_my_idx, m_expr.get_arg(1).var());
auto args = pop_to_forms({m_expr.get_arg(0).var(), m_expr.get_arg(1).var()}, env, pool, stack,
allow_side_effects);
auto args = pop_to_forms({m_expr.get_arg(1).var()}, env, pool, stack, allow_side_effects);
if (!arg0_i) {
args.at(0) = pool.form<CastElement>(TypeSpec("int"), args.at(0));
if (!arg1_i) {
args.at(0) = pool.form<CastElement>(TypeSpec("int"), args.at(1));
}
auto new_form = pool.alloc_element<GenericElement>(
GenericOperator::make_fixed(FixedOperatorKind::MULTIPLICATION),
pool.form<SimpleAtomElement>(SimpleAtom::make_int_constant(m_expr.get_arg(0).get_int())),
args.at(0));
result->push_back(new_form);
} else {
auto arg0_i = is_int_type(env, m_my_idx, m_expr.get_arg(0).var());
auto arg1_i = is_int_type(env, m_my_idx, m_expr.get_arg(1).var());
auto args = pop_to_forms({m_expr.get_arg(0).var(), m_expr.get_arg(1).var()}, env, pool, stack,
allow_side_effects);
if (!arg0_i) {
args.at(0) = pool.form<CastElement>(TypeSpec("int"), args.at(0));
}
if (!arg1_i) {
args.at(1) = pool.form<CastElement>(TypeSpec("int"), args.at(1));
}
auto new_form = pool.alloc_element<GenericElement>(
GenericOperator::make_fixed(FixedOperatorKind::MULTIPLICATION), args.at(0), args.at(1));
result->push_back(new_form);
}
if (!arg1_i) {
args.at(1) = pool.form<CastElement>(TypeSpec("int"), args.at(1));
}
auto new_form = pool.alloc_element<GenericElement>(
GenericOperator::make_fixed(FixedOperatorKind::MULTIPLICATION), args.at(0), args.at(1));
result->push_back(new_form);
}
void SimpleExpressionElement::update_from_stack_force_si_2(const Env& env,
+179 -151
View File
@@ -5050,7 +5050,7 @@
(deftype texture-page-translate-item (structure)
((bucket bucket-id :offset-assert 0)
(level-index uint32 :offset-assert 4)
(level-index uint32 :offset-assert 4) ;; TODO - this is an enum
(level-texture-page tpage-category-u32 :offset-assert 8)
(texture-user texture-enable-mask-u32 :offset-assert 12)
)
@@ -6580,99 +6580,121 @@
:type uint32
:bitfield #f
(pause 257)
(progress-on-off-1TODO 270)
(progress-on-off-2TODO 271)
(progress-1k2jn1kj2n3 272)
(progress-kj1231nj23 286)
(progress-12434g343v 287)
(progress-video-asda 288)
(progress-video-j1n2 289)
(progress-draw-yes-or-no-1-TODO 292)
(progress-draw-yes-or-no-2-TODO 293)
(progress-1kj2n3kj1n23 296)
(progress-n2jk3n45234 298)
(progress-1ikjhb231hjik2b31ihb231 303)
(progress-kj1n23123 308)
(progress-k1jnb231kjhnb23 311)
(progress-loj1n23 312)
(progress-2k3jn4234 313)
(progress-2kj3n24kn 314)
(progress-2kjn34 315)
(progress-2klj342n43 316)
(progress-l2jm342m34 317)
(progress-2m342kmj34 318)
(progress-kj1bn23kj1n23 339)
(progress-1l2jnm31lk2m3 340)
(progress-unlocked-oj1n23jn1 345)
(progress-unlocked-k1231kkj 346)
(progress-unlocked-jn12j 347)
(progress-unlocked-m12312 348)
(progress-unlocked-1231h2bn 349)
(progress-unlocked-akjisndaj 350)
(progress-unlocked-iwudnq 351)
(progress-unlocked-n51i51n 352)
(progress-1k2ijn1jkn3 360)
(progress-1kjn2jn31kj3 361)
(progress-1kj2n31j23 367)
(progress-iko1jn231kjhn23 368)
(progress-1klj2n31j2n3 369)
(progress-i1un23i12b341 370)
(progress-2kj3n2kji3n42 377)
(progress-draw-continue-retry-1-TODO 382)
(progress-1klj2n31j23 383)
(progress-j1n23j1kn23kjn12 395)
(progress-2j021j394j 396)
(progress-kj6n324i63n 397)
(progress-3iou4n3i45n3 398)
(progress-39u4n359n45 399)
(progress-iun34593n45 400)
(progress-on2394234n 401)
(progress-l1jkn231jkn23 402)
(progress-kj1n231kjn2 403)
(progress-1lkjn231jnk2 404)
(progress-n12n211n1n 405)
(progress-2iu3bn4289u34n 406)
(progress-oj1n23kj1n23123 409)
(progress-1kjn231kjn23 410)
(progress-1kj2b31k2b3 411)
(progress-j1nb23kj1hbn2 412)
(progress-1kj2bkoij1231 413)
(progress-1nmn1221n21n12n 414)
(progress-busy-loading-TODO 416)
(progress-1jib12o3nj12j3 419)
(progress-1m23n1n23n21 420)
(progress-1jk2n31jkn23n1j 421)
(progress-1n23kjn12nk3j12 422)
(progress-draw-continue-retry-2-TODO 423)
(progress-kj12k3j1n23n 424)
(progress-1kj2bn31kjhnb2 426)
(progress-jk1n23kj1n2 429)
(progress-k1jn23k1h23b 430)
(progress-k1jn23kj1n23 431)
(progress-1kjn231j2 432)
(progress-1kj2n31kjn231 433)
(progress-1kj2n31jkn23 434)
(progress-1kjn2123919 435)
(progress-jn12n3j1n2 436)
(progress-n12jin313 437)
(progress-main-23jn42 531)
(progress-main-63j46j3n4 532)
(progress-main-m123j1m 533)
(progress-main-634jn6 534)
(progress-main-52o352nm 535)
(progress-main-63jk46n3 536)
(progress-main-j324nm3 537)
(progress-main-k1j2n3n1 538)
(progress-main-6mn346mn 539)
(progress-main-63jn463jn 540)
(progress-main-63j46n3j 541)
(progress-main-52kj3n52 542)
(progress-main-52jn35j2 543)
(progress-main-3643m6m 544)
(progress-main-36j46jn 545)
(progress-main-63mn46nm 546)
(progress-main-364jn6n 547)
(progress-ikj123i1khb231 784)
(progress-sound-music-volume 264)
(progress-sound-speech-volume 265)
(progress-on 270)
(progress-off 271)
(progress-move-dpad 272)
(progress-aspect-ratio 280)
(progress-progressive-scan 281)
(progress-video-mode 282)
(progress-root-game-options 283)
(progress-root-graphic-options 284)
(progress-root-sound-options 285)
(progress-aspect-4x3 286)
(progress-aspect-16x9 287)
(progress-refresh-60hz 288)
(progress-refresh-50hz 289)
(progress-demo-exit 291)
(progress-yes 292)
(progress-no 293)
(progress-back 294)
(progress-ok 295)
(progress-next 296)
(progress-previous 297)
(progress-continue-without-saving 298)
(progress-select-file-to-save 299)
(progress-select-file-to-load 300)
(progress-load-game 301)
(progress-save-game 302)
(progress-slot-empty 303)
(progress-title-options 304)
(progress-title-new-game 305)
(progress-title-prompt 306)
(progress-quit 307)
(progress-root-show-map 308)
(progress-root-highscores 310)
(progress-highscores-1st 311)
(progress-highscores-2nd 312)
(progress-highscores-3rd 313)
(progress-highscores-4th 314)
(progress-highscores-5th 315)
(progress-highscores-6th 316)
(progress-highscores-7th 317)
(progress-highscores-8th 318)
(progress-root-secrets 339)
(progress-secrets-unlocked 340)
(progress-main-secrets-hero-mode 345)
(progress-main-secrets-sceneplayer-1 346)
(progress-main-secrets-sceneplayer-2 347)
(progress-main-secrets-sceneplayer-3 348)
(progress-main-secrets-scrapbook 349)
(progress-main-secrets-mega-scrapbook 350)
(progress-main-secrets-scrapbook-3 351)
(progress-main-secrets-levelselect 352)
(progress-secrets-orb-label 360)
(progress-root-missions 361)
(progress-root-restart-mission 366)
(progress-missions-icon-todo 367)
(progress-missions-icon-completed 368)
(progress-missions-none 369)
(progress-unknown-game 370)
(progress-unknown-square-to-reset 377)
(progress-unknown-retry? 382)
(progress-secrets-go-to-title-screen 383)
(progress-graphics-60hz-change-notice 395)
(progress-graphics-progressivescan-change-notice 396)
(progress-graphics-progressivescan-warning-1 397)
(progress-graphics-progressivescan-warning-2 398)
(progress-graphics-60hz-change-complete 399)
(progress-graphics-progressivescan-change-complete 400)
(progress-graphics-mode-revert? 401)
(progress-disc-removed-notice 402)
(progress-disc-removed-prompt 403)
(progress-disc-read-error 404)
(progress-disc-read-error-prompt 405)
(progress-quit-game-confirm 406)
(progress-memcard-not-found 409)
(progress-memcard-unformatted 410)
(progress-memcard-space-requirement 411)
(progress-memcard-insert-card-with-jak2 412)
(progress-memcard-insert-card-with-space-to-save 413)
(progress-memcard-formatting-required-notice 414)
(progress-memcard-loading-data 416)
(progress-memcard-dont-remove 419)
(progress-memcard-overwrite-warning 420)
(progress-memcard-overwrite-confirm 421)
(progress-memcard-format-prompt 422)
(progress-memcard-continue? 423)
(progress-memcard-go-back? 424)
(progress-memcard-error-while-saving 426)
(progress-memcard-check 429)
(progress-memcard-check-and-try-again 430)
(progress-memcard-was-removed 431)
(progress-autosave-disabled 432)
(progress-autosave-reenabling-info 433)
(progress-memcard-no-jak2-found 434)
(progress-memcard-create-jak2-file? 435)
(progress-autosave-explanation 436)
(progress-autosave-dont-remove 437)
(progress-locations-haven-city 531)
(progress-locations-fortress 532)
(progress-locations-landing-pad 533)
(progress-locations-palace-roof 534)
(progress-locations-palace 535)
(progress-locations-weapons-factory 536)
(progress-locations-dead-town 537)
(progress-locations-pumping-station 538)
(progress-locations-sewer 539)
(progress-locations-strip-mine 540)
(progress-locations-mountain-temple 541)
(progress-locations-haven-forest 542)
(progress-locations-drill-platform 543)
(progress-locations-mars-tomb 544)
(progress-locations-dig 545)
(progress-locations-underport 546)
(progress-locations-nest 547)
(progress-unknown-continue 784)
)
;; ---text-id-h:game-text-id
@@ -7281,7 +7303,7 @@
(new (symbol type) _type_ 0)
(initialize (_type_) none 9) ;; some sort of init?
(update (_type_) none 10)
(bigmap-method-11 () none 11)
(bigmap-method-11 (_type_ int int int int) none 11)
(bigmap-method-12 () none 12)
(bigmap-method-13 () none 13)
(bigmap-method-14 (_type_) none 14)
@@ -11771,7 +11793,7 @@
:size-assert #x10
:flag-assert #xa00000010
(:methods
(highscore-info-method-9 () none 9)
(highscore-info-method-9 (_type_ float) int 9)
)
)
@@ -11879,27 +11901,29 @@
)
)
;; +++memcard-h:mc-status-code
(defenum mc-status-code
:type uint32
;; (busy 0)
(busy 0)
(ok 1)
; (bad-handle 2)
; (format-failed 3)
; (internal-error 4)
; (write-error 5)
; (read-error 6)
; (new-game 7)
; (no-memory 8)
; (no-card 9)
; (no-last 10)
; (no-format 11)
; (no-file 12)
; (no-save 13)
; (no-space 14)
; (bad-version 15)
; (no-process 16)
; (no-auto-save 17)
(bad-handle 2)
(format-failed 3)
(internal-error 4)
(write-error 5)
(read-error 6)
(new-game 7)
(no-memory 8)
(no-card 9)
(no-last 10)
(no-format 11)
(no-file 12)
(no-save 13)
(no-space 14)
(bad-version 15)
(no-process 16)
(no-auto-save 17)
)
;; ---memcard-h:mc-status-code
(declare-type entity-perm-array inline-array-class)
(declare-type continue-point basic)
@@ -19702,8 +19726,8 @@
(hud-box-method-11 () none 11)
(hud-box-method-12 () none 12)
(hud-box-method-13 (_type_ dma-buffer float) int 13)
(hud-box-method-14 () none 14)
(hud-box-method-15 () none 15)
(hud-box-method-14 (_type_) none 14)
(hud-box-method-15 (_type_) none 15)
)
)
@@ -20241,7 +20265,7 @@
(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_ object object symbol) none 25) ;; (draw-money-screen (_type_ int) none 25)
(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 (_type_ symbol) symbol 28) ;; (draw-options (_type_ int int float) none 28)
@@ -20256,11 +20280,12 @@
((name game-text-id :offset-assert 4)
(scale float :offset-assert 8)
(unknown function :offset-assert 12)
;; No idea what is going on here....
;; but i believe they are all `menu-options` -- look at `(method 24 progress)`
;; i think it might just be that each menu "page" can have 8 menu-options on it, and maybe printing "box" was just to make inspects nicer?
(box menu-option 1 :offset-assert 16)
(unknown-options menu-option 7 :offset-assert 20)
;; This is gross if im correct
;; this HAS to have a bunch of `menu-option`s -- look at `(method 24 progress)` and `(method 25 progress)`
;; - i think it might just be that each menu "page" can have 8 menu-options on it?
;; but the drawing code also heavily implies it can also be a `hud-box` (finally the `box` name makes sense)
(box hud-box 1 :inline :offset-assert 16)
(options menu-option 8 :offset 16)
)
:method-count-assert 12
:size-assert #x30
@@ -29338,7 +29363,7 @@
(define-extern hide-progress-screen (function none))
(define-extern progress-allowed? (function symbol))
(define-extern menu-update-purchase-secrets (function menu-secret-option none))
(define-extern progress-trans (function none :behavior progress)) ;; TODO - assertion hit when defining behavior
(define-extern progress-trans (function none :behavior progress))
(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))
@@ -29373,40 +29398,43 @@
(define-extern draw-up-down (function font-context none))
(define-extern draw-missions-up-down (function font-context none))
(define-extern draw-scene-up-down (function font-context none))
(define-extern begin-scissor (function vector progress none))
(define-extern end-scissor (function none))
(define-extern begin-scissor-secret (function vector none))
(define-extern end-scissor-secret (function none))
(define-extern begin-scissor-missions (function vector float none))
(define-extern end-scissor-missions (function vector none))
(define-extern begin-scissor-scene (function vector none))
(define-extern end-scissor-scene (function none))
(define-extern begin-scissor-level (function vector none))
(define-extern end-scissor-level (function none))
(define-extern begin-scissor (function hud-box progress none))
(define-extern end-scissor (function hud-box float none))
(define-extern begin-scissor-secret (function hud-box none))
(define-extern end-scissor-secret (function hud-box float none))
(define-extern begin-scissor-missions (function hud-box float none))
(define-extern end-scissor-missions (function hud-box none))
(define-extern begin-scissor-scene (function hud-box none))
(define-extern end-scissor-scene (function hud-box float none))
(define-extern begin-scissor-level (function hud-box none))
(define-extern end-scissor-level (function hud-box none))
(define-extern print-language-name (function game-text-id font-context int symbol none))
(define-extern unlocked-secret-menu? (function symbol)) ;; a bit field of some kind! probably task related - HANG!
(define-extern memcard-unlocked-secrets? "TODO - cleanup bitfields / arg passing" (function symbol symbol))
(define-extern num-unlocked-secret? "@returns The number of secrets currently unlocked" (function int int)) ;; a bit field of some kind! probably task related
(define-extern print-menu-text (function game-text-id float font-context progress none))
(define-extern draw-yes-no (function progress float none))
(define-extern draw-continue-retry (function progress float none))
(define-extern draw-savegame-box (function menu-memcard-slot-option float float float float none))
(define-extern get-level-icon-id-01 "TODO - Icon id enum perhaps?" (function int uint))
(define-extern get-level-icon-id-02 "TODO - Icon id enum perhaps?" (function int uint))
(define-extern get-level-icon-id-03 "TODO - Icon id enum perhaps?" (function int uint))
(define-extern get-level-icon-id-04 "TODO - Icon id enum perhaps?" (function int uint))
(define-extern draw-decoration (function menu-quit-qr-option font-context float int symbol float none))
(define-extern draw-missions-decoration (function menu-missions-option font-context float game-text-id none))
(define-extern draw-sound-options-decoration (function menu-slider-option font-context float symbol game-text-id none))
(define-extern draw-decoration-secrets (function menu-secret-option font-context float game-text-id pointer))
(define-extern draw-decoration-load-save (function menu-memcard-slot-option font-context float int none))
(define-extern unlocked-secret-menu? (function int))
(define-extern memcard-unlocked-secrets? "TODO - returns a bitfield" (function symbol int))
(define-extern num-unlocked-secret?
"TODO - bitfield
@returns The number of secrets currently unlocked"
(function int int))
(define-extern print-menu-text (function string float font-context progress none))
(define-extern draw-yes-no (function progress font-context pointer))
(define-extern draw-continue-retry (function progress font-context pointer))
(define-extern draw-savegame-box (function menu-option float float float float pointer))
(define-extern get-level-icon-id-01 "TODO - Icon id enum perhaps?" (function int texture-id))
(define-extern get-level-icon-id-02 "TODO - Icon id enum perhaps?" (function int texture-id))
(define-extern get-level-icon-id-03 "TODO - Icon id enum perhaps?" (function int texture-id))
(define-extern get-level-icon-id-04 "TODO - Icon id enum perhaps?" (function int texture-id))
(define-extern draw-decoration (function menu-option font-context float int symbol float pointer))
(define-extern draw-missions-decoration (function menu-missions-option font-context float game-text-id pointer))
(define-extern draw-sound-options-decoration (function menu-slider-option font-context float symbol game-text-id pointer))
(define-extern draw-decoration-secrets (function menu-option font-context float game-text-id pointer))
(define-extern draw-decoration-load-save (function menu-option font-context float int pointer))
(define-extern sort-task-node-result (function int none))
(define-extern find-mission-text-at-index (function int game-task-node-info))
(define-extern draw-secret-list (function secret-item-option progress font-context int symbol float none))
(define-extern draw-secret-list (function secret-item-option progress font-context int symbol float pointer))
(define-extern draw-highscore-icon (function menu-highscores-option uint int int float pointer))
(define-extern draw-highscore-cup (function texture-page object int int float float pointer))
(define-extern draw-highscore-cup "First int is an enum" (function texture-page int int int float float pointer))
(define-extern get-highscore-score "TODO - takes and returns an enum?" (function int int))
(define-extern eval-highscore (function print-highscore-obj none))
(define-extern eval-highscore (function print-highscore-obj int))
(define-extern str-print-time (function float string))
(define-extern print-highscore (function print-highscore-obj float))
(define-extern get-highscore-text "TODO - takes an enum?" (function int game-text-id))
@@ -3127,19 +3127,19 @@
"(method 10 menu-missions-option)": [
[
224,
"vector"
"hud-box"
]
],
"(method 10 menu-secret-option)": [
[
64,
"vector"
"hud-box"
]
],
"(method 10 menu-highscores-option)": [
[
16,
"vector"
"hud-box"
]
]
}
}
+149 -82
View File
@@ -13352,173 +13352,215 @@
],
"(method 25 progress)": [
[
19,
"v1",
[
19,
31
],
"a0",
"menu-option"
]
],
"(method 24 progress)": [
[
[
70,
72
],
70,
"a0",
"(array menu-option)"
],
[
71,
"a0",
"menu-on-off-game-vibrations-option"
],
[
[
76,
78
],
76,
"a0",
"(array menu-option)"
],
[
77,
"a0",
"menu-on-off-game-subtitles-option"
],
[
[
82,
84
],
82,
"a0",
"(array menu-option)"
],
[
83,
"a0",
"menu-language-option"
],
[
[
87,
89
],
87,
"a0",
"(array menu-option)"
],
[
88,
"a0",
"menu-language-option"
],
[
[
91,
93
],
91,
"v1",
"(array menu-option)"
],
[
92,
"v1",
"menu-language-option"
],
[
[
95,
97
],
95,
"v1",
"(array menu-option)"
],
[
96,
"v1",
"menu-language-option"
],
[
[
101,
103
],
101,
"a0",
"(array menu-option)"
],
[
102,
"a0",
"menu-on-off-option"
],
[
[
107,
109
],
107,
"a0",
"(array menu-option)"
],
[
108,
"a0",
"menu-on-off-option"
],
[
[
113,
115
],
113,
"a0",
"(array menu-option)"
],
[
114,
"a0",
"menu-on-off-option"
],
[
[
119,
121
],
119,
"a0",
"(array menu-option)"
],
[
120,
"a0",
"menu-on-off-option"
],
[
[
125,
127
],
125,
"a0",
"(array menu-option)"
],
[
126,
"a0",
"menu-slider-option"
],
[
[
131,
133
],
131,
"a0",
"(array menu-option)"
],
[
132,
"a0",
"menu-slider-option"
],
[
[
137,
139
],
137,
"a0",
"(array menu-option)"
],
[
138,
"a0",
"menu-slider-option"
],
[
[
141,
143
],
141,
"v1",
"(array menu-option)"
],
[
142,
"v1",
"menu-missions-option"
]
],
"(method 31 progress)": [
[
[
61,
63
],
61, "v1", "(array menu-option)"
],
[
62,
"v1",
"menu-missions-option"
]
],
"(method 32 progress)": [
[
[
296,
298
],
296,
"v1",
"(array menu-option)"
],
[
297,
"v1",
"menu-select-start-option"
],
[
[
306,
308
],
306,
"v1",
"(array menu-option)"
],
[
307,
"v1",
"menu-select-scene-option"
],
[
[
371,
373
],
371,
"v1",
"(array menu-option)"
],
[
372,
"v1",
"menu-missions-option"
],
[
[
380,
382
],
380,
"v1",
"(array menu-option)"
],
[
381,
"v1",
"menu-highscores-option"
],
[
[
384,
386
],
384,
"v1",
"(array menu-option)"
],
[
385,
"v1",
"menu-highscores-option"
]
@@ -13887,5 +13929,30 @@
"v1",
"dma-packet"
]
],
"(event idle progress)": [
[
[
10,
80
],
"v1",
"mc-status-code"
],
[
[
147,
217
],
"v1",
"mc-status-code"
]
],
"memcard-unlocked-secrets?": [
[
50,
"s5",
"int"
]
]
}
+1 -1
View File
@@ -7,7 +7,7 @@
// if you want to filter to only some object names.
// it will make the decompiler much faster.
"allowed_objects": ["progress"],
"allowed_objects": [],
"banned_objects": ["effect-control", "time-of-day"],
////////////////////////////
+1 -24
View File
@@ -9,29 +9,6 @@
(declare-type continue-point basic)
(declare-type game-save basic)
(defenum mc-status-code
:type uint32
; (busy 0)
(ok 1)
; (bad-handle 2)
; (format-failed 3)
; (internal-error 4)
; (write-error 5)
; (read-error 6)
; (new-game 7)
; (no-memory 8)
; (no-card 9)
; (no-last 10)
; (no-format 11)
; (no-file 12)
; (no-save 13)
; (no-space 14)
; (bad-version 15)
; (no-process 16)
; (no-auto-save 17)
)
(defenum continue-flags
:type uint32
:bitfield #t
@@ -178,7 +155,7 @@
:size-assert #x10
:flag-assert #xa00000010
(:methods
(highscore-info-method-9 () none 9)
(highscore-info-method-9 (_type_ float) int 9)
)
)
+25
View File
@@ -5,6 +5,31 @@
;; name in dgo: memcard-h
;; dgos: ENGINE, GAME
;; +++mc-status-code
(defenum mc-status-code
:type uint32
(busy 0)
(ok 1)
(bad-handle 2)
(format-failed 3)
(internal-error 4)
(write-error 5)
(read-error 6)
(new-game 7)
(no-memory 8)
(no-card 9)
(no-last 10)
(no-format 11)
(no-file 12)
(no-save 13)
(no-space 14)
(bad-version 15)
(no-process 16)
(no-auto-save 17)
)
;; ---mc-status-code
;; DECOMP BEGINS
(deftype mc-handle (int32)
+19 -53
View File
@@ -5,8 +5,13 @@
;; name in dgo: bigmap-h
;; dgos: ENGINE, GAME
;; DECOMP BEGINS
(declare-type bigmap-compressed-layers structure)
(define-extern *bigmap-compressed-layers* bigmap-compressed-layers)
(declare-type bigmap basic)
(define-extern *bigmap* bigmap)
;; DECOMP BEGINS
(deftype bigmap-bit-mask (structure)
((data uint8 6656 :offset-assert 0)
@@ -16,6 +21,7 @@
:flag-assert #x900001a00
)
(deftype bigmap-layer-mask (structure)
((data uint8 26624 :offset-assert 0)
)
@@ -24,6 +30,7 @@
:flag-assert #x900006800
)
(deftype bigmap-image (structure)
((clut-offset uint32 :offset-assert 0)
(image-offset uint32 :offset-assert 4)
@@ -35,6 +42,7 @@
:flag-assert #x900000011
)
(deftype bigmap-info (vector)
((scale float :offset 8)
(inv-scale float :offset 12)
@@ -44,6 +52,7 @@
:flag-assert #x900000010
)
(deftype bigmap-info-array (structure)
((data bigmap-info 21 :inline :offset-assert 0)
)
@@ -52,6 +61,7 @@
:flag-assert #x900000150
)
(deftype bigmap-compressed-layers (structure)
((data uint32 20 :offset-assert 0)
(layer0 uint32 :offset 0)
@@ -79,7 +89,6 @@
:size-assert #x50
:flag-assert #x900000050
)
(define-extern *bigmap-compressed-layers* bigmap-compressed-layers)
(deftype bigmap (basic)
@@ -130,7 +139,7 @@
(new (symbol type) _type_ 0)
(initialize (_type_) none 9)
(update (_type_) none 10)
(bigmap-method-11 () none 11)
(bigmap-method-11 (_type_ int int int int) none 11)
(bigmap-method-12 () none 12)
(bigmap-method-13 () none 13)
(bigmap-method-14 (_type_) none 14)
@@ -150,6 +159,7 @@
)
)
(defmethod new bigmap ((allocation symbol) (type-to-make type))
(let ((gp-0 (object-new allocation type-to-make (the-as int (-> type-to-make size)))))
(set! (-> gp-0 bigmap-image)
@@ -199,57 +209,18 @@
(set! (-> gp-0 sprite-tmpl dma-vif dma) (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)))
(set! (-> gp-0 sprite-tmpl dma-vif vif0) (new 'static 'vif-tag))
(set! (-> gp-0 sprite-tmpl dma-vif vif1) (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1))
(set! (-> gp-0 sprite-tmpl gif0)
(the uint64 (new 'static 'gif-tag64
:nloop #x1
:eop #x1
:pre #x1
:prim (new 'static 'gs-prim :prim (gs-prim-type sprite) :tme #x1 :abe #x1 :fst #x1)
:nreg #x5
)
)
)
(set! (-> gp-0 sprite-tmpl gif1)
(the uint64 (new 'static 'gif-tag-regs
:regs0 (gif-reg-id rgbaq)
:regs1 (gif-reg-id uv)
:regs2 (gif-reg-id xyz2)
:regs3 (gif-reg-id uv)
:regs4 (gif-reg-id xyz2)
)
)
)
(set! (-> gp-0 sprite-tmpl gif0) (the-as uint #x50ab400000008001))
(set! (-> gp-0 sprite-tmpl gif1) (the-as uint #x53531))
(set! (-> gp-0 draw-tmpl dma-vif dma) (new 'static 'dma-tag :qwc #xa :id (dma-tag-id cnt)))
(set! (-> gp-0 draw-tmpl dma-vif vif0) (new 'static 'vif-tag))
(set! (-> gp-0 draw-tmpl dma-vif vif1) (new 'static 'vif-tag :imm #xa :cmd (vif-cmd direct) :msk #x1))
(set! (-> gp-0 draw-tmpl gif0)
(the uint64 (new 'static 'gif-tag64
:nloop #x1
:eop #x1
:pre #x1
:prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :tme #x1 :abe #x1 :fst #x1)
:nreg #x9
)
)
)
(set! (-> gp-0 draw-tmpl gif1) (the uint64 (new 'static 'gif-tag-regs
:regs0 (gif-reg-id rgbaq)
:regs1 (gif-reg-id uv)
:regs2 (gif-reg-id xyz2)
:regs3 (gif-reg-id uv)
:regs4 (gif-reg-id xyz2)
:regs5 (gif-reg-id uv)
:regs6 (gif-reg-id xyz2)
:regs7 (gif-reg-id uv)
:regs8 (gif-reg-id xyz2)
)
)
)
(set! (-> gp-0 draw-tmpl gif0) (the-as uint #x90aa400000008001))
(set! (-> gp-0 draw-tmpl gif1) (the-as uint #x535353531))
(set! (-> gp-0 adgif-tmpl dma-vif dma) (new 'static 'dma-tag :qwc #x6 :id (dma-tag-id cnt)))
(set! (-> gp-0 adgif-tmpl dma-vif vif0) (new 'static 'vif-tag))
(set! (-> gp-0 adgif-tmpl dma-vif vif1) (new 'static 'vif-tag :imm #x6 :cmd (vif-cmd direct) :msk #x1))
(set! (-> gp-0 adgif-tmpl gif0) (the uint64 (new 'static 'gif-tag64 :nloop #x5 :eop #x1 :nreg #x1)))
(set! (-> gp-0 adgif-tmpl gif1) (the uint64 (new 'static 'gif-tag-regs :regs0 (gif-reg-id a+d))))
(set! (-> gp-0 adgif-tmpl gif0) (the-as uint #x1000000000008005))
(set! (-> gp-0 adgif-tmpl gif1) (the-as uint 14))
(set-vector! (-> gp-0 offset) 0.0 0.0 0.0 0.0)
(set-vector! (-> gp-0 scroll) 0.0 0.0 0.0 0.0)
(set-vector! (-> gp-0 pos) 0 0 0 0)
@@ -292,8 +263,3 @@
)
)
)
(define-extern *bigmap* bigmap)
+55 -2
View File
@@ -29,6 +29,7 @@
:flag-assert #x900000030
)
(deftype hud-sprite (structure)
((pos vector4w :inline :offset-assert 0)
(color vector4w :inline :offset-assert 16)
@@ -47,6 +48,7 @@
)
)
(deftype hud-box (structure)
((min vector2 :inline :offset-assert 0)
(max vector2 :inline :offset-assert 8)
@@ -61,11 +63,12 @@
(hud-box-method-11 () none 11)
(hud-box-method-12 () none 12)
(hud-box-method-13 (_type_ dma-buffer float) int 13)
(hud-box-method-14 () none 14)
(hud-box-method-15 () none 15)
(hud-box-method-14 (_type_) none 14)
(hud-box-method-15 (_type_) none 15)
)
)
(deftype hud-icon (basic)
((icon (pointer manipy) :offset-assert 4)
(pos vector4w :inline :offset-assert 16)
@@ -77,6 +80,7 @@
:flag-assert #x900000028
)
(deftype hud-value (basic)
((current int32 :offset-assert 4)
(target int32 :offset-assert 8)
@@ -89,6 +93,7 @@
:flag-assert #x900000010
)
(deftype hud (process)
((trigger-time time-frame :offset-assert 128)
(last-hide-time time-frame :offset-assert 136)
@@ -121,6 +126,7 @@
)
)
(deftype hud-ashelin (hud)
()
:heap-base #xb30
@@ -129,6 +135,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-cargo (hud)
()
:heap-base #xb30
@@ -137,6 +144,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-citizen (hud)
()
:heap-base #xb30
@@ -145,6 +153,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-cpanel (hud)
()
:heap-base #xb30
@@ -153,6 +162,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-dig-clasp (hud)
()
:heap-base #xb30
@@ -161,6 +171,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-gun (hud)
()
:heap-base #xb30
@@ -169,6 +180,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-health (hud)
()
:heap-base #xb30
@@ -177,6 +189,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-dark-eco-symbol (hud)
()
:heap-base #xb30
@@ -185,6 +198,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-helldog (hud)
()
:heap-base #xb30
@@ -193,6 +207,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-lurker (hud)
()
:heap-base #xb30
@@ -201,6 +216,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-map (hud)
()
:heap-base #xb30
@@ -209,6 +225,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-moneybag (hud)
()
:heap-base #xb30
@@ -217,6 +234,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-pegasus (hud)
()
:heap-base #xb30
@@ -225,6 +243,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-plasmite (hud)
()
:heap-base #xb30
@@ -233,6 +252,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-dig-button (hud)
()
:heap-base #xb30
@@ -241,6 +261,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-predator (hud)
()
:heap-base #xb30
@@ -249,6 +270,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-heatmeter (hud)
()
:heap-base #xb30
@@ -257,6 +279,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-progress (hud)
()
:heap-base #xb30
@@ -265,6 +288,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-rocketsensor (hud)
()
:heap-base #xb30
@@ -273,6 +297,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-ruffians (hud)
()
:heap-base #xb30
@@ -281,6 +306,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-score (hud)
()
:heap-base #xb30
@@ -289,6 +315,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-sig (hud)
()
:heap-base #xb30
@@ -297,6 +324,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-skill (hud)
()
:heap-base #xb30
@@ -305,6 +333,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-skullgem (hud)
()
:heap-base #xb30
@@ -313,6 +342,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-timer (hud)
()
:heap-base #xb30
@@ -321,6 +351,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-turret (hud)
()
:heap-base #xb30
@@ -329,6 +360,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-squid (hud)
()
:heap-base #xb30
@@ -337,6 +369,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-gunturret (hud)
()
:heap-base #xb30
@@ -345,6 +378,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-gruntegg (hud)
()
:heap-base #xb30
@@ -353,6 +387,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-crimsonhover (hud)
()
:heap-base #xb30
@@ -361,6 +396,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-metalkor (hud)
()
:heap-base #xb30
@@ -369,6 +405,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-big-score (hud)
()
:heap-base #xb30
@@ -377,6 +414,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-goal (hud)
()
:heap-base #xb30
@@ -385,6 +423,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-miss (hud)
()
:heap-base #xb30
@@ -393,6 +432,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-race-timer (hud)
()
:heap-base #xb30
@@ -401,6 +441,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-race-lap-counter (hud)
()
:heap-base #xb30
@@ -409,6 +450,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-race-turbo-counter (hud)
()
:heap-base #xb30
@@ -417,6 +459,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-race-position (hud)
()
:heap-base #xb30
@@ -425,6 +468,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-race-map (hud)
()
:heap-base #xb30
@@ -433,6 +477,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-samos-old (hud)
()
:heap-base #xb30
@@ -441,6 +486,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-samos-young (hud)
()
:heap-base #xb30
@@ -449,6 +495,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-lurker-button (hud)
()
:heap-base #xb30
@@ -457,6 +504,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-widow (hud)
()
:heap-base #xb30
@@ -465,6 +513,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-race-final-stats (hud)
()
:heap-base #xb30
@@ -473,6 +522,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-mech-air-tank (hud)
()
:heap-base #xb30
@@ -481,6 +531,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-homing-beacon (hud)
()
:heap-base #xb30
@@ -489,6 +540,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-dark-eco-pickup (hud)
()
:heap-base #xb30
@@ -497,6 +549,7 @@
:flag-assert #x1b0b300ba4
)
(deftype hud-green-eco-pickup (hud)
()
:heap-base #xb30
File diff suppressed because it is too large Load Diff
@@ -15,7 +15,7 @@
(define-extern *progress-process* (pointer progress))
(define-extern activate-progress (function process symbol none))
(define-extern memcard-unlocked-secrets? (function symbol symbol))
(define-extern memcard-unlocked-secrets? "TODO - returns a bitfield" (function symbol int))
(define-extern progress-selected (function int int :behavior progress))
(define-extern get-num-highscores (function int))
(define-extern get-next-highscore (function int int))
@@ -60,7 +60,7 @@
(go-away () _type_ :state 22)
(gone () _type_ :state 23)
(init-defaults (_type_) connection 24)
(progress-method-25 (_type_ object object symbol) none 25)
(progress-method-25 (_type_) none 25)
(progress-method-26 (_type_) object 26)
(can-go-back? (_type_) symbol 27)
(progress-method-28 (_type_ symbol) symbol 28)
@@ -73,11 +73,11 @@
(deftype menu-option (basic)
((name game-text-id :offset-assert 4)
(scale float :offset-assert 8)
(unknown function :offset-assert 12)
(box menu-option 1 :offset-assert 16)
(unknown-options menu-option 7 :offset-assert 20)
((name game-text-id :offset-assert 4)
(scale float :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
+279 -135
View File
@@ -7,8 +7,6 @@
(set! *progress-process* #f)
;; og:ignore-form:progress-trans
;; DECOMP BEGINS
(deftype progress-global-state (basic)
@@ -132,96 +130,72 @@
(set! (-> obj sliding-height) 0.0)
(set! (-> obj sliding-off) 1.0)
(set! (-> obj scanlines-alpha) 0.0)
(set! (-> (the-as
menu-on-off-game-vibrations-option
(-> (the-as menu-on-off-game-vibrations-option (-> *game-options* options 0)) box 0)
)
(set! (-> (the-as menu-on-off-game-vibrations-option (-> (the-as (array menu-option) (-> *game-options* options 0)) 0))
value-to-modify
)
(&-> *setting-control* user-default vibration)
)
(set! (-> (the-as
menu-on-off-game-subtitles-option
(-> (the-as menu-on-off-game-subtitles-option (-> *game-options* options 0)) unknown-options 0)
)
(set! (-> (the-as menu-on-off-game-subtitles-option (-> (the-as (array menu-option) (-> *game-options* options 0)) 1))
value-to-modify
)
(&-> *setting-control* user-default subtitle)
)
(set! (-> (the-as
menu-language-option
(-> (the-as menu-language-option (-> *game-options* options 0)) unknown-options 1)
)
(set! (-> (the-as menu-language-option (-> (the-as (array menu-option) (-> *game-options* options 0)) 2))
language-selection
)
(-> *setting-control* user-current language)
)
(set! (-> (the-as
menu-language-option
(-> (the-as menu-language-option (-> *game-options* options 0)) unknown-options 1)
)
(set! (-> (the-as menu-language-option (-> (the-as (array menu-option) (-> *game-options* options 0)) 2))
language-direction
)
#t
)
(set! (-> (the-as
menu-language-option
(-> (the-as menu-language-option (-> *game-options* options 0)) unknown-options 1)
)
(set! (-> (the-as menu-language-option (-> (the-as (array menu-option) (-> *game-options* options 0)) 2))
language-transition
)
#f
)
(set! (-> (the-as
menu-language-option
(-> (the-as menu-language-option (-> *game-options* options 0)) unknown-options 1)
)
(set! (-> (the-as menu-language-option (-> (the-as (array menu-option) (-> *game-options* options 0)) 2))
language-x-offset
)
0
)
(set! (-> (the-as menu-on-off-option (-> (the-as menu-on-off-option (-> *game-options-japan* options 0)) box 0))
(set! (-> (the-as menu-on-off-option (-> (the-as (array menu-option) (-> *game-options-japan* options 0)) 0))
value-to-modify
)
(&-> *setting-control* user-default vibration)
)
(set! (-> (the-as menu-on-off-option (-> (the-as menu-on-off-option (-> *game-options-demo* options 0)) box 0))
(set! (-> (the-as menu-on-off-option (-> (the-as (array menu-option) (-> *game-options-demo* options 0)) 0))
value-to-modify
)
(&-> *setting-control* user-default vibration)
)
(set! (-> (the-as
menu-on-off-option
(-> (the-as menu-on-off-option (-> *graphic-options* options 0)) unknown-options 1)
)
(set! (-> (the-as menu-on-off-option (-> (the-as (array menu-option) (-> *graphic-options* options 0)) 2))
value-to-modify
)
(&-> *setting-control* user-default use-progressive-scan)
)
(set! (-> (the-as
menu-on-off-option
(-> (the-as menu-on-off-option (-> *graphic-title-options-pal* options 0)) unknown-options 1)
)
(set! (-> (the-as menu-on-off-option (-> (the-as (array menu-option) (-> *graphic-title-options-pal* options 0)) 2))
value-to-modify
)
(&-> *setting-control* user-default use-progressive-scan)
)
(set! (-> (the-as menu-slider-option (-> (the-as menu-slider-option (-> *sound-options* options 0)) box 0))
(set! (-> (the-as menu-slider-option (-> (the-as (array menu-option) (-> *sound-options* options 0)) 0))
value-to-modify
)
(&-> *setting-control* user-default sfx-volume)
)
(set! (-> (the-as menu-slider-option (-> (the-as menu-slider-option (-> *sound-options* options 0)) unknown-options 0))
(set! (-> (the-as menu-slider-option (-> (the-as (array menu-option) (-> *sound-options* options 0)) 1))
value-to-modify
)
(&-> *setting-control* user-default music-volume)
)
(set! (-> (the-as menu-slider-option (-> (the-as menu-slider-option (-> *sound-options* options 0)) unknown-options 1))
(set! (-> (the-as menu-slider-option (-> (the-as (array menu-option) (-> *sound-options* options 0)) 2))
value-to-modify
)
(&-> *setting-control* user-default dialog-volume)
)
(set! (-> (the-as menu-missions-option (-> (the-as menu-missions-option (-> *missions-options* options 0)) box 0))
(set! (-> (the-as menu-missions-option (-> (the-as (array menu-option) (-> *missions-options* options 0)) 0))
task-line-index
)
0
@@ -781,7 +755,7 @@
(('loading)
(set! (-> *progress-state* last-slot-saved) (-> *progress-state* which-slot))
(auto-save-command 'restore 0 (-> *progress-state* which-slot) obj #f)
(set! (-> (the-as menu-missions-option (-> (the-as menu-missions-option (-> *missions-options* options 0)) box 0))
(set! (-> (the-as menu-missions-option (-> (the-as (array menu-option) (-> *missions-options* options 0)) 0))
task-line-index
)
0
@@ -933,10 +907,7 @@
)
(('select-start 'select-pre-start 'select-kiosk-start)
(set! (-> obj current-options) *select-start-options*)
(set! (-> (the-as
menu-select-start-option
(-> (the-as menu-select-start-option (-> *select-start-options* options 0)) box 0)
)
(set! (-> (the-as menu-select-start-option (-> (the-as (array menu-option) (-> *select-start-options* options 0)) 0))
task-index
)
0
@@ -945,10 +916,7 @@
)
(('select-scene)
(set! (-> obj current-options) *select-scene-options*)
(set! (-> (the-as
menu-select-scene-option
(-> (the-as menu-select-scene-option (-> *select-scene-options* options 0)) box 0)
)
(set! (-> (the-as menu-select-scene-option (-> (the-as (array menu-option) (-> *select-scene-options* options 0)) 0))
task-index
)
0
@@ -982,7 +950,7 @@
)
(('missions)
(set! (-> *progress-state* missions-total-spacing) 0.0)
(set! (-> (the-as menu-missions-option (-> (the-as menu-missions-option (-> *missions-options* options 0)) box 0))
(set! (-> (the-as menu-missions-option (-> (the-as (array menu-option) (-> *missions-options* options 0)) 0))
task-line-index
)
0
@@ -990,12 +958,12 @@
(set! (-> obj current-options) *missions-options*)
)
(('highscores)
(set! (-> (the-as menu-highscores-option (-> (the-as menu-highscores-option (-> *highscores-options* options 0)) box 0))
(set! (-> (the-as menu-highscores-option (-> (the-as (array menu-option) (-> *highscores-options* options 0)) 0))
page-index
)
0
)
(set! (-> (the-as menu-highscores-option (-> (the-as menu-highscores-option (-> *highscores-options* options 0)) box 0))
(set! (-> (the-as menu-highscores-option (-> (the-as (array menu-option) (-> *highscores-options* options 0)) 0))
prev-page-index
)
0
@@ -1020,13 +988,13 @@
0
)
(defmethod progress-method-25 progress ((obj progress) (arg0 object) (arg1 object) (arg2 symbol))
(defmethod progress-method-25 progress ((obj progress))
(mc-get-slot-info 0 *progress-save-info*)
(when (-> obj current-options)
(let ((s5-0 (-> obj current-options options 0)))
(when (and s5-0 (= (-> obj menu-transition) 0.0))
(respond-progress
(-> (the-as menu-option (+ (* (-> obj option-index) 4) (the-as int s5-0))) box 0)
(the-as menu-option (-> s5-0 options (-> obj option-index)))
obj
(and (= (-> obj menu-transition) 0.0) (-> obj selected-option))
)
@@ -1115,7 +1083,188 @@
(none)
)
;; ERROR: failed type prop at 0: Could not figure out load: (set! v1 (l.wu (+ s6 228)))
(defbehavior progress-trans progress ()
(cond
((and (= (-> self next) 'none)
(or (= (-> *progress-state* starting-state) 'main) (= (-> self anim-frame) 1.0))
)
(set! (-> self menu-transition)
(seek-ease
(-> self menu-transition)
0.0
(* 0.1 (-> self clock time-adjust-ratio))
0.4
(* 0.01 (-> self clock time-adjust-ratio))
)
)
)
(else
(seek! (-> self menu-transition) 1.0 (* 0.1 (-> self clock time-adjust-ratio)))
(when (and (= (-> self menu-transition) 1.0)
(or (and (nonzero? (-> self state-pos)) (= (-> self anim-frame) 1.0))
(or (and (zero? (-> self state-pos)) (= (-> self anim-frame) 0.0))
(and (!= (-> *progress-state* starting-state) 'main) (!= (-> self next) 'none))
)
)
)
(set! (-> self current) (-> self next))
(set! (-> self next) 'none)
(set! (-> self option-index) (-> self next-option-index))
(set! (-> self want-option-index) 0)
(set-menu-options self (-> self current))
(set! (-> self scanlines-alpha) 0.0)
)
)
)
(set! (-> self main-menu)
(and (zero? (-> self state-pos)) (and (= (-> self menu-transition) 0.0)
(= (-> self next) 'none)
(or (= (-> self state-stack 0) 'main) (= (-> self current) 'main))
)
)
)
(when *cheat-mode*
(when (zero? (-> self state-pos))
(cond
((and (cpad-hold? 0 l2) (cpad-hold? 0 r1))
(if (= (-> self current-options) *main-options*)
(set! (-> self current-options) *main-options-debug*)
)
)
((= (-> self current-options) *main-options-debug*)
(set! (-> self current-options) *main-options*)
)
)
)
)
(if (= (-> self ring-angle) (-> self ring-want-angle))
(progress-method-25 self)
)
(let ((f30-0 (* 0.005 (-> self clock time-adjust-ratio))))
(cond
((= (-> self menu-transition) 1.0)
(if (and (zero? (-> self state-pos)) (= (-> *progress-state* starting-state) 'main))
(seek! (-> self anim-frame) 0.0 (* 0.02 (-> self clock time-adjust-ratio)))
(seek! (-> self anim-frame) 1.0 (* 0.02 (-> self clock time-adjust-ratio)))
)
(let ((f0-27 (if (and (zero? (-> self state-pos)) (!= (-> *progress-state* starting-state) 'title))
0.0
0.2
)
)
)
(when (= (-> self next) 'bigmap)
(set! f0-27 0.4)
(set! f30-0 (* 0.008 (-> self clock time-adjust-ratio)))
)
(seek! (-> self pos-transition) f0-27 f30-0)
)
)
((zero? (-> self state-pos))
(if (= (-> self current) 'bigmap)
(set! f30-0 (* 0.05 (-> self clock time-adjust-ratio)))
)
(if (!= (-> *progress-state* starting-state) 'title)
(seek! (-> self pos-transition) 0.0 f30-0)
)
)
)
)
(if (!= (-> *progress-state* starting-state) 'main)
(set! (-> self pos-transition) 0.2)
)
(set-ring-position self)
(when (= (-> self ring-angle) (-> self ring-want-angle))
(cond
((< (-> self want-option-index) 0)
(cond
((and (= *cheat-mode* #f) (= *kernel-boot-message* 'kiosk))
(if (> (-> self option-index) 0)
(+! (-> self option-index) -1)
)
)
(else
(set! (-> self option-index)
(min-max-wrap-around (+ (-> self option-index) -1) 0 (+ (length (-> self current-options options 0)) -1))
)
)
)
(set! (-> self graphic-index) (-> self option-index))
(+! (-> self want-option-index) 1)
)
((> (-> self want-option-index) 0)
(cond
((and (= *cheat-mode* #f) (= *kernel-boot-message* 'kiosk))
(if (< (-> self option-index) (+ (length (-> self current-options options 0)) -1))
(+! (-> self option-index) 1)
)
)
(else
(set! (-> self option-index)
(min-max-wrap-around (+ (-> self option-index) 1) 0 (+ (length (-> self current-options options 0)) -1))
)
)
)
(+! (-> self want-option-index) -1)
)
)
)
(if (= (-> self anim-frame) 0.0)
(set! (-> self swing) (seek-ease
(-> self swing)
4.0
(* 0.05 (-> self clock time-adjust-ratio))
0.5
(* 0.005 (-> self clock time-adjust-ratio))
)
)
(set! (-> self swing) (seek-ease
(-> self swing)
0.0
(* 0.07 (-> self clock time-adjust-ratio))
0.5
(* 0.007 (-> self clock time-adjust-ratio))
)
)
)
(when (-> self main-menu)
(set! (-> self ring-want-angle) (ceil (* 182.04445 (* 36.0 (the float (-> self option-index))))))
(if (and (= (-> self ring-want-angle) 0.0) (< 32768.0 (-> self ring-angle)))
(set! (-> self ring-want-angle) 65536.0)
)
(let ((f0-54 (- (-> self ring-want-angle) (-> self ring-angle))))
(when (< 32768.0 (fabs f0-54))
(if (< 0.0 f0-54)
(set! (-> self ring-angle) (+ 65536.0 (-> self ring-angle)))
(set! (-> self ring-angle) (+ -65536.0 (-> self ring-angle)))
)
)
)
(seek! (-> self ring-angle) (-> self ring-want-angle) (* 455.1111 (-> self clock time-adjust-ratio)))
)
(let ((gp-4 (quaternion-vector-angle!
(new 'stack-no-clear 'quaternion)
*x-vector*
(* 182.04445 (* (-> self swing) (sin (the float (* 40 (-> self clock frame-counter))))))
)
)
(s5-4 (quaternion-vector-angle!
(new 'stack-no-clear 'quaternion)
*y-vector*
(* 182.04445 (* (-> self swing) (sin (the float (* 0 (-> self clock frame-counter))))))
)
)
)
(quaternion*! (-> self root quat) (-> self init-quat) gp-4)
(quaternion*! (-> self root quat) (-> self root quat) s5-4)
)
(quaternion-normalize! (-> self root quat))
(if (= (-> self ring-angle) (-> self ring-want-angle))
(set! (-> self graphic-index) (-> self option-index))
)
0
(none)
)
(defun begin-scan ((arg0 hud-box) (arg1 progress))
(cond
@@ -1241,7 +1390,7 @@
)
)
(menu-option-method-10
(-> gp-0 box s4-1)
(-> gp-0 options s4-1)
self
sv-144
s4-1
@@ -1268,13 +1417,7 @@
(when (and (< 0.8 (-> self anim-frame)) (or (= (-> self current) 'bigmap) (= (-> self next) 'bigmap)))
(cond
((>= (-> self pos-transition) 0.38)
(let ((t9-8 (method-of-object *bigmap* bigmap-method-11)))
1792
1840
2304
2256
(t9-8)
)
(bigmap-method-11 *bigmap* 1792 1840 2304 2256)
)
(else
(let ((s4-2 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 21)))
@@ -1284,15 +1427,15 @@
(set! (-> gp-1 quad) (the-as uint128 0))
(let ((s5-1 (new 'stack-no-clear 'vector4w)))
(set! (-> s5-1 quad) (the-as uint128 0))
(when (and (transform-point-qword! gp-1 s4-2) (transform-point-qword! s5-1 s3-1))
(let ((t9-13 (method-of-object *bigmap* bigmap-method-11)))
(/ (the-as int (-> s5-1 x)) 16)
(/ (the-as int (-> s5-1 y)) 16)
(/ (the-as int (-> gp-1 x)) 16)
(/ (the-as int (-> gp-1 y)) 16)
(t9-13)
(if (and (transform-point-qword! gp-1 s4-2) (transform-point-qword! s5-1 s3-1))
(bigmap-method-11
*bigmap*
(the-as int (/ (the-as int (-> s5-1 x)) 16))
(the-as int (/ (the-as int (-> s5-1 y)) 16))
(the-as int (/ (the-as int (-> gp-1 x)) 16))
(the-as int (/ (the-as int (-> gp-1 y)) 16))
)
)
)
)
)
)
@@ -1359,64 +1502,64 @@
(let ((t9-0 format)
(a0-3 #t)
(a1-1 "DONE NOTIFY: ~S ~S~%")
(v1-3 (-> arg3 param 1))
(v1-3 (the-as mc-status-code (-> arg3 param 1)))
)
(t9-0
a0-3
a1-1
(cond
((= v1-3 15)
((= v1-3 (mc-status-code bad-version))
"bad-version"
)
((= v1-3 13)
((= v1-3 (mc-status-code no-save))
"no-save"
)
((= v1-3 10)
((= v1-3 (mc-status-code no-last))
"no-last"
)
((= v1-3 14)
((= v1-3 (mc-status-code no-space))
"no-space"
)
((= v1-3 4)
((= v1-3 (mc-status-code internal-error))
"internal-error"
)
((= v1-3 8)
((= v1-3 (mc-status-code no-memory))
"no-memory"
)
((= v1-3 2)
((= v1-3 (mc-status-code bad-handle))
"bad-handle"
)
((zero? v1-3)
((= v1-3 (mc-status-code busy))
"busy"
)
((= v1-3 5)
((= v1-3 (mc-status-code write-error))
"write-error"
)
((= v1-3 6)
((= v1-3 (mc-status-code read-error))
"read-error"
)
((= v1-3 9)
((= v1-3 (mc-status-code no-card))
"no-card"
)
((= v1-3 11)
((= v1-3 (mc-status-code no-format))
"no-format"
)
((= v1-3 1)
((= v1-3 (mc-status-code ok))
"ok"
)
((= v1-3 16)
((= v1-3 (mc-status-code no-process))
"no-process"
)
((= v1-3 17)
((= v1-3 (mc-status-code no-auto-save))
"no-auto-save"
)
((= v1-3 12)
((= v1-3 (mc-status-code no-file))
"no-file"
)
((= v1-3 3)
((= v1-3 (mc-status-code format-failed))
"format-failed"
)
((= v1-3 7)
((= v1-3 (mc-status-code new-game))
"new-game"
)
(else
@@ -1458,64 +1601,64 @@
(let ((t9-7 format)
(a0-18 #t)
(a1-5 "ERROR NOTIFY: ~S ~S ~S~%")
(v1-19 (-> arg3 param 1))
(v1-19 (the-as mc-status-code (-> arg3 param 1)))
)
(t9-7
a0-18
a1-5
(cond
((= v1-19 15)
((= v1-19 (mc-status-code bad-version))
"bad-version"
)
((= v1-19 13)
((= v1-19 (mc-status-code no-save))
"no-save"
)
((= v1-19 10)
((= v1-19 (mc-status-code no-last))
"no-last"
)
((= v1-19 14)
((= v1-19 (mc-status-code no-space))
"no-space"
)
((= v1-19 4)
((= v1-19 (mc-status-code internal-error))
"internal-error"
)
((= v1-19 8)
((= v1-19 (mc-status-code no-memory))
"no-memory"
)
((= v1-19 2)
((= v1-19 (mc-status-code bad-handle))
"bad-handle"
)
((zero? v1-19)
((= v1-19 (mc-status-code busy))
"busy"
)
((= v1-19 5)
((= v1-19 (mc-status-code write-error))
"write-error"
)
((= v1-19 6)
((= v1-19 (mc-status-code read-error))
"read-error"
)
((= v1-19 9)
((= v1-19 (mc-status-code no-card))
"no-card"
)
((= v1-19 11)
((= v1-19 (mc-status-code no-format))
"no-format"
)
((= v1-19 1)
((= v1-19 (mc-status-code ok))
"ok"
)
((= v1-19 16)
((= v1-19 (mc-status-code no-process))
"no-process"
)
((= v1-19 17)
((= v1-19 (mc-status-code no-auto-save))
"no-auto-save"
)
((= v1-19 12)
((= v1-19 (mc-status-code no-file))
"no-file"
)
((= v1-19 3)
((= v1-19 (mc-status-code format-failed))
"format-failed"
)
((= v1-19 7)
((= v1-19 (mc-status-code new-game))
"new-game"
)
(else
@@ -1557,9 +1700,7 @@
(set! (-> self menu-transition) 1.0)
(none)
)
:trans (the-as (function none :behavior progress)
;; TODO call to progress-trans!
0)
:trans progress-trans
:code (behavior ()
(until #f
(ja :num-func num-func-identity :frame-num (* 12.0 (-> self anim-frame)))
@@ -1705,13 +1846,13 @@
)
((logtest? (pad-buttons pb24) (-> *cpad-list* cpads 0 button0-rel 0))
(cond
((and (-> v1-1 0) (= (-> obj name) 366))
((and (-> v1-1 0) (= (-> obj name) (game-text-id progress-root-restart-mission)))
(logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons pb24))
(logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons pb24))
(restart-mission)
(set-next-state arg0 'go-away 0)
)
((and (-> v1-1 0) (= (-> obj name) 307))
((and (-> v1-1 0) (= (-> obj name) (game-text-id progress-quit)))
(logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons pb24))
(logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons pb24))
(initialize! *game-info* 'game (the-as game-save #f) "title-restart")
@@ -1786,7 +1927,7 @@
(when s4-0
(let ((f30-0 1.0))
(case (-> obj name)
((264 265)
(((game-text-id progress-sound-music-volume) (game-text-id progress-sound-speech-volume))
(set! f30-0 (-> (the-as (pointer float) gp-0)))
)
)
@@ -1859,7 +2000,7 @@
(logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons triangle))
(when (and (= (-> arg0 ring-angle) (-> arg0 ring-want-angle)) #t)
(cond
((= (-> obj name) 291)
((= (-> obj name) (game-text-id progress-demo-exit))
(case *kernel-boot-message*
(('demo-shared)
(set! *master-exit* 'force)
@@ -1871,12 +2012,15 @@
)
)
)
((or (= (-> obj name) 346) (= (-> obj name) 347) (= (-> obj name) 348))
((or (= (-> obj name) (game-text-id progress-main-secrets-sceneplayer-1))
(= (-> obj name) (game-text-id progress-main-secrets-sceneplayer-2))
(= (-> obj name) (game-text-id progress-main-secrets-sceneplayer-3))
)
(case (-> obj name)
((347)
(((game-text-id progress-main-secrets-sceneplayer-2))
(set! (-> *progress-state* scene-player-act) 2)
)
((348)
(((game-text-id progress-main-secrets-sceneplayer-3))
(set! (-> *progress-state* scene-player-act) 3)
)
(else
@@ -1954,12 +2098,12 @@
(set! (-> arg0 state-pos) 0)
(set-next-state arg0 'secrets-insufficient-space 0)
)
(when (= (-> obj name) 298)
(when (= (-> obj name) (game-text-id progress-continue-without-saving))
(let ((a1-3 (progress-method-28 arg0 (-> arg0 current))))
(set-next-state arg0 a1-3 0)
)
)
(when (and (= (-> obj name) 339)
(when (and (= (-> obj name) (game-text-id progress-root-secrets))
(= *title* (-> arg0 current-options))
(not (memcard-unlocked-secrets? #f))
(= (-> arg0 option-index) 3)
@@ -1971,7 +2115,7 @@
(logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons pb24))
(logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons pb24))
(cond
((= (-> obj name) 291)
((= (-> obj name) (game-text-id progress-demo-exit))
(case *kernel-boot-message*
(('demo-shared)
(set! *master-exit* 'force)
@@ -1983,7 +2127,7 @@
)
)
)
((= (-> obj name) 298)
((= (-> obj name) (game-text-id progress-continue-without-saving))
(progress-intro-start (logtest? (-> *game-info* purchase-secrets) #x8000))
)
((= (-> obj next-state) 'back)
@@ -2014,7 +2158,7 @@
(logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons pb24))
(logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons pb24))
(cond
((and (= (-> obj name) 349) (logtest? (the-as int s4-0) 512))
((and (= (-> obj name) (game-text-id progress-main-secrets-scrapbook)) (logtest? s4-0 512))
(sound-play "generic-beep")
(cond
((send-event (handle->process (-> *game-info* controller 0)) 'scrap-book 1)
@@ -2028,7 +2172,7 @@
)
)
)
((and (= (-> obj name) 350) (logtest? (the-as int s4-0) 1024))
((and (= (-> obj name) (game-text-id progress-main-secrets-mega-scrapbook)) (logtest? s4-0 1024))
(sound-play "generic-beep")
(cond
((send-event (handle->process (-> *game-info* controller 0)) 'scrap-book 2)
@@ -2042,7 +2186,7 @@
)
)
)
((and (= (-> obj name) 351) (logtest? (the-as int s4-0) 2048))
((and (= (-> obj name) (game-text-id progress-main-secrets-scrapbook-3)) (logtest? s4-0 2048))
(sound-play "generic-beep")
(cond
((send-event (handle->process (-> *game-info* controller 0)) 'scrap-book 3)
@@ -2056,30 +2200,30 @@
)
)
)
((and (= (-> obj name) 346) (logtest? (the-as int s4-0) 32))
((and (= (-> obj name) (game-text-id progress-main-secrets-sceneplayer-1)) (logtest? s4-0 32))
(set! (-> *progress-state* scene-player-act) 1)
(sound-play "generic-beep")
(progress-method-29 arg0)
(set-next-state arg0 'select-scene 0)
)
((and (= (-> obj name) 347) (logtest? (the-as int s4-0) 64))
((and (= (-> obj name) (game-text-id progress-main-secrets-sceneplayer-2)) (logtest? s4-0 64))
(set! (-> *progress-state* scene-player-act) 2)
(sound-play "generic-beep")
(progress-method-29 arg0)
(set-next-state arg0 'select-scene 0)
)
((and (= (-> obj name) 348) (logtest? (the-as int s4-0) 128))
((and (= (-> obj name) (game-text-id progress-main-secrets-sceneplayer-3)) (logtest? s4-0 128))
(set! (-> *progress-state* scene-player-act) 3)
(sound-play "generic-beep")
(progress-method-29 arg0)
(set-next-state arg0 'select-scene 0)
)
((and (= (-> obj name) 345) (logtest? (the-as int s4-0) #x8000))
((and (= (-> obj name) (game-text-id progress-main-secrets-hero-mode)) (logtest? s4-0 #x8000))
(sound-play "generic-beep")
(progress-method-29 arg0)
(set-next-state arg0 'select-save-title-hero 0)
)
((and (= (-> obj name) 352) (logtest? (the-as int s4-0) 256))
((and (= (-> obj name) (game-text-id progress-main-secrets-levelselect)) (logtest? s4-0 256))
(sound-play "generic-beep")
(progress-method-29 arg0)
(set-next-state arg0 'select-start 0)
@@ -2150,12 +2294,12 @@
)
((= (-> *progress-save-info* file (-> *progress-state* which-slot) present) 1)
(set! s5-0 #t)
(menu-update-purchase-secrets (the-as menu-secret-option (-> *secret-options* options 0 box 0)))
(menu-update-purchase-secrets (the-as menu-secret-option (-> *secret-options* options 0 box 0 min x)))
(set-next-state arg0 'already-exists 0)
)
(else
(set! s5-0 #t)
(menu-update-purchase-secrets (the-as menu-secret-option (-> *secret-options* options 0 box 0)))
(menu-update-purchase-secrets (the-as menu-secret-option (-> *secret-options* options 0 box 0 min x)))
(set-next-state arg0 'saving 0)
)
)
@@ -3602,13 +3746,13 @@
)
((logtest? (pad-buttons pb24) (-> *cpad-list* cpads 0 button0-rel 0))
(cond
((and (-> v1-1 0) (= (-> arg0 name) 366))
((and (-> v1-1 0) (= (-> arg0 name) (game-text-id progress-root-restart-mission)))
(logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons pb24))
(logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons pb24))
(restart-mission)
(set-next-state arg1 'go-away 0)
)
((and (-> v1-1 0) (= (-> arg0 name) 307))
((and (-> v1-1 0) (= (-> arg0 name) (game-text-id progress-quit)))
(logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons pb24))
(logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons pb24))
(initialize! *game-info* 'game (the-as game-save #f) "title-restart")
+115 -93
View File
@@ -10,99 +10,121 @@
:type uint32
:bitfield #f
(pause 257)
(progress-on-off-1TODO 270)
(progress-on-off-2TODO 271)
(progress-1k2jn1kj2n3 272)
(progress-kj1231nj23 286)
(progress-12434g343v 287)
(progress-video-asda 288)
(progress-video-j1n2 289)
(progress-draw-yes-or-no-1-TODO 292)
(progress-draw-yes-or-no-2-TODO 293)
(progress-1kj2n3kj1n23 296)
(progress-n2jk3n45234 298)
(progress-1ikjhb231hjik2b31ihb231 303)
(progress-kj1n23123 308)
(progress-k1jnb231kjhnb23 311)
(progress-loj1n23 312)
(progress-2k3jn4234 313)
(progress-2kj3n24kn 314)
(progress-2kjn34 315)
(progress-2klj342n43 316)
(progress-l2jm342m34 317)
(progress-2m342kmj34 318)
(progress-kj1bn23kj1n23 339)
(progress-1l2jnm31lk2m3 340)
(progress-unlocked-oj1n23jn1 345)
(progress-unlocked-k1231kkj 346)
(progress-unlocked-jn12j 347)
(progress-unlocked-m12312 348)
(progress-unlocked-1231h2bn 349)
(progress-unlocked-akjisndaj 350)
(progress-unlocked-iwudnq 351)
(progress-unlocked-n51i51n 352)
(progress-1k2ijn1jkn3 360)
(progress-1kjn2jn31kj3 361)
(progress-1kj2n31j23 367)
(progress-iko1jn231kjhn23 368)
(progress-1klj2n31j2n3 369)
(progress-i1un23i12b341 370)
(progress-2kj3n2kji3n42 377)
(progress-draw-continue-retry-1-TODO 382)
(progress-1klj2n31j23 383)
(progress-j1n23j1kn23kjn12 395)
(progress-2j021j394j 396)
(progress-kj6n324i63n 397)
(progress-3iou4n3i45n3 398)
(progress-39u4n359n45 399)
(progress-iun34593n45 400)
(progress-on2394234n 401)
(progress-l1jkn231jkn23 402)
(progress-kj1n231kjn2 403)
(progress-1lkjn231jnk2 404)
(progress-n12n211n1n 405)
(progress-2iu3bn4289u34n 406)
(progress-oj1n23kj1n23123 409)
(progress-1kjn231kjn23 410)
(progress-1kj2b31k2b3 411)
(progress-j1nb23kj1hbn2 412)
(progress-1kj2bkoij1231 413)
(progress-1nmn1221n21n12n 414)
(progress-busy-loading-TODO 416)
(progress-1jib12o3nj12j3 419)
(progress-1m23n1n23n21 420)
(progress-1jk2n31jkn23n1j 421)
(progress-1n23kjn12nk3j12 422)
(progress-draw-continue-retry-2-TODO 423)
(progress-kj12k3j1n23n 424)
(progress-1kj2bn31kjhnb2 426)
(progress-jk1n23kj1n2 429)
(progress-k1jn23k1h23b 430)
(progress-k1jn23kj1n23 431)
(progress-1kjn231j2 432)
(progress-1kj2n31kjn231 433)
(progress-1kj2n31jkn23 434)
(progress-1kjn2123919 435)
(progress-jn12n3j1n2 436)
(progress-n12jin313 437)
(progress-main-23jn42 531)
(progress-main-63j46j3n4 532)
(progress-main-m123j1m 533)
(progress-main-634jn6 534)
(progress-main-52o352nm 535)
(progress-main-63jk46n3 536)
(progress-main-j324nm3 537)
(progress-main-k1j2n3n1 538)
(progress-main-6mn346mn 539)
(progress-main-63jn463jn 540)
(progress-main-63j46n3j 541)
(progress-main-52kj3n52 542)
(progress-main-52jn35j2 543)
(progress-main-3643m6m 544)
(progress-main-36j46jn 545)
(progress-main-63mn46nm 546)
(progress-main-364jn6n 547)
(progress-ikj123i1khb231 784)
(progress-sound-music-volume 264)
(progress-sound-speech-volume 265)
(progress-on 270)
(progress-off 271)
(progress-move-dpad 272)
(progress-aspect-ratio 280)
(progress-progressive-scan 281)
(progress-video-mode 282)
(progress-root-game-options 283)
(progress-root-graphic-options 284)
(progress-root-sound-options 285)
(progress-aspect-4x3 286)
(progress-aspect-16x9 287)
(progress-refresh-60hz 288)
(progress-refresh-50hz 289)
(progress-demo-exit 291)
(progress-yes 292)
(progress-no 293)
(progress-back 294)
(progress-ok 295)
(progress-next 296)
(progress-previous 297)
(progress-continue-without-saving 298)
(progress-select-file-to-save 299)
(progress-select-file-to-load 300)
(progress-load-game 301)
(progress-save-game 302)
(progress-slot-empty 303)
(progress-title-options 304)
(progress-title-new-game 305)
(progress-title-prompt 306)
(progress-quit 307)
(progress-root-show-map 308)
(progress-root-highscores 310)
(progress-highscores-1st 311)
(progress-highscores-2nd 312)
(progress-highscores-3rd 313)
(progress-highscores-4th 314)
(progress-highscores-5th 315)
(progress-highscores-6th 316)
(progress-highscores-7th 317)
(progress-highscores-8th 318)
(progress-root-secrets 339)
(progress-secrets-unlocked 340)
(progress-main-secrets-hero-mode 345)
(progress-main-secrets-sceneplayer-1 346)
(progress-main-secrets-sceneplayer-2 347)
(progress-main-secrets-sceneplayer-3 348)
(progress-main-secrets-scrapbook 349)
(progress-main-secrets-mega-scrapbook 350)
(progress-main-secrets-scrapbook-3 351)
(progress-main-secrets-levelselect 352)
(progress-secrets-orb-label 360)
(progress-root-missions 361)
(progress-root-restart-mission 366)
(progress-missions-icon-todo 367)
(progress-missions-icon-completed 368)
(progress-missions-none 369)
(progress-unknown-game 370)
(progress-unknown-square-to-reset 377)
(progress-unknown-retry? 382)
(progress-secrets-go-to-title-screen 383)
(progress-graphics-60hz-change-notice 395)
(progress-graphics-progressivescan-change-notice 396)
(progress-graphics-progressivescan-warning-1 397)
(progress-graphics-progressivescan-warning-2 398)
(progress-graphics-60hz-change-complete 399)
(progress-graphics-progressivescan-change-complete 400)
(progress-graphics-mode-revert? 401)
(progress-disc-removed-notice 402)
(progress-disc-removed-prompt 403)
(progress-disc-read-error 404)
(progress-disc-read-error-prompt 405)
(progress-quit-game-confirm 406)
(progress-memcard-not-found 409)
(progress-memcard-unformatted 410)
(progress-memcard-space-requirement 411)
(progress-memcard-insert-card-with-jak2 412)
(progress-memcard-insert-card-with-space-to-save 413)
(progress-memcard-formatting-required-notice 414)
(progress-memcard-loading-data 416)
(progress-memcard-dont-remove 419)
(progress-memcard-overwrite-warning 420)
(progress-memcard-overwrite-confirm 421)
(progress-memcard-format-prompt 422)
(progress-memcard-continue? 423)
(progress-memcard-go-back? 424)
(progress-memcard-error-while-saving 426)
(progress-memcard-check 429)
(progress-memcard-check-and-try-again 430)
(progress-memcard-was-removed 431)
(progress-autosave-disabled 432)
(progress-autosave-reenabling-info 433)
(progress-memcard-no-jak2-found 434)
(progress-memcard-create-jak2-file? 435)
(progress-autosave-explanation 436)
(progress-autosave-dont-remove 437)
(progress-locations-haven-city 531)
(progress-locations-fortress 532)
(progress-locations-landing-pad 533)
(progress-locations-palace-roof 534)
(progress-locations-palace 535)
(progress-locations-weapons-factory 536)
(progress-locations-dead-town 537)
(progress-locations-pumping-station 538)
(progress-locations-sewer 539)
(progress-locations-strip-mine 540)
(progress-locations-mountain-temple 541)
(progress-locations-haven-forest 542)
(progress-locations-drill-platform 543)
(progress-locations-mars-tomb 544)
(progress-locations-dig 545)
(progress-locations-underport 546)
(progress-locations-nest 547)
(progress-unknown-continue 784)
)
;; ---game-text-id
+2 -2
View File
@@ -62,7 +62,7 @@
:size-assert #x10
:flag-assert #xa00000010
(:methods
(highscore-info-method-9 () none 9)
(highscore-info-method-9 (_type_ float) int 9)
)
)
@@ -343,7 +343,7 @@
(game-info-method-26 () none 26)
(get-next-attack-id (_type_) uint 27)
(game-info-method-28 () none 28)
(game-info-method-29 () none 29)
(get-game-score-ref (_type_ int) (pointer float) 29)
(game-info-method-30 () none 30)
)
)
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -231,7 +231,7 @@
(new (symbol type) _type_ 0)
(initialize (_type_) none 9)
(update (_type_) none 10)
(bigmap-method-11 () none 11)
(bigmap-method-11 (_type_ int int int int) none 11)
(bigmap-method-12 () none 12)
(bigmap-method-13 () none 13)
(bigmap-method-14 (_type_) none 14)
+2 -2
View File
@@ -82,8 +82,8 @@
(hud-box-method-11 () none 11)
(hud-box-method-12 () none 12)
(hud-box-method-13 (_type_ dma-buffer float) int 13)
(hud-box-method-14 () none 14)
(hud-box-method-15 () none 15)
(hud-box-method-14 (_type_) none 14)
(hud-box-method-15 (_type_) none 15)
)
)
File diff suppressed because it is too large Load Diff
+6 -6
View File
@@ -39,7 +39,7 @@
(go-away () _type_ :state 22)
(gone () _type_ :state 23)
(init-defaults (_type_) connection 24)
(progress-method-25 (_type_ object object symbol) none 25)
(progress-method-25 (_type_) none 25)
(progress-method-26 (_type_) object 26)
(can-go-back? (_type_) symbol 27)
(progress-method-28 (_type_ symbol) symbol 28)
@@ -90,11 +90,11 @@
;; definition of type menu-option
(deftype menu-option (basic)
((name uint32 :offset-assert 4)
(scale float :offset-assert 8)
(unknown function :offset-assert 12)
(box menu-option 1 :offset-assert 16)
(unknown-options menu-option 7 :offset-assert 20)
((name game-text-id :offset-assert 4)
(scale float :offset-assert 8)
(unknown function :offset-assert 12)
(box hud-box 1 :inline :offset-assert 16)
(unknown-options menu-option 8 :offset 16)
)
:method-count-assert 12
:size-assert #x30
+2 -2
View File
@@ -180,9 +180,9 @@
)
)
;; definition for symbol *stereo-mode-name-remap*, type (array uint64)
;; definition for symbol *stereo-mode-name-remap*, type (array game-text-id)
(define *stereo-mode-name-remap*
(the-as (array uint64) (new 'static 'boxed-array :type uint32 #x104 #x105 #x106))
(the-as (array game-text-id) (new 'static 'boxed-array :type uint32 #x104 #x105 #x106))
)
;; definition for symbol *hud-ring-graphic-remap*, type (array uint64)
File diff suppressed because it is too large Load Diff
-2
View File
@@ -150,8 +150,6 @@
// aligner - never fixed in jak 1
"(method 9 align-control)",
"progress-trans", // TODO - hits an assertion related to the stack?
"bsp-camera-asm",
"build-masks",