;;-*-Lisp-*- (in-package goal) ;; definition for function target-generic-event-handler ;; INFO: Return type mismatch none vs object. ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 37] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 39] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 60] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 69] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 73] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 151] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 168] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 185] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 196] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 201] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 222] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 292] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 351] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 366] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 408] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 420] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 427] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 451] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 465] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 472] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 482] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 524] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 552] ;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 563] ;; Used lq/sq (defbehavior target-generic-event-handler target ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (local-vars (v0-0 none)) (let ((v1-0 arg2)) (the-as object (cond ((= v1-0 'get-pickup) (when (zero? (logand (-> self state-flags) #x8000)) (let ((s4-0 (-> arg3 param 0)) (f28-0 (the-as float (-> arg3 param 1))) ) (if (!= (pickup-collectable! (-> self fact-info-target) (the-as pickup-type s4-0) (the-as float 0.0) (the-as handle #f) ) (pickup-collectable! (-> self fact-info-target) (the-as pickup-type s4-0) f28-0 (process->handle arg0)) ) #t 'full ) ) ) ) ((= v1-0 'reset-pickup) (reset! (-> self fact-info-target) (the-as symbol (-> arg3 param 0))) ) ((= v1-0 'reset-collide) (cond ((-> self control unknown-symbol00) (target-collide-set! (-> self control unknown-symbol00) (-> self control unknown-float90)) ) ((-> self control unknown-symbol30) (target-danger-set! (-> self control unknown-symbol30) #f) ) ) ) ((= v1-0 'level-deactivate) #f ) ((= v1-0 'level-enter) (let ((v1-21 (level-get *level* (the-as symbol (-> arg3 param 0))))) (when v1-21 (let ((s5-1 (-> v1-21 info))) (let ((v1-22 (-> s5-1 buzzer))) (if (zero? v1-22) (set! (-> self fact-info-target buzzer) 0.0) (set! (-> self fact-info-target buzzer) (pickup-collectable! (-> self fact-info-target) (pickup-type buzzer) (the float (logior -65536 v1-22)) (the-as handle #f) ) ) ) ) (if (and (zero? (-> *game-info* enter-level-time (-> s5-1 index))) (>= (-> *level-task-data-remap* length) (-> s5-1 index)) ) (set! (-> *game-info* enter-level-time (-> *level-task-data-remap* (+ (-> s5-1 index) -1))) (-> *display* base-frame-counter) ) ) ) (send-event (ppointer->process (-> *hud-parts* buzzers)) 'sync) (format #t "GAMEPLAY: enter ~A~%" (-> arg3 param 0)) ) ) ) ((= v1-0 'get-attack-count) (set! v0-0 (the-as none (+ (-> self control unknown-dword51) (-> arg3 param 0)))) (set! (-> self control unknown-dword51) (the-as int v0-0)) v0-0 ) ((= v1-0 'continue) (go target-continue (the-as continue-point (-> arg3 param 0))) ) ((= v1-0 'query) (case (-> arg3 param 0) (('powerup) (and (= (-> self fact-info-target eco-type) (-> arg3 param 1)) (< 0.0 (-> self fact-info-target eco-level))) ) (('pickup) (pickup-collectable! (-> self fact-info-target) (the-as pickup-type (-> arg3 param 1)) (the-as float 0.0) (the-as handle #f) ) ) (('ground-height) (target-height-above-ground) ) ) ) ((= v1-0 'trans) (case (-> arg3 param 0) (('save) (set! (-> self alt-cam-pos quad) (-> self control trans quad)) (set! (-> self state-flags) (logior #x20000 (-> self state-flags))) (mem-copy! (the-as pointer (-> arg3 param 1)) (the-as pointer (-> self control trans)) 48) ) (('restore) (set! (-> self state-flags) (logand -131073 (-> self state-flags))) (let ((gp-1 (-> arg3 param 1))) (move-to-point! (-> self control) (the-as vector (+ gp-1 0))) (quaternion-copy! (-> self control quat) (the-as quaternion (+ gp-1 16))) ) (rot->dir-targ! (-> self control)) (logior! (-> self control status) 7) (set! v0-0 (the-as none (-> *display* base-frame-counter))) (set! (-> self control unknown-dword11) (the-as time-frame v0-0)) v0-0 ) (('reset) (set! v0-0 (the-as none (logand -131073 (-> self state-flags)))) (set! (-> self state-flags) (the-as uint v0-0)) v0-0 ) ) ) ((= v1-0 'effect) (target-powerup-effect (the-as symbol (-> arg3 param 0))) ) ((= v1-0 'do-effect) (dummy-10 (-> self skel effect) (the-as symbol (-> arg3 param 0)) (the-as float (-> arg3 param 1)) -1) (if (-> self sidekick) (dummy-10 (-> self sidekick 0 skel effect) (the-as symbol (-> arg3 param 0)) (the-as float (-> arg3 param 1)) -1 ) ) ) ((= v1-0 'neck) (set! (-> self neck flex-blend) (the-as float (-> arg3 param 0))) (cond ((-> arg3 param 1) (set! (-> self state-flags) (logior #x40000 (-> self state-flags))) (set! (-> self alt-neck-pos quad) (-> (the-as vector (-> arg3 param 1)) quad)) (look-at-enemy! (-> self neck) (-> self alt-neck-pos) 'force arg0) ) (else (set! v0-0 (the-as none (logand -262145 (-> self state-flags)))) (set! (-> self state-flags) (the-as uint v0-0)) v0-0 ) ) ) ((= v1-0 'sidekick) (cond ((and (-> arg3 param 0) (not (-> self sidekick))) (let ((gp-2 (get-process *default-dead-pool* sidekick #x4000))) (set! v0-0 (when gp-2 (let ((t9-21 (method-of-type sidekick activate))) (t9-21 (the-as sidekick gp-2) self 'sidekick (the-as pointer #x70004000)) ) (run-now-in-process gp-2 init-sidekick) (-> gp-2 ppointer) ) ) ) (set! (-> self sidekick) (the-as (pointer sidekick) v0-0)) v0-0 ) ((and (not (-> arg3 param 0)) (-> self sidekick)) (deactivate (-> self sidekick 0)) (set! (-> self sidekick) (the-as (pointer sidekick) #f)) #f ) ) ) ((= v1-0 'blend-shape) (if (-> arg3 param 0) (logior! (-> self skel status) (janim-status blerc)) (logclear! (-> self skel status) (janim-status blerc)) ) (let ((v1-105 (new 'stack-no-clear 'event-message-block))) (set! (-> v1-105 from) arg0) (set! (-> v1-105 num-params) arg1) (set! (-> v1-105 message) arg2) (set! (-> v1-105 param 0) (-> arg3 param 0)) (set! (-> v1-105 param 1) (-> arg3 param 1)) (set! (-> v1-105 param 2) (-> arg3 param 2)) (set! (-> v1-105 param 3) (-> arg3 param 3)) (set! (-> v1-105 param 4) (-> arg3 param 4)) (set! (-> v1-105 param 5) (-> arg3 param 5)) (set! (-> v1-105 param 6) (-> arg3 param 6)) (send-event-function (ppointer->process (-> self sidekick)) v1-105) ) ) ((= v1-0 'shadow) (cond ((-> arg3 param 0) (let ((v1-108 (-> self draw shadow-ctrl))) (set! (-> v1-108 settings flags) (logand -33 (-> v1-108 settings flags))) ) 0 ) (else (let ((v1-110 (-> self draw shadow-ctrl))) (logior! (-> v1-110 settings flags) 32) ) 0 ) ) ) ((= v1-0 'rotate-y-angle) (quaternion-rotate-y! (-> self control unknown-quaternion00) (-> self control unknown-quaternion00) (the-as float (-> arg3 param 0)) ) (if (= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0) (rot->dir-targ! (-> self control)) ) ) ((= v1-0 'touched) (send-event arg0 'touch (-> arg3 param 0)) ) ((= v1-0 'dry) (let ((f0-9 0.0)) (set! (-> self water drip-wetness) f0-9) f0-9 ) ) ((= v1-0 'reset-height) (set! (-> self control unknown-vector52 quad) (-> self control trans quad)) #f ) ((= v1-0 'draw) (if (-> arg3 param 0) (logclear! (-> self draw status) (draw-status skip-bones)) (logior! (-> self draw status) (draw-status skip-bones)) ) (let ((v1-132 (new 'stack-no-clear 'event-message-block))) (set! (-> v1-132 from) arg0) (set! (-> v1-132 num-params) arg1) (set! (-> v1-132 message) arg2) (set! (-> v1-132 param 0) (-> arg3 param 0)) (set! (-> v1-132 param 1) (-> arg3 param 1)) (set! (-> v1-132 param 2) (-> arg3 param 2)) (set! (-> v1-132 param 3) (-> arg3 param 3)) (set! (-> v1-132 param 4) (-> arg3 param 4)) (set! (-> v1-132 param 5) (-> arg3 param 5)) (set! (-> v1-132 param 6) (-> arg3 param 6)) (send-event-function (ppointer->process (-> self manipy)) v1-132) ) ) ((= v1-0 'no-load-wait) (set! v0-0 (the-as none (+ (-> *display* base-frame-counter) (the-as time-frame (-> arg3 param 0))))) (set! (-> self no-load-wait) (the-as time-frame v0-0)) v0-0 ) ((= v1-0 'no-look-around) (set! (-> self no-look-around-wait) (+ (-> *display* base-frame-counter) (the-as time-frame (-> arg3 param 0))) ) (if (= (-> self next-state name) 'target-look-around) (send-event self 'end-mode) ) ) ((= v1-0 'change-state) (go (the-as (state object object object object target) (-> arg3 param 0)) (-> arg3 param 1) (-> arg3 param 2) (-> arg3 param 3) (-> arg3 param 4) ) ) ) ) ) ) ;; definition for function target-shoved (defbehavior target-shoved target ((arg0 meters) (arg1 meters) (arg2 process) (arg3 (state object object target))) (let ((s5-0 (new 'static 'attack-info))) (set! (-> s5-0 attacker) (process->handle arg2)) (set! (-> s5-0 shove-back) arg0) (set! (-> s5-0 shove-up) arg1) (set! (-> s5-0 angle) (if (zero? (logand (logior (-> self control status) (-> self control old-status)) 1)) 'air 'shove ) ) (set! (-> s5-0 mask) (the-as uint 2248)) (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.1)) (go arg3 'shove s5-0) ) ) ;; definition for function get-intersect-point ;; Used lq/sq (defun get-intersect-point ((arg0 vector) (arg1 touching-prims-entry) (arg2 control-info) (arg3 process)) (let ((a0-2 (get-touched-tri arg1 arg2 (the-as touching-shapes-entry arg3)))) (if a0-2 (set! (-> arg0 quad) (-> a0-2 intersect quad)) (get-middle-of-bsphere-overlap arg1 arg0) ) ) arg0 ) ;; definition for function target-attacked (defbehavior target-attacked target ((arg0 symbol) (arg1 attack-info) (arg2 process) (arg3 process) (arg4 (state handle attack-info target))) (when (zero? (logand (-> self state-flags) 8)) (cond ((or (logtest? (-> self state-flags) 112) (and (logtest? (-> arg1 mask) 32) (= (-> arg1 mode) 'darkeco) (and (and (= (-> self fact-info-target eco-type) (pickup-type eco-red)) (>= (-> self fact-info-target eco-level) 1.0) ) (logtest? #x100002 (-> self state-flags)) ) ) ) (case arg0 (('attack-or-shove) ) (('attack-invinc) (set! arg0 'attack) ) (else (return #f) ) ) ) (else (case arg0 (('attack-or-shove 'attack-invinc) (set! arg0 'attack) ) ) ) ) (mem-copy! (the-as pointer (-> self attack-info-rec)) (the-as pointer arg1) 104) (when arg3 (let ((a1-2 ((method-of-type touching-shapes-entry prims-touching?) (the-as touching-shapes-entry arg3) (-> self control) (the-as uint -1) ) ) ) (when a1-2 (get-intersect-point (-> self attack-info-rec intersection) a1-2 (-> self control) arg3) (logior! (-> self attack-info-rec mask) 4) ) ) ) (set! (-> self attack-info-rec prev-state) (-> self state)) (logior! (-> self attack-info-rec mask) 8192) (when (zero? (logand (-> self attack-info-rec mask) 8)) (set! (-> self attack-info-rec attacker) (process->handle arg2)) (logior! (-> self attack-info-rec mask) 8) ) (cond ((and (logtest? (-> self attack-info-rec mask) 32) (and (= (-> self attack-info-rec mode) 'damage) (not (and (= (-> self game mode) 'play) (>= 1.0 (-> self fact-info-target health)))) ) ) (pickup-collectable! (-> self fact-info-target) (pickup-type eco-green) (- (-> *FACT-bank* health-single-inc)) (the-as handle #f) ) (let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000))) (when gp-1 (let ((t9-5 (method-of-type part-tracker activate))) (t9-5 (the-as part-tracker gp-1) self 'part-tracker (the-as pointer #x70004000)) ) (run-now-in-process gp-1 part-tracker-init (-> *part-group-id-table* 1) -1 #f #f #f (if (logtest? (-> self attack-info-rec mask) 4) (-> self attack-info-rec intersection) (-> self control root-prim prim-core) ) ) (-> gp-1 ppointer) ) ) (target-timed-invulnerable (if (logtest? (-> self attack-info-rec mask) 16) (-> self attack-info-rec invinc-time) (-> *TARGET-bank* hit-invulnerable-timeout) ) self ) (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 255 (seconds 0.5)) (sound-play-by-name (static-sound-name "oof") (new-sound-id) 1024 0 0 1 #t) #t ) (else (logior! (-> self state-flags) 8) (if (and (= (-> self game mode) 'play) (and (>= 1.0 (-> self fact-info-target health)) (= arg0 'attack))) (logior! (-> self state-flags) #x8000) ) (go arg4 (the-as handle arg0) (-> self attack-info-rec)) ) ) ) ) ;; definition for function target-send-attack ;; INFO: Return type mismatch object vs symbol. ;; Used lq/sq (defbehavior target-send-attack target ((arg0 process) (arg1 uint) (arg2 uint) (arg3 int) (arg4 int)) (local-vars (sv-96 touching-prims-entry) (sv-128 touching-prims-entry) (sv-176 touching-prims-entry) (sv-224 int) (sv-240 symbol) (sv-256 symbol) (sv-272 symbol) (sv-288 int) (sv-304 symbol) (sv-320 symbol) (sv-336 symbol) (sv-352 int) (sv-368 symbol) (sv-384 symbol) (sv-400 symbol) (sv-416 int) (sv-432 symbol) (sv-448 symbol) (sv-464 symbol) (sv-480 int) (sv-496 symbol) (sv-512 symbol) (sv-528 symbol) ) (let ((v1-0 (new 'stack-no-clear 'event-message-block))) (set! (-> v1-0 from) self) (set! (-> v1-0 num-params) 4) (set! (-> v1-0 message) 'attack) (set! (-> v1-0 param 0) arg2) (set! (-> v1-0 param 1) arg1) (set! (-> v1-0 param 2) (the-as uint arg3)) (set! (-> v1-0 param 3) (the-as uint arg4)) (let ((gp-0 (send-event-function arg0 v1-0))) (when (and gp-0 (!= gp-0 'push)) (let ((v1-5 (-> self control unknown-symbol30))) (cond ((or (= v1-5 'spin) (= v1-5 'spin-air)) (set! sv-96 ((method-of-type touching-shapes-entry prims-touching?) (the-as touching-shapes-entry arg2) (-> self control) (the-as uint 64) ) ) (cond (sv-96 (let ((s4-0 (get-process *default-dead-pool* part-tracker #x4000))) (when s4-0 (let ((t9-3 (method-of-type part-tracker activate))) (t9-3 (the-as part-tracker s4-0) self 'part-tracker (the-as pointer #x70004000)) ) (let ((s3-0 run-function-in-process) (s2-0 s4-0) (s1-0 part-tracker-init) (s0-0 (-> *part-group-id-table* 4)) ) (set! sv-224 -1) (set! sv-240 (the-as symbol #f)) (set! sv-256 (the-as symbol #f)) (set! sv-272 (the-as symbol #f)) (let ((t3-0 (get-intersect-point (new 'stack-no-clear 'vector) sv-96 (-> self control) (the-as process arg2)))) ((the-as (function object object object object object object object object none) s3-0) s2-0 s1-0 s0-0 sv-224 sv-240 sv-256 sv-272 t3-0 ) ) ) (-> s4-0 ppointer) ) ) ) (else (dummy-10 (-> self skel effect) 'group-spin-hit (the-as float -1.0) 74) ) ) (dummy-12 (-> self skel effect) (-> self control unknown-symbol30) (the-as float -1.0) 74 #f (static-sound-name "spin-hit") ) (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 127 (seconds 0.2)) ) ((= v1-5 'punch) (set! sv-128 ((method-of-type touching-shapes-entry prims-touching?) (the-as touching-shapes-entry arg2) (-> self control) (the-as uint 64) ) ) (cond (sv-128 (let ((s4-1 (get-process *default-dead-pool* part-tracker #x4000))) (when s4-1 (let ((t9-11 (method-of-type part-tracker activate))) (t9-11 (the-as part-tracker s4-1) self 'part-tracker (the-as pointer #x70004000)) ) (let ((s3-1 run-function-in-process) (s2-1 s4-1) (s1-1 part-tracker-init) (s0-1 (-> *part-group-id-table* 5)) ) (set! sv-288 -1) (set! sv-304 (the-as symbol #f)) (set! sv-320 (the-as symbol #f)) (set! sv-336 (the-as symbol #f)) (let ((t3-1 (get-intersect-point (new 'stack-no-clear 'vector) sv-128 (-> self control) (the-as process arg2)))) ((the-as (function object object object object object object object object none) s3-1) s2-1 s1-1 s0-1 sv-288 sv-304 sv-320 sv-336 t3-1 ) ) ) (-> s4-1 ppointer) ) ) ) ((let ((v0-14 ((method-of-type touching-shapes-entry prims-touching?) (the-as touching-shapes-entry arg2) (-> self control) (the-as uint 32) ) ) ) (set! sv-128 v0-14) v0-14 ) (let ((s4-2 (get-process *default-dead-pool* part-tracker #x4000))) (when s4-2 (let ((t9-16 (method-of-type part-tracker activate))) (t9-16 (the-as part-tracker s4-2) self 'part-tracker (the-as pointer #x70004000)) ) (let ((s3-2 run-function-in-process) (s2-2 s4-2) (s1-2 part-tracker-init) (s0-2 (-> *part-group-id-table* 5)) ) (set! sv-352 -1) (set! sv-368 (the-as symbol #f)) (set! sv-384 (the-as symbol #f)) (set! sv-400 (the-as symbol #f)) (let ((t3-2 (get-intersect-point (new 'stack-no-clear 'vector) sv-128 (-> self control) (the-as process arg2)))) ((the-as (function object object object object object object object object none) s3-2) s2-2 s1-2 s0-2 sv-352 sv-368 sv-384 sv-400 t3-2 ) ) ) (-> s4-2 ppointer) ) ) ) ) (dummy-12 (-> self skel effect) (-> self control unknown-symbol30) (the-as float -1.0) 23 #f (static-sound-name "punch-hit") ) (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 (seconds 0.1)) ) ((= v1-5 'flip) (dummy-12 (-> self skel effect) (-> self control unknown-symbol30) (the-as float -1.0) 74 #f (static-sound-name "punch-hit") ) (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 127 (seconds 0.1)) ) ((= v1-5 'uppercut) (set! sv-176 ((method-of-type touching-shapes-entry prims-touching?) (the-as touching-shapes-entry arg2) (-> self control) (the-as uint 64) ) ) (cond (sv-176 (let ((s4-3 (get-process *default-dead-pool* part-tracker #x4000))) (when s4-3 (let ((t9-25 (method-of-type part-tracker activate))) (t9-25 (the-as part-tracker s4-3) self 'part-tracker (the-as pointer #x70004000)) ) (let ((s3-3 run-function-in-process) (s2-3 s4-3) (s1-3 part-tracker-init) (s0-3 (-> *part-group-id-table* 5)) ) (set! sv-416 -1) (set! sv-432 (the-as symbol #f)) (set! sv-448 (the-as symbol #f)) (set! sv-464 (the-as symbol #f)) (let ((t3-3 (get-intersect-point (new 'stack-no-clear 'vector) sv-176 (-> self control) (the-as process arg2)))) ((the-as (function object object object object object object object object none) s3-3) s2-3 s1-3 s0-3 sv-416 sv-432 sv-448 sv-464 t3-3 ) ) ) (-> s4-3 ppointer) ) ) ) ((let ((v0-26 ((method-of-type touching-shapes-entry prims-touching?) (the-as touching-shapes-entry arg2) (-> self control) (the-as uint 32) ) ) ) (set! sv-176 v0-26) v0-26 ) (let ((s4-4 (get-process *default-dead-pool* part-tracker #x4000))) (when s4-4 (let ((t9-30 (method-of-type part-tracker activate))) (t9-30 (the-as part-tracker s4-4) self 'part-tracker (the-as pointer #x70004000)) ) (let ((s3-4 run-function-in-process) (s2-4 s4-4) (s1-4 part-tracker-init) (s0-4 (-> *part-group-id-table* 5)) ) (set! sv-480 -1) (set! sv-496 (the-as symbol #f)) (set! sv-512 (the-as symbol #f)) (set! sv-528 (the-as symbol #f)) (let ((t3-4 (get-intersect-point (new 'stack-no-clear 'vector) sv-176 (-> self control) (the-as process arg2)))) ((the-as (function object object object object object object object object none) s3-4) s2-4 s1-4 s0-4 sv-480 sv-496 sv-512 sv-528 t3-4 ) ) ) (-> s4-4 ppointer) ) ) ) ) (dummy-10 (-> self skel effect) 'group-uppercut-hit (the-as float -1.0) 23) (dummy-12 (-> self skel effect) (-> self control unknown-symbol30) (the-as float -1.0) 23 #f (static-sound-name "uppercut-hit") ) (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 (seconds 0.1)) ) ((or (= v1-5 'flop) (= v1-5 'flop-down)) (dummy-10 (-> self skel effect) 'group-flop-hit (the-as float -1.0) 23) (dummy-10 (-> self skel effect) 'group-flop-hit (the-as float -1.0) 17) (dummy-12 (-> self skel effect) (-> self control unknown-symbol30) (the-as float -1.0) 23 #f (static-sound-name "flop-hit") ) (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 (seconds 0.1)) ) ((= v1-5 'flut-attack) (dummy-12 (-> self skel effect) (-> self control unknown-symbol30) (the-as float -1.0) 23 #f (static-sound-name "punch-hit") ) (cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.2)) ) ) ) ) (the-as symbol gp-0) ) ) ) ;; definition for function target-apply-tongue (defbehavior target-apply-tongue target ((arg0 vector)) (when (zero? (logand (-> self state-flags) 8)) (logior! (-> self state-flags) #x7000) (let ((gp-1 (vector-! (new 'stack-no-clear 'vector) arg0 (-> self control trans)))) (set! (-> self control unknown-float41) (lerp-scale (-> *TARGET-bank* tongue-pull-speed-min) (-> *TARGET-bank* tongue-pull-speed-max) (vector-length gp-1) (the-as float 20480.0) (the-as float 61440.0) ) ) (if (zero? (-> self control unknown-int00)) (vector-reset! (-> self control unknown-vector40)) ) (vector-flatten! gp-1 gp-1 (-> self control local-normal)) (vector-normalize! gp-1 (the-as float 1.0)) (vector+! (-> self control unknown-vector40) (-> self control unknown-vector40) gp-1) ) (set! (-> self control unknown-float50) 1.0) (+! (-> self control unknown-int00) 1) #t ) ) ;; definition for function target-standard-event-handler (defbehavior target-standard-event-handler target ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (case arg2 (('attack 'attack-or-shove 'attack-invinc) (target-attacked arg2 (the-as attack-info (-> arg3 param 1)) arg0 (the-as process (-> arg3 param 0)) (the-as (state handle attack-info target) target-hit) ) ) (('shove) (when (!= (-> self next-state name) 'target-hit) (mem-copy! (the-as pointer (-> self attack-info-rec)) (the-as pointer (-> arg3 param 1)) 104) (when (zero? (logand (-> self attack-info-rec mask) 8)) (set! (-> self attack-info-rec attacker) (process->handle arg0)) (logior! (-> self attack-info-rec mask) 8) ) (go target-hit 'shove (-> self attack-info-rec)) ) ) (('launch) (mem-copy! (&-> (-> self control) unknown-pointer00) (the-as pointer arg3) 72) #t ) (('powerup) (if (or (= (-> self next-state name) 'target-stance) (= (-> self next-state name) 'target-walk) (= (-> self next-state name) 'target-stance-look-around) ) (go target-eco-powerup (-> arg3 param 0) (the-as float (-> arg3 param 1))) ) ) (('loading) (if (not (or (and (logtest? (-> self control unknown-surface00 flags) 2048) (zero? (logand (-> self control status) 1))) (or (logtest? (-> self water flags) 512) (logtest? (-> self state-flags) #x830e) (logtest? (-> self control root-prim prim-core action) (collide-action ca-7 ca-8 ca-9 ca-12 ca-13 ca-14)) (>= (-> self no-load-wait) (-> *display* base-frame-counter)) ) ) ) (go target-load-wait) ) ) (('change-mode) (case (-> arg3 param 0) (('grab) (go target-grab) ) (('look-around) (go target-look-around) ) (('billy) (go target-billy-game) ) (('falling) (go target-falling #f) ) (('racing) (go target-racing-start (process->handle (the-as process (-> arg3 param 1)))) ) (('flut) (go target-flut-start (process->handle (the-as process (-> arg3 param 1)))) ) (('snowball) (go target-snowball-start (process->handle (the-as process (-> arg3 param 1)))) ) (('tube) (if (and (logtest? (-> self control status) 1) (zero? (logand (-> self water flags) 512))) (go target-tube-start (process->handle (the-as process (-> arg3 param 1)))) ) ) (('periscope) (if (logtest? (-> self control status) 1) (go target-periscope (process->handle (the-as process (-> arg3 param 1)))) ) ) (('fishing) (go target-fishing (process->handle (the-as process (-> arg3 param 1)))) ) (('final-door) (go target-final-door (the-as basic (process->handle (the-as process (-> arg3 param 1)))) (process->handle (the-as process (-> arg3 param 2))) ) ) ) ) (('play-anim) (go target-play-anim (the-as string (-> arg3 param 0)) (the-as handle arg1)) ) (('clone-anim) (go target-clone-anim (process->handle (the-as process (-> arg3 param 0)))) ) (('edge-grab) (go target-edge-grab) ) (('pole-grab) (if (zero? (logand (-> self control root-prim prim-core action) (collide-action ca-8))) (go target-pole-cycle (process->handle (the-as process (-> arg3 param 0)))) ) ) (('swim) (if (not (or (= (-> self control unknown-surface00 mode) 'swim) (= (-> self control unknown-surface00 mode) 'dive) (= (-> self next-state name) 'target-hit) (logtest? (-> self state-flags) 8) ) ) (go target-swim-stance) ) ) (('wade) (if (and (!= (-> self control unknown-surface00 mode) 'wade) (or (= (-> self next-state name) 'target-stance) (= (-> self next-state name) 'target-walk) (= (-> self next-state name) 'target-stance-look-around) ) ) (go target-wade-stance) ) ) (('tongue) (target-apply-tongue (the-as vector (-> arg3 param 0))) ) (else (target-generic-event-handler arg0 arg1 arg2 arg3) ) ) ) ;; definition for function target-dangerous-event-handler (defbehavior target-dangerous-event-handler target ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (case arg2 (('touched) (if ((method-of-type touching-shapes-entry prims-touching?) (the-as touching-shapes-entry (-> arg3 param 0)) (-> self control) (the-as uint 224) ) (target-send-attack arg0 (the-as uint (-> self control unknown-symbol30)) (-> arg3 param 0) (-> self control unknown-dword50) (-> self control unknown-dword51) ) (target-standard-event-handler arg0 arg1 arg2 arg3) ) ) (('attack 'attack-or-shove 'attack-invinc) (target-attacked arg2 (the-as attack-info (-> arg3 param 1)) arg0 (the-as process (-> arg3 param 0)) (the-as (state handle attack-info target) target-hit) ) ) (else (target-standard-event-handler arg0 arg1 arg2 arg3) ) ) ) ;; definition for function target-bonk-event-handler ;; Used lq/sq (defbehavior target-bonk-event-handler target ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (let ((s4-0 (new 'stack-no-clear 'vector))) (cond ((and (= arg2 'touched) ((method-of-type touching-shapes-entry prims-touching?) (the-as touching-shapes-entry (-> arg3 param 0)) (-> self control) (the-as uint 6) ) (< (* 16384.0 (-> *display* time-adjust-ratio)) (vector-dot (-> self control dynam gravity-normal) (vector-! (new 'stack-no-clear 'vector) (-> self control transv) (-> self control unknown-vector10)) ) ) (begin (vector-normalize! (vector-! s4-0 (the-as vector (-> self control unknown-sphere-array00 0 prim-core)) (-> self control unknown-vector72) ) (the-as float 1.0) ) (< 0.01 (-> s4-0 y)) ) ) (if (< 0.75 (-> s4-0 y)) (send-event arg0 'bonk (-> arg3 param 0) (fmax (-> self control ground-impact-vel) (- (vector-dot (-> self control transv) (-> self control dynam gravity-normal))) ) ) ) (let ((f0-7 (vector-dot (-> self control dynam gravity-normal) (vector-! (new 'stack-no-clear 'vector) (-> self control unknown-vector111) (-> self control trans)) ) ) ) (when (< (-> *TARGET-bank* fall-far) f0-7) (when (and (target-send-attack arg0 (the-as uint 'bonk) (-> arg3 param 0) (-> self control unknown-dword50) (-> self control unknown-dword51) ) (zero? (logand (-> self state-flags) #x8008)) ) (set! (-> self control unknown-vector52 quad) (-> self control trans quad)) (target-timed-invulnerable (seconds 0.1) self) (go target-jump (-> *TARGET-bank* jump-height-min) (-> *TARGET-bank* jump-height-max) (the-as surface #f)) ) ) ) #f ) ((= arg2 'jump) (sound-play-by-name (static-sound-name "jump-long") (new-sound-id) 1024 0 0 1 #t) (go target-jump (the-as float (-> arg3 param 0)) (the-as float (-> arg3 param 1)) (the-as surface (-> arg3 param 2)) ) ) ) ) ) ;; definition for function target-jump-event-handler (defbehavior target-jump-event-handler target ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (if (and (= arg2 'swim) (< 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))) (return #f) ) (let ((v0-0 (target-bonk-event-handler arg0 arg1 arg2 arg3))) (cond (v0-0 (empty) v0-0 ) (else (target-standard-event-handler arg0 arg1 arg2 arg3) ) ) ) ) ;; definition for function target-walk-event-handler (defbehavior target-walk-event-handler target ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (let ((v0-0 (target-bonk-event-handler arg0 arg1 arg2 arg3))) (cond (v0-0 (empty) v0-0 ) (else (target-standard-event-handler arg0 arg1 arg2 arg3) ) ) ) ) ;; failed to figure out what this is: target-post ;; failed to figure out what this is: target-standard-event-handler ;; definition for function target-exit ;; INFO: Return type mismatch int vs none. ;; Used lq/sq (defbehavior target-exit target () (set! (-> self control unknown-surface00) *walk-mods*) (set! (-> self control unknown-vector13 quad) (the-as uint128 0)) (set! (-> self control unknown-vector14 quad) (the-as uint128 0)) (set! (-> self control unknown-vector15 quad) (the-as uint128 0)) (set! (-> self control unknown-vector11 quad) (the-as uint128 0)) (set! (-> self control unknown-float41) 0.0) (set! (-> self control unknown-float81) 0.0) (set! (-> self state-flags) (logand -1835917 (-> self state-flags))) (target-danger-set! 'harmless #f) (logior! (-> self water flags) 16) (set! (-> self water flags) (logand -65537 (-> self water flags))) (set! (-> self water drip-mult) 1.0) (set! (-> self neck flex-blend) 1.0) (set! (-> self control unknown-float91) 0.0) (logclear! (-> self draw status) (draw-status hidden)) (logclear! (-> self skel status) (janim-status spool)) (set! (-> self control status) (logand -16385 (-> self control status))) 0 (none) ) ;; definition for function target-state-hook-exit ;; INFO: Return type mismatch (function none) vs none. (defbehavior target-state-hook-exit target () (set! (-> self state-hook) (the-as (function none :behavior target) nothing)) (none) ) ;; definition for function target-effect-exit ;; INFO: Return type mismatch int vs none. (defbehavior target-effect-exit target () (let ((v1-1 (-> self skel effect))) (set! (-> v1-1 channel-offset) 0) ) 0 (none) )