diff --git a/decompiler/config/jak2/all-types.gc b/decompiler/config/jak2/all-types.gc index 56bd6cf15..bdeaea32c 100644 --- a/decompiler/config/jak2/all-types.gc +++ b/decompiler/config/jak2/all-types.gc @@ -5735,7 +5735,7 @@ (deftype level-vis-info (basic) ((level level :offset-assert 4) - (from-level level :offset-assert 8) + (from-level symbol :offset-assert 8) (from-bsp bsp-header :offset-assert 12) (flags vis-info-flag :offset-assert 16) (length uint32 :offset-assert 20) @@ -5928,8 +5928,8 @@ (declare-type text-id uint32) (deftype level (basic) ((name symbol :offset-assert 4) - (load-name string :offset-assert 8) - (nickname string :offset-assert 12) + (load-name symbol :offset-assert 8) + (nickname symbol :offset-assert 12) (index int32 :offset-assert 16) (status symbol :offset-assert 20) (borrow-level level 2 :offset-assert 24) @@ -6060,7 +6060,7 @@ (heap kheap :inline :offset-assert 112) (sound-bank basic 4 :offset-assert 128) (disk-load-timing? symbol :offset-assert 144) - (load-level basic :offset-assert 148) + (load-level symbol :offset-assert 148) (load-size uint32 :offset-assert 152) (load-time float :offset-assert 156) (load-login-time float :offset-assert 160) diff --git a/goal_src/jak2/engine/entity/entity.gc b/goal_src/jak2/engine/entity/entity.gc index 403aa495a..a60633c79 100644 --- a/goal_src/jak2/engine/entity/entity.gc +++ b/goal_src/jak2/engine/entity/entity.gc @@ -546,13 +546,13 @@ (a1-5 "~8D ~3D ~-8S #x~4X") (a2-4 (-> obj extra perm aid)) (a3-3 (-> obj extra perm task)) - (t0-3 (the-as object (-> obj extra level nickname))) + (t0-3 (-> obj extra level nickname)) ) (set! t0-3 (cond - ((the-as string t0-3) - (empty) - t0-3 - ) + (t0-3 + (empty) + t0-3 + ) (else (-> obj extra level name) ) diff --git a/goal_src/jak2/engine/gfx/mood/mood-funcs2.gc b/goal_src/jak2/engine/gfx/mood/mood-funcs2.gc index c97cfe681..412ff4604 100644 --- a/goal_src/jak2/engine/gfx/mood/mood-funcs2.gc +++ b/goal_src/jak2/engine/gfx/mood/mood-funcs2.gc @@ -2618,7 +2618,12 @@ (set! (-> arg0 times 1 w) 1.0) (update-mood-caustics arg0 2 (-> gp-1 rot) 10922.667 0.75 0.25) (update-mood-caustics arg0 3 (-> gp-1 rot) 0.0 0.75 0.25) - (update-mood-pulse arg0 4 0 0.875 0.125 (* 196608.0 (-> self clock seconds-per-frame)) 0.0) + ;; note : updated for pc port for nest revisit + (#if PC_PORT + (if (process-by-name "blocking-plane-nestb" *active-pool*) + (set! (-> arg0 times 4 w) 0.0) + (update-mood-pulse arg0 4 0 0.875 0.125 (* 196608.0 (-> self clock seconds-per-frame)) 0.0)) + (update-mood-pulse arg0 4 0 0.875 0.125 (* 196608.0 (-> self clock seconds-per-frame)) 0.0)) (set! (-> arg0 times 5 w) (+ (-> gp-1 purple) (-> gp-1 purple-noise))) (when (not (paused?)) (seek! (-> gp-1 purple) 0.0 (* 4.0 (-> self clock seconds-per-frame))) diff --git a/goal_src/jak2/engine/level/level-h.gc b/goal_src/jak2/engine/level/level-h.gc index 8c248baef..b53a27a35 100644 --- a/goal_src/jak2/engine/level/level-h.gc +++ b/goal_src/jak2/engine/level/level-h.gc @@ -152,7 +152,7 @@ (deftype level-vis-info (basic) ((level level :offset-assert 4) - (from-level level :offset-assert 8) + (from-level symbol :offset-assert 8) (from-bsp bsp-header :offset-assert 12) (flags vis-info-flag :offset-assert 16) (length uint32 :offset-assert 20) @@ -262,8 +262,8 @@ (deftype level (basic) ((name symbol :offset-assert 4) - (load-name string :offset-assert 8) - (nickname string :offset-assert 12) + (load-name symbol :offset-assert 8) + (nickname symbol :offset-assert 12) (index int32 :offset-assert 16) (status symbol :offset-assert 20) (borrow-level level 2 :offset-assert 24) @@ -380,7 +380,7 @@ (heap kheap :inline :offset-assert 112) (sound-bank basic 4 :offset-assert 128) (disk-load-timing? symbol :offset-assert 144) - (load-level basic :offset-assert 148) + (load-level symbol :offset-assert 148) (load-size uint32 :offset-assert 152) (load-time float :offset-assert 156) (load-login-time float :offset-assert 160) diff --git a/goal_src/jak2/engine/level/level.gc b/goal_src/jak2/engine/level/level.gc index 09a937e75..76d5a198d 100644 --- a/goal_src/jak2/engine/level/level.gc +++ b/goal_src/jak2/engine/level/level.gc @@ -374,7 +374,7 @@ into 7 sections, which might explain the weird sizes in the center. ;; set up the level info (set! (-> s5-1 info) s2-0) (set! (-> s5-1 name) arg0) - (set! (-> s5-1 load-name) (the-as string s1-0)) + (set! (-> s5-1 load-name) s1-0) ) ;; other setup from level-info @@ -1341,11 +1341,11 @@ into 7 sections, which might explain the weird sizes in the center. ;; final! ;; name - (set! (-> lev nickname) (the-as string (-> lev bsp nickname))) + (set! (-> lev nickname) (-> lev bsp nickname)) ;; added: tombc has the wrong nickname in the bsp file... (if (and (= (-> lev bsp name) 'tombc) (= (-> lev bsp nickname) 'toa)) - (set! (-> lev nickname) (the-as string 'toc)) + (set! (-> lev nickname) 'toc) ) ;; subdivide distances @@ -2808,7 +2808,7 @@ into 7 sections, which might explain the weird sizes in the center. (set! (-> s2-1 from-bsp) (-> s4-3 bsp)) ) (else - (let ((v1-114 (level-get obj (the-as symbol (-> s2-1 from-level))))) + (let ((v1-114 (level-get obj (-> s2-1 from-level)))) (set! (-> s2-1 from-bsp) (if v1-114 (-> v1-114 bsp) ) @@ -2928,7 +2928,7 @@ into 7 sections, which might explain the weird sizes in the center. (s4-5 *stdcon*) (s3-2 "~0Kload ~16S ~5S ~5DK ~5,,2fs ~5,,2fs~1K ~5,,0f k/s~%") (s2-2 (-> obj load-level)) - (v1-180 (lookup-level-info (the-as symbol (-> obj load-level)))) + (v1-180 (lookup-level-info (-> obj load-level))) ) (s5-6 s4-5 diff --git a/goal_src/jak2/levels/common/warp-gate.gc b/goal_src/jak2/levels/common/warp-gate.gc index cbd680c55..b4aac0a76 100644 --- a/goal_src/jak2/levels/common/warp-gate.gc +++ b/goal_src/jak2/levels/common/warp-gate.gc @@ -770,6 +770,17 @@ (set! (-> self root-override trans quad) (-> arg1 quad)) ) (logior! (-> self mask) (process-mask actor-pause)) + (#when PC_PORT + (when (string= (-> self name) "air-train-1") + (set! (-> (the (pointer pair) (get-tag-index-data arg0 2))) + '(cond + ((task-closed? "nest-boss-resolution") '("nest-warp" (scene-play '("city-air-train-in-nest" "nest-air-train-out")) #f (want-anim "city-air-train-in-nest"))) + ((task-closed? "nest-get-to-gun-introduction") '("nest-warp" (scene-play '("city-air-train-in-nest" "nest-air-train-out")) #f (want-anim "city-air-train-in-nest"))) + ((task-closed? "dig-find-totem-introduction") '("caspad-warp" (scene-play '("city-air-train-in-caspad" "caspad-air-train-out")) #f (want-anim "city-air-train-in-caspad"))) + ((task-closed? "dig-knock-down-introduction") '("caspad-warp" (scene-play '("city-air-train-in-caspad" "caspad-air-train-out")) #f (want-anim "city-air-train-in-caspad")))) + ) + ) + ) (setup-fields self) (go-virtual idle) (none) diff --git a/goal_src/jak2/levels/nest/boss/nestb-scenes.gc b/goal_src/jak2/levels/nest/boss/nestb-scenes.gc index f5f999d62..7713446ac 100644 --- a/goal_src/jak2/levels/nest/boss/nestb-scenes.gc +++ b/goal_src/jak2/levels/nest/boss/nestb-scenes.gc @@ -1751,12 +1751,38 @@ This commonly includes things such as: (set-time-for-random-weather! *mood-control* 0.0 0.0) ) (set! *nav-network* (the-as nav-network 0)) + (#when PC_PORT + ;; for nest revisit + (kill-by-name "blocking-plane-nestb" *active-pool*) + ) 0 (none) ) (defun nestb-activate ((arg0 level)) (nav-network-method-10 *nav-network* arg0 *nestb-adjacency*) + (#when PC_PORT + ;; for nest revisit + (when (task-node-closed? (game-task-node nest-boss-resolution)) + (script-eval '(begin + (kill "metalkor-1") + (kill "rift-ring-ingame-1") + (kill "crate-942") + (kill "crate-943") + (kill "crate-944") + (kill "crate-945") + (kill "crate-946") + (kill "crate-947") + (kill "crate-948") + (kill "crate-949") + )) + (let ((wall-pts (new 'stack-no-clear 'inline-array 'vector 2))) + (set-vector! (-> wall-pts 0) (meters 172.4628) (meters 32) (meters -380.7990) 1.0) + (set-vector! (-> wall-pts 1) (meters 151.7022) (meters 32) (meters -417.1884) 1.0) + (process-spawn blocking-plane wall-pts (meters 60) :name "blocking-plane-nestb") + ) + ) + ) 0 (none) ) diff --git a/goal_src/jak2/pc/debug/entity-debug.gc b/goal_src/jak2/pc/debug/entity-debug.gc index eec486e49..a472bbb58 100644 --- a/goal_src/jak2/pc/debug/entity-debug.gc +++ b/goal_src/jak2/pc/debug/entity-debug.gc @@ -43,12 +43,12 @@ ) ;; start writing text - (let* ((begin-y (- LINE_HEIGHT (* (-> inspect-info scroll-y) LINE_HEIGHT))) (cur-y begin-y) (y-adv 16)) + (let* ((begin-y (- (* 2 LINE_HEIGHT) (* (-> inspect-info scroll-y) LINE_HEIGHT))) (cur-y begin-y) (y-adv LINE_HEIGHT)) (with-dma-buffer-add-bucket ((debug-buf (-> (current-frame) debug-buf)) (bucket-id debug-no-zbuf1)) ;; basic info, actor id, etc (draw-string-xy - (string-format "~3L~A~0L ~A~%tags: ~D size: ~D aid: #x~x~%R1/L1 scroll L3 toggle display-actor-info~%--------------------" (-> e type) name (length e) (asize-of e) (-> e aid)) + (string-format "~3L~A~0L ~A~%tags: ~D size: ~D aid: #x~x level: ~S~%R1/L1 scroll L3 toggle display-actor-info~%--------------------" (-> e type) name (length e) (asize-of e) (-> e aid) (aif (-> e extra) (-> it level name))) debug-buf 352 cur-y (font-color default) (font-flags shadow kerning middle)) (+! cur-y (* LINE_HEIGHT 4)) (cond diff --git a/goal_src/jak2/pc/subtitle2.gc b/goal_src/jak2/pc/subtitle2.gc index 8e9628547..afef40551 100644 --- a/goal_src/jak2/pc/subtitle2.gc +++ b/goal_src/jak2/pc/subtitle2.gc @@ -643,8 +643,6 @@ ) (when (-> self movie-mode?) - (if *debug-segment* - (format *stdcon* "subtitle2 movie-mode~%")) (set! (-> self movie-gui) #f) (set! (-> self movie-mode?) #f) (clear (-> self movie-line)) diff --git a/test/decompiler/reference/jak2/engine/entity/entity_REF.gc b/test/decompiler/reference/jak2/engine/entity/entity_REF.gc index a6048aeb7..f6a11beea 100644 --- a/test/decompiler/reference/jak2/engine/entity/entity_REF.gc +++ b/test/decompiler/reference/jak2/engine/entity/entity_REF.gc @@ -667,13 +667,13 @@ (a1-5 "~8D ~3D ~-8S #x~4X") (a2-4 (-> obj extra perm aid)) (a3-3 (-> obj extra perm task)) - (t0-3 (the-as object (-> obj extra level nickname))) + (t0-3 (-> obj extra level nickname)) ) (set! t0-3 (cond - ((the-as string t0-3) - (empty) - t0-3 - ) + (t0-3 + (empty) + t0-3 + ) (else (-> obj extra level name) ) diff --git a/test/decompiler/reference/jak2/engine/level/level-h_REF.gc b/test/decompiler/reference/jak2/engine/level/level-h_REF.gc index cdaf94392..4db74567a 100644 --- a/test/decompiler/reference/jak2/engine/level/level-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/level/level-h_REF.gc @@ -4,7 +4,7 @@ ;; definition of type level-vis-info (deftype level-vis-info (basic) ((level level :offset-assert 4) - (from-level level :offset-assert 8) + (from-level symbol :offset-assert 8) (from-bsp bsp-header :offset-assert 12) (flags vis-info-flag :offset-assert 16) (length uint32 :offset-assert 20) @@ -395,8 +395,8 @@ ;; definition of type level (deftype level (basic) ((name symbol :offset-assert 4) - (load-name string :offset-assert 8) - (nickname string :offset-assert 12) + (load-name symbol :offset-assert 8) + (nickname symbol :offset-assert 12) (index int32 :offset-assert 16) (status symbol :offset-assert 20) (borrow-level level 2 :offset-assert 24) @@ -660,7 +660,7 @@ (heap kheap :inline :offset-assert 112) (sound-bank basic 4 :offset-assert 128) (disk-load-timing? symbol :offset-assert 144) - (load-level basic :offset-assert 148) + (load-level symbol :offset-assert 148) (load-size uint32 :offset-assert 152) (load-time float :offset-assert 156) (load-login-time float :offset-assert 160) diff --git a/test/decompiler/reference/jak2/engine/level/level_REF.gc b/test/decompiler/reference/jak2/engine/level/level_REF.gc index c9e3db23b..a625d8b1d 100644 --- a/test/decompiler/reference/jak2/engine/level/level_REF.gc +++ b/test/decompiler/reference/jak2/engine/level/level_REF.gc @@ -242,7 +242,7 @@ ) (set! (-> s5-1 info) s2-0) (set! (-> s5-1 name) arg0) - (set! (-> s5-1 load-name) (the-as string s1-0)) + (set! (-> s5-1 load-name) s1-0) ) (set! (-> s5-1 mood-func) (the-as (function mood-context float int none) (-> s5-1 info mood-func value))) (set! (-> s5-1 mood-init) (the-as (function mood-context none) (-> s5-1 info mood-init value))) @@ -1033,7 +1033,7 @@ ) ) ) - (set! (-> lev nickname) (the-as string (-> lev bsp nickname))) + (set! (-> lev nickname) (-> lev bsp nickname)) (let ((close-dist (-> lev bsp subdivide-close)) (far-dist (-> lev bsp subdivide-far)) ) @@ -2339,7 +2339,7 @@ (set! (-> s2-1 from-bsp) (-> s4-3 bsp)) ) (else - (let ((v1-114 (level-get obj (the-as symbol (-> s2-1 from-level))))) + (let ((v1-114 (level-get obj (-> s2-1 from-level)))) (set! (-> s2-1 from-bsp) (if v1-114 (-> v1-114 bsp) ) @@ -2459,7 +2459,7 @@ (s4-5 *stdcon*) (s3-2 "~0Kload ~16S ~5S ~5DK ~5,,2fs ~5,,2fs~1K ~5,,0f k/s~%") (s2-2 (-> obj load-level)) - (v1-180 (lookup-level-info (the-as symbol (-> obj load-level)))) + (v1-180 (lookup-level-info (-> obj load-level))) ) (s5-6 s4-5