From dd4f255260a8af975a418cac022a843bde12c574 Mon Sep 17 00:00:00 2001 From: water111 <48171810+water111@users.noreply.github.com> Date: Sat, 13 Apr 2024 09:47:23 -0400 Subject: [PATCH] [jak3] Minimap texture fix (#3465) --- decompiler/config/jak3/all-types.gc | 4 ++-- decompiler/config/jak3/ntsc_v1/inputs.jsonc | 14 +++++------ decompiler/level_extractor/extract_merc.cpp | 10 ++++++-- .../opengl_renderer/ProgressRenderer.cpp | 3 +++ game/overlord/jak2/iso.cpp | 6 ++++- goal_src/jak3/engine/game/settings-h.gc | 4 ++-- goal_src/jak3/engine/game/settings.gc | 4 ---- goal_src/jak3/engine/gfx/texture/texture.gc | 10 ++++---- goal_src/jak3/engine/level/level.gc | 13 ++++++++-- goal_src/jak3/engine/physics/cloth.gc | 6 +++++ .../jak3/engine/target/board/target-board.gc | 3 ++- .../jak3/engine/target/flut/target-flut.gc | 2 +- .../jak3/engine/target/mech/target-mech.gc | 4 ++-- goal_src/jak3/engine/target/target-darkjak.gc | 2 +- goal_src/jak3/engine/target/target-gun.gc | 24 +++++++++---------- .../jak3/engine/target/target-lightjak.gc | 2 +- goal_src/jak3/engine/ui/minimap.gc | 5 ++-- goal_src/jak3/game.gp | 12 +++++----- .../jak3/engine/game/settings-h_REF.gc | 4 ++-- .../jak3/engine/game/settings_REF.gc | 4 ---- .../engine/target/board/target-board_REF.gc | 3 ++- .../engine/target/flut/target-flut_REF.gc | 2 +- .../engine/target/mech/target-mech_REF.gc | 2 +- .../jak3/engine/target/target-darkjak_REF.gc | 2 +- .../jak3/engine/target/target-gun_REF.gc | 24 +++++++++---------- .../jak3/engine/target/target-lightjak_REF.gc | 2 +- 26 files changed, 98 insertions(+), 73 deletions(-) diff --git a/decompiler/config/jak3/all-types.gc b/decompiler/config/jak3/all-types.gc index f68b9da9a9..23bb589c35 100644 --- a/decompiler/config/jak3/all-types.gc +++ b/decompiler/config/jak3/all-types.gc @@ -10840,9 +10840,9 @@ :flag-assert #x1400001430 (:methods (new (symbol type int) _type_) ;; 0 - (add-setting (_type_ process symbol object object object) none) ;; 9 + (add-setting (_type_ process symbol object object object) connection) ;; 9 (persist-with-delay (_type_ symbol time-frame symbol symbol float int) none) ;; 10 - (set-setting (_type_ process symbol object object object) none) ;; 11 + (set-setting (_type_ process symbol object object object) connection) ;; 11 (remove-setting (_type_ process symbol) none) ;; 12 (kill-persister (_type_ engine-pers object) none) ;; 13 (setting-control-method-14 (_type_ object) connectable) ;; 14 diff --git a/decompiler/config/jak3/ntsc_v1/inputs.jsonc b/decompiler/config/jak3/ntsc_v1/inputs.jsonc index 10fa70a385..c8043312dd 100644 --- a/decompiler/config/jak3/ntsc_v1/inputs.jsonc +++ b/decompiler/config/jak3/ntsc_v1/inputs.jsonc @@ -29,13 +29,13 @@ "DGO/WCASEEM.DGO", "DGO/WASCAST.DGO", // // arena - // "DGO/WASSTADA.DGO", - // "DGO/WASSTADB.DGO", - // "DGO/WASSTADC.DGO", - // "DGO/ARENACST.DGO", + "DGO/WASSTADA.DGO", + "DGO/WASSTADB.DGO", + "DGO/WASSTADC.DGO", + "DGO/ARENACST.DGO", // // desert // "DGO/DESA.DGO", - // "DGO/DESB.DGO", + "DGO/DESB.DGO", // "DGO/DESBATTL.DGO", // "DGO/DESBCST.DGO", // "DGO/DESBOSS1.DGO", @@ -50,7 +50,7 @@ // "DGO/DESH.DGO", // "DGO/DESHOVER.DGO", // "DGO/DESHUNT.DGO", - // "DGO/DESINTER.DGO", + "DGO/DESINTER.DGO", // "DGO/DESJUMP.DGO", // "DGO/DESLIZ.DGO", // "DGO/DESOASIS.DGO", @@ -273,7 +273,7 @@ // "DGO/LJNDKLEV.DGO", // "DGO/LKEIRA.DGO", // "DGO/LKLEEVER.DGO", - // "DGO/LMECH.DGO", + "DGO/LMECH.DGO", // "DGO/LMHCA.DGO", // "DGO/LMHCB.DGO", // "DGO/LNSTCST.DGO", diff --git a/decompiler/level_extractor/extract_merc.cpp b/decompiler/level_extractor/extract_merc.cpp index bbda59d934..37115056ca 100644 --- a/decompiler/level_extractor/extract_merc.cpp +++ b/decompiler/level_extractor/extract_merc.cpp @@ -228,8 +228,14 @@ void update_mode_from_alpha1(GsAlpha reg, DrawMode& mode) { reg.c_mode() == GsAlpha::BlendMode::ZERO_OR_FIXED && reg.d_mode() == GsAlpha::BlendMode::DEST) { // Cv = (Cs - Cd) * FIX + Cd - ASSERT(reg.fix() == 64); - mode.set_alpha_blend(DrawMode::AlphaBlend::SRC_DST_FIX_DST); + if (reg.fix() == 64) { + mode.set_alpha_blend(DrawMode::AlphaBlend::SRC_DST_FIX_DST); + } else if (reg.fix() == 128) { + // Cv = (Cs - Cd) + Cd = Cs... no blend. + mode.set_alpha_blend(DrawMode::AlphaBlend::SRC_SRC_SRC_SRC); + } else { + ASSERT_NOT_REACHED(); + } } else if (reg.a_mode() == GsAlpha::BlendMode::DEST && reg.b_mode() == GsAlpha::BlendMode::SOURCE && reg.c_mode() == GsAlpha::BlendMode::ZERO_OR_FIXED && diff --git a/game/graphics/opengl_renderer/ProgressRenderer.cpp b/game/graphics/opengl_renderer/ProgressRenderer.cpp index 1db82092f0..bdc27979d8 100644 --- a/game/graphics/opengl_renderer/ProgressRenderer.cpp +++ b/game/graphics/opengl_renderer/ProgressRenderer.cpp @@ -42,6 +42,9 @@ void ProgressRenderer::handle_frame(u64 val, break; case kMinimapFbp: // 126 m_fb_ctxt.emplace(m_minimap_fb); + // replace any other texture that the game loaded to this slot with our PC with the GPU + // one that we assume will get written to now. + render_state->texture_pool->move_existing_to_vram(m_minimap_gpu_tex, kMinimapVramAddr); m_offscreen_mode = true; break; default: diff --git a/game/overlord/jak2/iso.cpp b/game/overlord/jak2/iso.cpp index 127f246fce..32c0eba4f3 100644 --- a/game/overlord/jak2/iso.cpp +++ b/game/overlord/jak2/iso.cpp @@ -677,7 +677,11 @@ u32 ISOThread() { pLVar14 = (VagStrListNode*)NewStreamsList.next; do { if (pLVar14->id != 0) { - QueueVAGStream(pLVar14); + if (g_game_version != GameVersion::Jak3) { + // doesn't work. + printf("jak3 skipping vag stream\n"); + QueueVAGStream(pLVar14); + } } pLVar14 = (VagStrListNode*)pLVar14->list.next; iVar4 = iVar4 + 1; diff --git a/goal_src/jak3/engine/game/settings-h.gc b/goal_src/jak3/engine/game/settings-h.gc index 1e500bc5e4..2ecd8eccd0 100644 --- a/goal_src/jak3/engine/game/settings-h.gc +++ b/goal_src/jak3/engine/game/settings-h.gc @@ -572,9 +572,9 @@ ) (:methods (new (symbol type int) _type_) - (add-setting (_type_ process symbol object object object) none) + (add-setting (_type_ process symbol object object object) connection) (persist-with-delay (_type_ symbol time-frame symbol symbol float int) none) - (set-setting (_type_ process symbol object object object) none) + (set-setting (_type_ process symbol object object object) connection) (remove-setting (_type_ process symbol) none) (kill-persister (_type_ engine-pers object) none) (setting-control-method-14 (_type_ object) connectable) diff --git a/goal_src/jak3/engine/game/settings.gc b/goal_src/jak3/engine/game/settings.gc index 5e4f1a00f0..2fe58d2dc1 100644 --- a/goal_src/jak3/engine/game/settings.gc +++ b/goal_src/jak3/engine/game/settings.gc @@ -1199,17 +1199,13 @@ this ) -;; WARN: Return type mismatch connection vs none. (defmethod add-setting ((this setting-control) (arg0 process) (arg1 symbol) (arg2 object) (arg3 object) (arg4 object)) (add-connection (-> this engine) arg0 arg1 arg2 arg3 arg4) - (none) ) -;; WARN: Return type mismatch connection vs none. (defmethod set-setting ((this setting-control) (arg0 process) (arg1 symbol) (arg2 object) (arg3 object) (arg4 object)) (remove-setting this arg0 arg1) (add-connection (-> this engine) arg0 arg1 arg2 arg3 arg4) - (none) ) (defmethod persist-with-delay ((this setting-control) (arg0 symbol) (arg1 time-frame) (arg2 symbol) (arg3 symbol) (arg4 float) (arg5 int)) diff --git a/goal_src/jak3/engine/gfx/texture/texture.gc b/goal_src/jak3/engine/gfx/texture/texture.gc index 1658b7f37e..b8c68a7edc 100644 --- a/goal_src/jak3/engine/gfx/texture/texture.gc +++ b/goal_src/jak3/engine/gfx/texture/texture.gc @@ -1409,7 +1409,7 @@ (let ((t0-22 (-> lev texture-mask category))) (set! (-> t0-22 mask quad) (the-as uint128 -1)) (set! (-> lev upload-size 8) - (upload-vram-pages-pris pool (-> pool segment-common) a2-1 bucket (the-as (pointer int32) t0-22)) + (upload-vram-pages-pris-pc pool (-> pool segment-common) a2-1 bucket (the-as (pointer int32) t0-22)) ) ) ) @@ -1421,9 +1421,11 @@ ) ) (((tpage-category hfrag)) - (set! (-> lev upload-size 10) - (upload-vram-pages pool (-> pool segment-common) a2-1 (tex-upload-mode seg0-1-2) bucket) - ) + ;; for PC: disable hfrag texture uploads since we're going to rewrite the renderer. + ;; this saves us from creating the bucket renderer and processing uploads. + ; (set! (-> lev upload-size 10) + ; (upload-vram-pages pool (-> pool segment-common) a2-1 (tex-upload-mode seg0-1-2) bucket) + ; ) ) ) ;; added nonzero check. diff --git a/goal_src/jak3/engine/level/level.gc b/goal_src/jak3/engine/level/level.gc index 9100b5d559..3926660194 100644 --- a/goal_src/jak3/engine/level/level.gc +++ b/goal_src/jak3/engine/level/level.gc @@ -2781,6 +2781,14 @@ (defconstant *default-boot-level* 'halfpipe) +(defmacro play-desert () + `(start 'play (get-continue-by-name *game-info* "desert-start")) + ) + +(defmacro play-was () + `(start 'play (get-continue-by-name *game-info* "wascitya-start")) + ) + (defun play ((arg0 symbol) (arg1 symbol)) "Start (or restart) the game! This will start up the display process, and load the initial level." @@ -3812,9 +3820,10 @@ ((or (= (-> this level i status) 'active) (= (-> this level i status) 'alive) (= (-> this level i status) 'loaded)) - (set! (-> lev-names i) (symbol->string (-> this level i nickname))) + ;; using info nickname since desert's bsp nickname is desert-vis, not dst. + (set! (-> lev-names i) (symbol->string (-> this level i info nickname))) (if (-> this level i display?) - (set! (-> active-lev-names i) (symbol->string (-> this level i nickname)))) + (set! (-> active-lev-names i) (symbol->string (-> this level i info nickname)))) ) ) ) diff --git a/goal_src/jak3/engine/physics/cloth.gc b/goal_src/jak3/engine/physics/cloth.gc index c826529d78..5e15d1af31 100644 --- a/goal_src/jak3/engine/physics/cloth.gc +++ b/goal_src/jak3/engine/physics/cloth.gc @@ -11,6 +11,12 @@ (format 0 "unimplemented cloth-base-method-10~%") 0) +(defmethod cloth-system-method-34 ((this cloth-system)) + (format 0 "unimplemented cloth-system-method-34~%") + (none) + ) + + (defmethod init! ((this cloth-base)) ;; this looks more like run! than init to me. 0) \ No newline at end of file diff --git a/goal_src/jak3/engine/target/board/target-board.gc b/goal_src/jak3/engine/target/board/target-board.gc index 5585ea3fb4..22d3c4a1b2 100644 --- a/goal_src/jak3/engine/target/board/target-board.gc +++ b/goal_src/jak3/engine/target/board/target-board.gc @@ -866,6 +866,7 @@ (none) ) +;; WARN: Return type mismatch connection vs none. (defbehavior target-board-init target () (target-lightjak-end-mode #t) (target-darkjak-end-mode #t) @@ -899,7 +900,7 @@ (set! (-> self board sound-air-knob) 0.0) (set! (-> self board sound-bank-knob) 0.0) (set! (-> self board turn-sound-id) (new 'static 'sound-id)) - (set! (-> self board mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modebord 0.0 0))) + (set! (-> self board mode-sound-bank) (add-setting! 'mode-sound-bank 'modebord 0.0 0)) (set-time! (-> self board board-get-on-time)) (set! (-> self board stick-lock) #f) (set! (-> self board stick-off) #f) diff --git a/goal_src/jak3/engine/target/flut/target-flut.gc b/goal_src/jak3/engine/target/flut/target-flut.gc index 2e9041df23..7a07321abb 100644 --- a/goal_src/jak3/engine/target/flut/target-flut.gc +++ b/goal_src/jak3/engine/target/flut/target-flut.gc @@ -1131,7 +1131,7 @@ (set! (-> self flut attack-id) a0-22) ) (set! (-> self flut flap-sound-id) (the-as uint (new-sound-id))) - (set! (-> self flut mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modeflut 0.0 0))) + (set! (-> self flut mode-sound-bank) (add-setting! 'mode-sound-bank 'modeflut 0.0 0)) (set! (-> self flut entity) #f) (let ((v1-41 (handle->process arg0))) (if v1-41 diff --git a/goal_src/jak3/engine/target/mech/target-mech.gc b/goal_src/jak3/engine/target/mech/target-mech.gc index c3544618a6..e56322c416 100644 --- a/goal_src/jak3/engine/target/mech/target-mech.gc +++ b/goal_src/jak3/engine/target/mech/target-mech.gc @@ -1368,7 +1368,7 @@ (set-setting! 'string-min-height 'low (meters 1.5) 0) (set-setting! 'fov 'abs (degrees 75.0) 0) (set-setting! 'head-offset 'abs (meters 4.5) 0) - (set! (-> self mech mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modemech 0.0 0))) + (set! (-> self mech mode-sound-bank) (add-setting! 'mode-sound-bank 'modemech 0.0 0)) (set! (-> self mech hud 0) (ppointer->handle (process-spawn hud-heatmeter :init hud-init-by-other :name "hud-heatmeter" :to self)) ) @@ -1458,7 +1458,7 @@ (deactivate a0-27) ) ) - ;; (setting-control-method-14 *setting-control* (-> self mech mode-sound-bank)) + (setting-control-method-14 *setting-control* (-> self mech mode-sound-bank)) (set! (-> self mech mode-sound-bank) #f) (logclear! (-> self draw status) (draw-control-status no-draw-bounds)) (logclear! (-> self focus-status) (focus-status mech)) diff --git a/goal_src/jak3/engine/target/target-darkjak.gc b/goal_src/jak3/engine/target/target-darkjak.gc index 7e2797006b..e74459e42b 100644 --- a/goal_src/jak3/engine/target/target-darkjak.gc +++ b/goal_src/jak3/engine/target/target-darkjak.gc @@ -997,7 +997,7 @@ (set! (-> self pending-ext-anim) (target-anim dark)) (set-time! (-> self fact darkjak-start-time)) (set! (-> self fact darkjak-effect-time) (seconds 20)) - (set! (-> self darkjak mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modedark 0.0 0))) + (set! (-> self darkjak mode-sound-bank) (add-setting! 'mode-sound-bank 'modedark 0.0 0)) (set! (-> self darkjak lightning-count) 0) (cond ((logtest? (-> self darkjak stage) (darkjak-stage ds8)) diff --git a/goal_src/jak3/engine/target/target-gun.gc b/goal_src/jak3/engine/target/target-gun.gc index bb679d9dae..c426f521ba 100644 --- a/goal_src/jak3/engine/target/target-gun.gc +++ b/goal_src/jak3/engine/target/target-gun.gc @@ -720,40 +720,40 @@ ((arg0 pickup-type)) (case arg0 (((pickup-type gun-yellow-1)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modeguy1 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modeguy1 0.0 0)) ) (((pickup-type gun-yellow-2)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modeguy2 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modeguy2 0.0 0)) ) (((pickup-type gun-yellow-3)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modeguy3 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modeguy3 0.0 0)) ) (((pickup-type gun-red-1)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modegur1 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modegur1 0.0 0)) ) (((pickup-type gun-red-2)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modegur2 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modegur2 0.0 0)) ) (((pickup-type gun-red-3)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modegur3 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modegur3 0.0 0)) ) (((pickup-type gun-blue-1)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modegub1 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modegub1 0.0 0)) ) (((pickup-type gun-blue-2)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modegub2 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modegub2 0.0 0)) ) (((pickup-type gun-blue-3)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modegub3 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modegub3 0.0 0)) ) (((pickup-type gun-dark-1)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modegud1 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modegud1 0.0 0)) ) (((pickup-type gun-dark-2)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modegud2 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modegud2 0.0 0)) ) (((pickup-type gun-dark-3)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modegud3 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modegud3 0.0 0)) ) ) (none) diff --git a/goal_src/jak3/engine/target/target-lightjak.gc b/goal_src/jak3/engine/target/target-lightjak.gc index eec18ce4b8..117bb8606f 100644 --- a/goal_src/jak3/engine/target/target-lightjak.gc +++ b/goal_src/jak3/engine/target/target-lightjak.gc @@ -1571,7 +1571,7 @@ (set! (-> self pending-ext-anim) (target-anim light)) (set-time! (-> self fact lightjak-start-time)) (set! (-> self fact lightjak-effect-time) (seconds 20)) - (set! (-> self lightjak mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modelit 0.0 0))) + (set! (-> self lightjak mode-sound-bank) (add-setting! 'mode-sound-bank 'modelit 0.0 0)) (target-start-attack) (target-danger-set! 'get-on #f) (cond diff --git a/goal_src/jak3/engine/ui/minimap.gc b/goal_src/jak3/engine/ui/minimap.gc index 268d7a4376..691446e1ac 100644 --- a/goal_src/jak3/engine/ui/minimap.gc +++ b/goal_src/jak3/engine/ui/minimap.gc @@ -3499,8 +3499,9 @@ ;; og:preserve-this (let* ((a3-1 (the int (+ (* (the-as uint 320) (-> arg1 class icon-xy x)) 8))) (t0-1 (the int (+ (* (the-as uint 320) (-> arg1 class icon-xy y)) 8))) - (a1-65 (+ a3-1 312)) - (a2-14 (+ t0-1 312)) + ;; adjusted: + (a1-65 (+ a3-1 300)) + (a2-14 (+ t0-1 300)) ) (set! (-> (the-as (pointer uint128) v1-122) 0) (-> this sprite-tmpl dma-vif quad)) (set! (-> (the-as (pointer uint128) v1-122) 1) (-> this sprite-tmpl quad 1)) diff --git a/goal_src/jak3/game.gp b/goal_src/jak3/game.gp index a75712eb9e..e2a7a40af7 100644 --- a/goal_src/jak3/game.gp +++ b/goal_src/jak3/game.gp @@ -113,13 +113,13 @@ (cgo-file "wascast.gd" common-dep) (cgo-file "wasall.gd" common-dep) ; ;; arena -; (cgo-file "wasstada.gd" common-dep) -; (cgo-file "wasstadb.gd" common-dep) -; (cgo-file "wasstadc.gd" common-dep) -; (cgo-file "arenacst.gd" common-dep) +(cgo-file "wasstada.gd" common-dep) +(cgo-file "wasstadb.gd" common-dep) +(cgo-file "wasstadc.gd" common-dep) +(cgo-file "arenacst.gd" common-dep) ; ;; desert ; (cgo-file "desa.gd" common-dep) -; (cgo-file "desb.gd" common-dep) +(cgo-file "desb.gd" common-dep) ; (cgo-file "desbattl.gd" common-dep) ; (cgo-file "desbcst.gd" common-dep) ; (cgo-file "desboss1.gd" common-dep) @@ -134,7 +134,7 @@ ; (cgo-file "desh.gd" common-dep) ; (cgo-file "deshover.gd" common-dep) ; (cgo-file "deshunt.gd" common-dep) -; (cgo-file "desinter.gd" common-dep) +(cgo-file "desinter.gd" common-dep) ; (cgo-file "desjump.gd" common-dep) ; (cgo-file "desliz.gd" common-dep) ; (cgo-file "desoasis.gd" common-dep) diff --git a/test/decompiler/reference/jak3/engine/game/settings-h_REF.gc b/test/decompiler/reference/jak3/engine/game/settings-h_REF.gc index 51c601ce6a..a8ea297ae3 100644 --- a/test/decompiler/reference/jak3/engine/game/settings-h_REF.gc +++ b/test/decompiler/reference/jak3/engine/game/settings-h_REF.gc @@ -700,9 +700,9 @@ ) (:methods (new (symbol type int) _type_) - (add-setting (_type_ process symbol object object object) none) + (add-setting (_type_ process symbol object object object) connection) (persist-with-delay (_type_ symbol time-frame symbol symbol float int) none) - (set-setting (_type_ process symbol object object object) none) + (set-setting (_type_ process symbol object object object) connection) (remove-setting (_type_ process symbol) none) (kill-persister (_type_ engine-pers object) none) (setting-control-method-14 (_type_ object) connectable) diff --git a/test/decompiler/reference/jak3/engine/game/settings_REF.gc b/test/decompiler/reference/jak3/engine/game/settings_REF.gc index fdc9fd3c52..5e0f503e4c 100644 --- a/test/decompiler/reference/jak3/engine/game/settings_REF.gc +++ b/test/decompiler/reference/jak3/engine/game/settings_REF.gc @@ -1186,18 +1186,14 @@ ) ;; definition for method 9 of type setting-control -;; WARN: Return type mismatch connection vs none. (defmethod add-setting ((this setting-control) (arg0 process) (arg1 symbol) (arg2 object) (arg3 object) (arg4 object)) (add-connection (-> this engine) arg0 arg1 arg2 arg3 arg4) - (none) ) ;; definition for method 11 of type setting-control -;; WARN: Return type mismatch connection vs none. (defmethod set-setting ((this setting-control) (arg0 process) (arg1 symbol) (arg2 object) (arg3 object) (arg4 object)) (remove-setting this arg0 arg1) (add-connection (-> this engine) arg0 arg1 arg2 arg3 arg4) - (none) ) ;; definition for method 10 of type setting-control diff --git a/test/decompiler/reference/jak3/engine/target/board/target-board_REF.gc b/test/decompiler/reference/jak3/engine/target/board/target-board_REF.gc index eef083e244..b9642dbf64 100644 --- a/test/decompiler/reference/jak3/engine/target/board/target-board_REF.gc +++ b/test/decompiler/reference/jak3/engine/target/board/target-board_REF.gc @@ -882,6 +882,7 @@ ) ;; definition for function target-board-init +;; WARN: Return type mismatch connection vs none. (defbehavior target-board-init target () (target-lightjak-end-mode #t) (target-darkjak-end-mode #t) @@ -915,7 +916,7 @@ (set! (-> self board sound-air-knob) 0.0) (set! (-> self board sound-bank-knob) 0.0) (set! (-> self board turn-sound-id) (new 'static 'sound-id)) - (set! (-> self board mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modebord 0.0 0))) + (set! (-> self board mode-sound-bank) (add-setting! 'mode-sound-bank 'modebord 0.0 0)) (set-time! (-> self board board-get-on-time)) (set! (-> self board stick-lock) #f) (set! (-> self board stick-off) #f) diff --git a/test/decompiler/reference/jak3/engine/target/flut/target-flut_REF.gc b/test/decompiler/reference/jak3/engine/target/flut/target-flut_REF.gc index 0784e47ebe..cb9c85a637 100644 --- a/test/decompiler/reference/jak3/engine/target/flut/target-flut_REF.gc +++ b/test/decompiler/reference/jak3/engine/target/flut/target-flut_REF.gc @@ -1173,7 +1173,7 @@ (set! (-> self flut attack-id) a0-22) ) (set! (-> self flut flap-sound-id) (the-as uint (new-sound-id))) - (set! (-> self flut mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modeflut 0.0 0))) + (set! (-> self flut mode-sound-bank) (add-setting! 'mode-sound-bank 'modeflut 0.0 0)) (set! (-> self flut entity) #f) (let ((v1-41 (handle->process arg0))) (if v1-41 diff --git a/test/decompiler/reference/jak3/engine/target/mech/target-mech_REF.gc b/test/decompiler/reference/jak3/engine/target/mech/target-mech_REF.gc index bd3cc58f3e..13355c113b 100644 --- a/test/decompiler/reference/jak3/engine/target/mech/target-mech_REF.gc +++ b/test/decompiler/reference/jak3/engine/target/mech/target-mech_REF.gc @@ -1413,7 +1413,7 @@ (set-setting! 'string-min-height 'low (meters 1.5) 0) (set-setting! 'fov 'abs (degrees 75.0) 0) (set-setting! 'head-offset 'abs (meters 4.5) 0) - (set! (-> self mech mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modemech 0.0 0))) + (set! (-> self mech mode-sound-bank) (add-setting! 'mode-sound-bank 'modemech 0.0 0)) (set! (-> self mech hud 0) (ppointer->handle (process-spawn hud-heatmeter :init hud-init-by-other :name "hud-heatmeter" :to self)) ) diff --git a/test/decompiler/reference/jak3/engine/target/target-darkjak_REF.gc b/test/decompiler/reference/jak3/engine/target/target-darkjak_REF.gc index aea5332d64..2093a7fd5c 100644 --- a/test/decompiler/reference/jak3/engine/target/target-darkjak_REF.gc +++ b/test/decompiler/reference/jak3/engine/target/target-darkjak_REF.gc @@ -1074,7 +1074,7 @@ (set! (-> self pending-ext-anim) (target-anim dark)) (set-time! (-> self fact darkjak-start-time)) (set! (-> self fact darkjak-effect-time) (seconds 20)) - (set! (-> self darkjak mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modedark 0.0 0))) + (set! (-> self darkjak mode-sound-bank) (add-setting! 'mode-sound-bank 'modedark 0.0 0)) (set! (-> self darkjak lightning-count) 0) (cond ((logtest? (-> self darkjak stage) (darkjak-stage ds8)) diff --git a/test/decompiler/reference/jak3/engine/target/target-gun_REF.gc b/test/decompiler/reference/jak3/engine/target/target-gun_REF.gc index c9e27a36d8..32870e2c04 100644 --- a/test/decompiler/reference/jak3/engine/target/target-gun_REF.gc +++ b/test/decompiler/reference/jak3/engine/target/target-gun_REF.gc @@ -727,40 +727,40 @@ ((arg0 pickup-type)) (case arg0 (((pickup-type gun-yellow-1)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modeguy1 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modeguy1 0.0 0)) ) (((pickup-type gun-yellow-2)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modeguy2 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modeguy2 0.0 0)) ) (((pickup-type gun-yellow-3)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modeguy3 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modeguy3 0.0 0)) ) (((pickup-type gun-red-1)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modegur1 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modegur1 0.0 0)) ) (((pickup-type gun-red-2)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modegur2 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modegur2 0.0 0)) ) (((pickup-type gun-red-3)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modegur3 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modegur3 0.0 0)) ) (((pickup-type gun-blue-1)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modegub1 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modegub1 0.0 0)) ) (((pickup-type gun-blue-2)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modegub2 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modegub2 0.0 0)) ) (((pickup-type gun-blue-3)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modegub3 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modegub3 0.0 0)) ) (((pickup-type gun-dark-1)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modegud1 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modegud1 0.0 0)) ) (((pickup-type gun-dark-2)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modegud2 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modegud2 0.0 0)) ) (((pickup-type gun-dark-3)) - (set! (-> self gun mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modegud3 0.0 0))) + (set! (-> self gun mode-sound-bank) (add-setting! 'mode-sound-bank 'modegud3 0.0 0)) ) ) (none) diff --git a/test/decompiler/reference/jak3/engine/target/target-lightjak_REF.gc b/test/decompiler/reference/jak3/engine/target/target-lightjak_REF.gc index e3b015499e..1eb8726f39 100644 --- a/test/decompiler/reference/jak3/engine/target/target-lightjak_REF.gc +++ b/test/decompiler/reference/jak3/engine/target/target-lightjak_REF.gc @@ -1617,7 +1617,7 @@ (set! (-> self pending-ext-anim) (target-anim light)) (set-time! (-> self fact lightjak-start-time)) (set! (-> self fact lightjak-effect-time) (seconds 20)) - (set! (-> self lightjak mode-sound-bank) (the-as connection (add-setting! 'mode-sound-bank 'modelit 0.0 0))) + (set! (-> self lightjak mode-sound-bank) (add-setting! 'mode-sound-bank 'modelit 0.0 0)) (target-start-attack) (target-danger-set! 'get-on #f) (cond