diff --git a/decompiler/config/all-types.gc b/decompiler/config/all-types.gc index 80ce5656b0..06332c3dd3 100644 --- a/decompiler/config/all-types.gc +++ b/decompiler/config/all-types.gc @@ -11516,7 +11516,7 @@ (old-status uint64 :offset-assert 280) (prev-status uint64 :offset-assert 288) (reaction-flag uint32 :offset-assert 296) - (reaction (function collide-shape-moving collide-shape-intersect vector vector none) :offset-assert 300) + (reaction (function collide-shape-moving collide-shape-intersect vector vector uint) :offset-assert 300) (no-reaction (function collide-shape-moving collide-shape-intersect vector vector none) :offset-assert 304) (local-normal vector :inline :offset-assert 320) (surface-normal vector :inline :offset-assert 336) @@ -18755,8 +18755,8 @@ (define-extern target-attack-up (function target symbol symbol none)) (define-extern find-ground-point (function control-info vector float float vector)) -(define-extern default-collision-reaction (function collide-shape-moving collide-shape-intersect vector vector none)) ;; TODO - not completely confirmed -(define-extern simple-collision-reaction (function collide-shape-moving collide-shape-intersect none)) +(define-extern default-collision-reaction (function collide-shape-moving collide-shape-intersect vector vector uint)) ;; TODO - not completely confirmed +(define-extern simple-collision-reaction (function collide-shape-moving collide-shape-intersect vector vector uint)) (define-extern collide-shape-draw-debug-marks (function none)) (define-extern debug-report-col-stats (function int)) @@ -20100,7 +20100,7 @@ (define-extern collide-shape-moving-angle-set! (function collide-shape-moving vector vector none)) (define-extern target-collision-low-coverage (function control-info collide-shape-intersect vector (pointer uint32) (pointer uint64) (pointer symbol) uint)) ;; i think the pointers are lies - TODO (define-extern poly-find-nearest-edge (function vector (inline-array vector) vector vector vector)) -(define-extern target-collision-reaction (function control-info collide-shape-intersect vector vector none)) +(define-extern target-collision-reaction (function control-info collide-shape-intersect vector vector uint)) (define-extern target-collision-no-reaction (function control-info collide-shape-intersect vector vector none)) @@ -21667,7 +21667,7 @@ ;; - Functions -(define-extern projectile-collision-reaction (function collide-shape-moving collide-shape-intersect vector vector none)) +(define-extern projectile-collision-reaction (function collide-shape-moving collide-shape-intersect vector vector uint)) (define-extern projectile-update-velocity-space-wars (function projectile none)) (define-extern find-nearest-attackable (function vector float uint uint vector float projectile)) ;; Whatever te search returns (match from search-info) (define-extern find-ground-and-draw-shadow (function vector vector float collide-kind process float float none)) @@ -23574,7 +23574,7 @@ (define-extern spawn-mistycannon-missile (function process-tree vector vector float float float float entity none)) (define-extern angle-tracker-apply-move! (function angle-tracker float float)) (define-extern mistycannon-missile-init-by-other (function mistycannon-init-data entity none :behavior mistycannon-missile)) -(define-extern mistycannon-collision-reaction (function collide-shape-moving collide-shape-intersect none)) +(define-extern mistycannon-collision-reaction (function collide-shape-moving collide-shape-intersect vector vector uint)) (define-extern angle-tracker-get-value (function angle-tracker float)) (define-extern angle-tracker-set-value (function angle-tracker float float)) (define-extern solve-missile-tilt (function quadratic-solution float float float float symbol)) @@ -24280,7 +24280,7 @@ ;; - Functions (define-extern seagull-init-by-other (function vector int seagullflock none :behavior seagull)) -(define-extern seagull-reaction (function collide-shape-moving collide-shape-intersect none)) +(define-extern seagull-reaction (function collide-shape-moving collide-shape-intersect vector vector uint)) (define-extern seagull-post (function none :behavior seagull)) (define-extern beach-rock-trigger (function int)) @@ -27097,7 +27097,7 @@ ;; - Functions -(define-extern racer-collision-reaction (function control-info collide-shape-intersect vector vector none)) +(define-extern racer-collision-reaction (function control-info collide-shape-intersect vector vector uint)) (define-extern racer-service-slide (function none :behavior target)) (define-extern racer-xz (function float float none :behavior target)) (define-extern racer-thrust (function basic float none :behavior target)) diff --git a/goal_src/engine/collide/collide-reaction-target.gc b/goal_src/engine/collide/collide-reaction-target.gc index 6af0d99e4e..b2639497ca 100644 --- a/goal_src/engine/collide/collide-reaction-target.gc +++ b/goal_src/engine/collide/collide-reaction-target.gc @@ -5,13 +5,6 @@ ;; name in dgo: collide-reaction-target ;; dgos: GAME, ENGINE -;; TODO - for logic-target -(define-extern target-collision-reaction (function control-info collide-shape-intersect vector vector none)) -(define-extern target-collision-no-reaction (function control-info collide-shape-intersect vector vector none)) - -;; TODO - for collide-reaction-racer -(define-extern collide-shape-moving-angle-set! (function collide-shape-moving vector vector none)) ;; not confirmed - (defun collide-shape-moving-angle-set! ((arg0 collide-shape-moving) (arg1 vector) (arg2 vector)) (set! (-> arg0 surface-normal quad) (-> arg1 quad)) (set! (-> arg0 surface-angle) (vector-dot arg1 (-> arg0 dynam gravity-normal))) @@ -379,8 +372,7 @@ arg2 ) (set! (-> arg0 unknown-halfword00) (logand (+ (-> arg0 unknown-halfword00) 1) 127)) - sv-96 - (none) + (the-as uint sv-96) ) ;; definition for function target-collision-no-reaction diff --git a/goal_src/engine/collide/collide-shape-h.gc b/goal_src/engine/collide/collide-shape-h.gc index 4d311f8637..f52ba9e9cb 100644 --- a/goal_src/engine/collide/collide-shape-h.gc +++ b/goal_src/engine/collide/collide-shape-h.gc @@ -538,8 +538,8 @@ (old-status uint64 :offset-assert 280) (prev-status uint64 :offset-assert 288) (reaction-flag uint32 :offset-assert 296) - (reaction (function collide-shape-moving collide-shape-intersect vector vector none) :offset-assert 300) - (no-reaction (function collide-shape-moving collide-shape-intersect vector vector none) :offset-assert 304) + (reaction (function collide-shape-moving collide-shape-intersect vector vector uint) :offset-assert 300) + (no-reaction (function collide-shape-moving collide-shape-intersect vector vector none) :offset-assert 304) (local-normal vector :inline :offset-assert 320) (surface-normal vector :inline :offset-assert 336) (poly-normal vector :inline :offset-assert 352) diff --git a/goal_src/engine/collide/collide-shape.gc b/goal_src/engine/collide/collide-shape.gc index e9abdbbe13..4f3df579d5 100644 --- a/goal_src/engine/collide/collide-shape.gc +++ b/goal_src/engine/collide/collide-shape.gc @@ -1103,11 +1103,10 @@ ) ) (logior! (-> arg0 status) sv-80) - sv-80 - (none) + (the-as uint sv-80) ) -(defun simple-collision-reaction ((arg0 collide-shape-moving) (arg1 collide-shape-intersect)) +(defun simple-collision-reaction ((arg0 collide-shape-moving) (arg1 collide-shape-intersect) (arg2 vector) (arg3 vector)) "A much simpler collide reaction." (let ((s5-0 0)) (let ((a1-1 (new 'stack-no-clear 'vector))) @@ -1124,9 +1123,9 @@ ) (let ((v0-1 (logior s5-0 7))) (logior! (-> arg0 status) v0-1) + (the-as uint v0-1) ) ) - (none) ) (defmethod step-collison! collide-shape-moving ((obj collide-shape-moving) (arg0 vector) (arg1 vector) (arg2 float)) diff --git a/goal_src/engine/game/projectiles.gc b/goal_src/engine/game/projectiles.gc index 6186323b80..ff4467f4f2 100644 --- a/goal_src/engine/game/projectiles.gc +++ b/goal_src/engine/game/projectiles.gc @@ -170,8 +170,7 @@ ) ) (logior! (-> arg0 status) sv-80) - sv-80 - (none) + (the-as uint sv-80) ) (defpartgroup group-yellow-eco-fireball diff --git a/goal_src/engine/target/target-h.gc b/goal_src/engine/target/target-h.gc index d059cc866f..9c652801ec 100644 --- a/goal_src/engine/target/target-h.gc +++ b/goal_src/engine/target/target-h.gc @@ -28,7 +28,7 @@ ;; TODO - for target-tube (define-extern target-attacked (function symbol attack-info process process (state handle attack-info target) object :behavior target)) ;; unconfirmed, target-tube::(event target-tube-start) ;; TODO - for racer-states -(define-extern racer-collision-reaction (function control-info collide-shape-intersect vector vector none)) +(define-extern racer-collision-reaction (function control-info collide-shape-intersect vector vector uint)) ;; TODO -for target2 (define-extern target-falling-anim-trans (function none :behavior target)) ;; unconfirmed diff --git a/goal_src/levels/beach/beach-obs.gc b/goal_src/levels/beach/beach-obs.gc index 42d1b61ad2..39b9298333 100644 --- a/goal_src/levels/beach/beach-obs.gc +++ b/goal_src/levels/beach/beach-obs.gc @@ -915,9 +915,7 @@ (set! (-> self entity) arg3) (let ((s3-0 (new 'process 'collide-shape-moving self (collide-list-enum hit-by-player)))) (set! (-> s3-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s3-0 reaction) - (the-as (function collide-shape-moving collide-shape-intersect vector vector none) simple-collision-reaction) - ) + (set! (-> s3-0 reaction) simple-collision-reaction) (set! (-> s3-0 no-reaction) (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) ) diff --git a/goal_src/levels/beach/seagull.gc b/goal_src/levels/beach/seagull.gc index 633a39642a..92754e7b80 100644 --- a/goal_src/levels/beach/seagull.gc +++ b/goal_src/levels/beach/seagull.gc @@ -1276,7 +1276,7 @@ seagull-post ) -(defun seagull-reaction ((arg0 collide-shape-moving) (arg1 collide-shape-intersect)) +(defun seagull-reaction ((arg0 collide-shape-moving) (arg1 collide-shape-intersect) (arg2 vector) (arg3 vector)) (let ((s5-0 0)) (let ((a1-1 (new 'stack-no-clear 'vector))) (vector-float*! a1-1 (-> arg1 move-vec) (-> arg1 best-u)) @@ -1295,17 +1295,17 @@ (set! (-> (the-as seagull s4-1) temp-heading) (atan (-> v1-7 x) (-> v1-7 z))) (set! (-> (the-as seagull s4-1) temp-heading-time) 300) ) - (set! (-> arg0 status) (the-as uint (logior s5-0 3))) + (let ((v0-2 (logior s5-0 3))) + (set! (-> arg0 status) (the-as uint v0-2)) + (the-as uint v0-2) + ) ) - (none) ) (defbehavior seagull-init-by-other seagull ((arg0 vector) (arg1 int) (arg2 seagullflock)) (let ((s3-0 (new 'process 'collide-shape-moving self (collide-list-enum hit-by-player)))) (set! (-> s3-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s3-0 reaction) - (the-as (function collide-shape-moving collide-shape-intersect vector vector none) seagull-reaction) - ) + (set! (-> s3-0 reaction) seagull-reaction) (set! (-> s3-0 no-reaction) (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) ) diff --git a/goal_src/levels/misty/mistycannon.gc b/goal_src/levels/misty/mistycannon.gc index c766bc3c6a..8621522f31 100644 --- a/goal_src/levels/misty/mistycannon.gc +++ b/goal_src/levels/misty/mistycannon.gc @@ -1041,7 +1041,7 @@ (the-as (function none :behavior mistycannon-missile) ja-post) ) -(defun mistycannon-collision-reaction ((arg0 collide-shape-moving) (arg1 collide-shape-intersect)) +(defun mistycannon-collision-reaction ((arg0 collide-shape-moving) (arg1 collide-shape-intersect) (arg2 vector) (arg3 vector)) (let ((s5-0 0)) (let ((a1-1 (new 'stack-no-clear 'vector))) (vector-float*! a1-1 (-> arg1 move-vec) (-> arg1 best-u)) @@ -1056,9 +1056,9 @@ (vector-float*! (-> arg0 transv) (-> arg0 transv) 0.15) (let ((v0-1 (logior s5-0 7))) (logior! (-> arg0 status) v0-1) + (the-as uint v0-1) ) ) - (none) ) (deftype mistycannon-init-data (structure) @@ -1081,12 +1081,7 @@ (set! (-> self entity) arg1) (let ((s5-0 (new 'process 'collide-shape-moving self (collide-list-enum hit-by-player)))) (set! (-> s5-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s5-0 reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - mistycannon-collision-reaction - ) - ) + (set! (-> s5-0 reaction) mistycannon-collision-reaction) (set! (-> s5-0 no-reaction) (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) ) diff --git a/goal_src/levels/racer_common/collide-reaction-racer.gc b/goal_src/levels/racer_common/collide-reaction-racer.gc index 4d41ca29fa..3560ba6d2e 100644 --- a/goal_src/levels/racer_common/collide-reaction-racer.gc +++ b/goal_src/levels/racer_common/collide-reaction-racer.gc @@ -192,8 +192,7 @@ arg2 ) (set! (-> arg0 unknown-halfword00) (logand (+ (-> arg0 unknown-halfword00) 1) 127)) - sv-96 - (none) + (the-as uint sv-96) ) diff --git a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc index 746affb00c..23fe0d66a0 100644 --- a/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc +++ b/test/decompiler/reference/engine/collide/collide-shape-h_REF.gc @@ -464,7 +464,7 @@ (old-status uint64 :offset-assert 280) (prev-status uint64 :offset-assert 288) (reaction-flag uint32 :offset-assert 296) - (reaction (function collide-shape-moving collide-shape-intersect vector vector none) :offset-assert 300) + (reaction (function collide-shape-moving collide-shape-intersect vector vector uint) :offset-assert 300) (no-reaction (function collide-shape-moving collide-shape-intersect vector vector none) :offset-assert 304) (local-normal vector :inline :offset-assert 320) (surface-normal vector :inline :offset-assert 336) diff --git a/test/decompiler/reference/engine/draw/drawable_REF.gc b/test/decompiler/reference/engine/draw/drawable_REF.gc index 21f40dc2b0..8595becad7 100644 --- a/test/decompiler/reference/engine/draw/drawable_REF.gc +++ b/test/decompiler/reference/engine/draw/drawable_REF.gc @@ -929,7 +929,7 @@ (when (nonzero? (-> *merc-globals* first)) (let ((s4-1 (-> *display* frames (-> *display* on-screen) frame global-buf base))) (let ((a0-25 (-> (the-as (pointer uint32) (+ (the-as uint *level*) (* 2608 arg2) (* arg3 32))) 69))) - (generic-merc-add-to-cue a0-25) + (generic-merc-add-to-cue (the-as basic a0-25)) ) (let ((a0-26 *dma-mem-usage*)) (when (nonzero? a0-26) diff --git a/test/decompiler/reference/engine/game/projectiles_REF.gc b/test/decompiler/reference/engine/game/projectiles_REF.gc index 6aba66363e..d89f1b2f25 100644 --- a/test/decompiler/reference/engine/game/projectiles_REF.gc +++ b/test/decompiler/reference/engine/game/projectiles_REF.gc @@ -117,7 +117,7 @@ ) ;; definition for function projectile-collision-reaction -;; INFO: Return type mismatch int vs none. +;; INFO: Return type mismatch int vs uint. ;; Used lq/sq (defun projectile-collision-reaction ((arg0 collide-shape-moving) (arg1 collide-shape-intersect) (arg2 vector) (arg3 vector)) (local-vars (sv-64 vector) (sv-68 vector) (sv-72 matrix) (sv-80 int) (sv-224 symbol)) @@ -187,8 +187,7 @@ ) ) (logior! (-> arg0 status) sv-80) - sv-80 - (none) + (the-as uint sv-80) ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/engine/gfx/generic/generic-vu1_REF.gc b/test/decompiler/reference/engine/gfx/generic/generic-vu1_REF.gc index 9c7c7450f2..9b94f4361e 100644 --- a/test/decompiler/reference/engine/gfx/generic/generic-vu1_REF.gc +++ b/test/decompiler/reference/engine/gfx/generic/generic-vu1_REF.gc @@ -137,8 +137,8 @@ ;; INFO: Return type mismatch int vs none. (defun generic-reset-buffers ((arg0 dma-buffer) (arg1 int) (arg2 int)) (when (logtest? *vu1-enable-user* (vu1-renderer-mask generic)) - (let ((a3-0 (new 'static 'vector :x (the-as float #x345) :y (the-as float #x363))) - (v1-3 (new 'static 'vector :y (the-as float #x117) :z (the-as float #x22e))) + (let ((a3-0 (new 'static 'vector4w :x #x345 :y #x363)) + (v1-3 (new 'static 'vector4w :y #x117 :z #x22e)) ) (let* ((t0-0 arg0) (t1-0 (the-as object (-> t0-0 base))) @@ -153,10 +153,10 @@ (let ((t0-1 (-> arg0 base))) (set! (-> (the-as (pointer int32) t0-1)) 0) (s.w! (+ t0-1 4) 0) - (let ((a1-3 (-> a3-0 data arg1))) + (let ((a1-3 (-> (the-as (pointer int32) (+ (the-as uint a3-0) (* arg1 4)))))) (s.w! (+ t0-1 8) a1-3) ) - (let ((v1-5 (-> v1-3 data arg2))) + (let ((v1-5 (-> (the-as (pointer int32) (+ (the-as uint v1-3) (* arg2 4)))))) (s.w! (+ t0-1 12) v1-5) ) (s.w! (+ t0-1 16) 0) @@ -172,7 +172,3 @@ 0 (none) ) - - - - diff --git a/test/decompiler/reference/engine/gfx/hw/gs_REF.gc b/test/decompiler/reference/engine/gfx/hw/gs_REF.gc index 3b81fa50a3..faf0fd8af1 100644 --- a/test/decompiler/reference/engine/gfx/hw/gs_REF.gc +++ b/test/decompiler/reference/engine/gfx/hw/gs_REF.gc @@ -743,9 +743,9 @@ ;; definition for method 3 of type gs-gif-tag (defmethod inspect gs-gif-tag ((obj gs-gif-tag)) (format #t "[~8x] ~A~%" obj 'gs-gif-tag) - (format #t "~Tqword: #~%" (&-> obj qword)) - (format #t "~Tdword[2] @ #x~X~%" (&-> obj qword)) - (format #t "~Tword[4] @ #x~X~%" (&-> obj qword)) + (format #t "~Tqword: #~%" (&-> obj tag)) + (format #t "~Tdword[2] @ #x~X~%" (&-> obj tag)) + (format #t "~Tword[4] @ #x~X~%" (&-> obj tag)) (format #t "~Ttag: ~D~%" (-> obj tag)) (format #t "~Tregs: ~D~%" (-> obj regs)) obj @@ -888,7 +888,7 @@ (defmethod inspect gif-packet ((obj gif-packet)) (format #t "[~8x] ~A~%" obj (-> obj type)) (format #t "~Treg-count: ~D~%" (-> obj reg-count)) - (format #t "~Tgif-tag0: #x~X~%" (-> obj gif-tag qword)) + (format #t "~Tgif-tag0: #x~X~%" (-> obj gif-tag0)) (format #t "~Targs[1] @ #x~X~%" (-> obj args)) obj ) diff --git a/test/decompiler/reference/engine/ui/text-h_REF.gc b/test/decompiler/reference/engine/ui/text-h_REF.gc index 91517cb686..c8de1a6002 100644 --- a/test/decompiler/reference/engine/ui/text-h_REF.gc +++ b/test/decompiler/reference/engine/ui/text-h_REF.gc @@ -3,8 +3,8 @@ ;; definition of type game-text (deftype game-text (structure) - ((id uint32 :offset-assert 0) - (text string :offset-assert 4) + ((id game-text-id :offset-assert 0) + (text string :offset-assert 4) ) :pack-me :method-count-assert 9 diff --git a/test/decompiler/reference/engine/ui/text_REF.gc b/test/decompiler/reference/engine/ui/text_REF.gc index 38ac23fe44..283a948276 100644 --- a/test/decompiler/reference/engine/ui/text_REF.gc +++ b/test/decompiler/reference/engine/ui/text_REF.gc @@ -72,7 +72,7 @@ ) (let ((t0-0 -1)) (while (and (!= (-> obj data v1-2 id) arg0) (!= v1-2 t0-0)) - (if (< (the-as uint arg0) (-> obj data v1-2 id)) + (if (< (the-as uint arg0) (the-as uint (-> obj data v1-2 id))) (set! a3-0 v1-2) (set! a1-1 v1-2) ) @@ -353,7 +353,7 @@ ;; WARN: Stack slot offset 128 signed mismatch ;; WARN: Stack slot offset 132 signed mismatch ;; WARN: Stack slot offset 164 signed mismatch -(defun print-game-text ((str string) (font-ctxt font-context) (alpha symbol) (offset-thing int) (arg4 int)) +(defun print-game-text ((str string) (font-ctxt font-context) (opaque symbol) (alpha int) (line-height int)) (local-vars (sv-112 float) (sv-116 float) @@ -428,7 +428,7 @@ (set! sv-156 (+ (-> gp-0 origin y) (-> font-ctxt height))) (set! sv-160 (* (get-string-length " " gp-0) (-> *video-parms* relative-x-scale))) (set! sv-164 (* (if (logtest? (-> gp-0 flags) (font-flags large)) - (the float arg4) + (the float line-height) 14.0 ) sv-136 @@ -505,11 +505,11 @@ (if (nonzero? (-> *game-text-line* data 0)) (set! sv-168 (+ sv-168 1)) ) - (when (not alpha) + (when (not opaque) (let* ((s1-1 (-> *display* frames (-> *display* on-screen) frame global-buf)) (s2-1 (-> s1-1 base)) ) - (set-font-color-alpha (-> font-ctxt color) offset-thing) + (set-font-color-alpha (-> font-ctxt color) alpha) (draw-string *game-text-line* s1-1 gp-0) (set-font-color-alpha (-> font-ctxt color) 128) (set! (-> gp-0 color) (-> *font-work* last-color)) diff --git a/test/decompiler/reference/levels/beach/beach-obs_REF.gc b/test/decompiler/reference/levels/beach/beach-obs_REF.gc index 4837a62e66..ef72066ea1 100644 --- a/test/decompiler/reference/levels/beach/beach-obs_REF.gc +++ b/test/decompiler/reference/levels/beach/beach-obs_REF.gc @@ -986,9 +986,7 @@ (set! (-> self entity) arg3) (let ((s3-0 (new 'process 'collide-shape-moving self (collide-list-enum hit-by-player)))) (set! (-> s3-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s3-0 reaction) - (the-as (function collide-shape-moving collide-shape-intersect vector vector none) simple-collision-reaction) - ) + (set! (-> s3-0 reaction) simple-collision-reaction) (set! (-> s3-0 no-reaction) (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) ) diff --git a/test/decompiler/reference/levels/beach/seagull_REF.gc b/test/decompiler/reference/levels/beach/seagull_REF.gc index e630b56128..1ed9cf861a 100644 --- a/test/decompiler/reference/levels/beach/seagull_REF.gc +++ b/test/decompiler/reference/levels/beach/seagull_REF.gc @@ -1340,8 +1340,8 @@ ) ;; definition for function seagull-reaction -;; INFO: Return type mismatch int vs none. -(defun seagull-reaction ((arg0 collide-shape-moving) (arg1 collide-shape-intersect)) +;; INFO: Return type mismatch int vs uint. +(defun seagull-reaction ((arg0 collide-shape-moving) (arg1 collide-shape-intersect) (arg2 vector) (arg3 vector)) (let ((s5-0 0)) (let ((a1-1 (new 'stack-no-clear 'vector))) (vector-float*! a1-1 (-> arg1 move-vec) (-> arg1 best-u)) @@ -1360,9 +1360,11 @@ (set! (-> (the-as seagull s4-1) temp-heading) (atan (-> v1-7 x) (-> v1-7 z))) (set! (-> (the-as seagull s4-1) temp-heading-time) 300) ) - (set! (-> arg0 status) (the-as uint (logior s5-0 3))) + (let ((v0-2 (logior s5-0 3))) + (set! (-> arg0 status) (the-as uint v0-2)) + (the-as uint v0-2) + ) ) - (none) ) ;; definition for function seagull-init-by-other @@ -1371,9 +1373,7 @@ (defbehavior seagull-init-by-other seagull ((arg0 vector) (arg1 int) (arg2 seagullflock)) (let ((s3-0 (new 'process 'collide-shape-moving self (collide-list-enum hit-by-player)))) (set! (-> s3-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s3-0 reaction) - (the-as (function collide-shape-moving collide-shape-intersect vector vector none) seagull-reaction) - ) + (set! (-> s3-0 reaction) seagull-reaction) (set! (-> s3-0 no-reaction) (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) ) diff --git a/test/decompiler/reference/levels/misty/mistycannon_REF.gc b/test/decompiler/reference/levels/misty/mistycannon_REF.gc index ba66e29619..da7960e084 100644 --- a/test/decompiler/reference/levels/misty/mistycannon_REF.gc +++ b/test/decompiler/reference/levels/misty/mistycannon_REF.gc @@ -1099,8 +1099,8 @@ ) ;; definition for function mistycannon-collision-reaction -;; INFO: Return type mismatch int vs none. -(defun mistycannon-collision-reaction ((arg0 collide-shape-moving) (arg1 collide-shape-intersect)) +;; INFO: Return type mismatch int vs uint. +(defun mistycannon-collision-reaction ((arg0 collide-shape-moving) (arg1 collide-shape-intersect) (arg2 vector) (arg3 vector)) (let ((s5-0 0)) (let ((a1-1 (new 'stack-no-clear 'vector))) (vector-float*! a1-1 (-> arg1 move-vec) (-> arg1 best-u)) @@ -1115,9 +1115,9 @@ (vector-float*! (-> arg0 transv) (-> arg0 transv) 0.15) (let ((v0-1 (logior s5-0 7))) (logior! (-> arg0 status) v0-1) + (the-as uint v0-1) ) ) - (none) ) ;; definition of type mistycannon-init-data @@ -1155,12 +1155,7 @@ (set! (-> self entity) arg1) (let ((s5-0 (new 'process 'collide-shape-moving self (collide-list-enum hit-by-player)))) (set! (-> s5-0 dynam) (copy *standard-dynamics* 'process)) - (set! (-> s5-0 reaction) - (the-as - (function collide-shape-moving collide-shape-intersect vector vector none) - mistycannon-collision-reaction - ) - ) + (set! (-> s5-0 reaction) mistycannon-collision-reaction) (set! (-> s5-0 no-reaction) (the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing) ) diff --git a/test/decompiler/reference/levels/racer_common/collide-reaction-racer_REF.gc b/test/decompiler/reference/levels/racer_common/collide-reaction-racer_REF.gc index e745113fc9..d31c97d269 100644 --- a/test/decompiler/reference/levels/racer_common/collide-reaction-racer_REF.gc +++ b/test/decompiler/reference/levels/racer_common/collide-reaction-racer_REF.gc @@ -2,7 +2,7 @@ (in-package goal) ;; definition for function racer-collision-reaction -;; INFO: Return type mismatch int vs none. +;; INFO: Return type mismatch int vs uint. ;; Used lq/sq (defun racer-collision-reaction ((arg0 control-info) (arg1 collide-shape-intersect) (arg2 vector) (arg3 vector)) (local-vars (sv-80 vector) (sv-84 vector) (sv-88 (inline-array vector)) (sv-96 int) (sv-104 int)) @@ -189,6 +189,5 @@ arg2 ) (set! (-> arg0 unknown-halfword00) (logand (+ (-> arg0 unknown-halfword00) 1) 127)) - sv-96 - (none) + (the-as uint sv-96) ) diff --git a/test/offline/config.jsonc b/test/offline/config.jsonc index 69a37feba1..8b2f85322c 100644 --- a/test/offline/config.jsonc +++ b/test/offline/config.jsonc @@ -229,7 +229,9 @@ "(method 19 process-drawable)", - "curve-evaluate!" + "curve-evaluate!", + + "generic-reset-buffers" ], "skip_compile_states": {