Files
jak-project/test/decompiler/reference/engine/target/target-util_REF.gc
T
ManDude 0cdeed9be7 minor windows fixes (#1311)
* [pp2] put `define` dest on a single line

* update source!

* Update type_analysis.cpp

* update old credits & racer code

* change clang-cl args (REALLY force avx)

* Update credits_REF.gc

* comment small unused code

* add timer to decompiler

* fix unnecessary copy-constructors (no speed increase)

* fixes

* Update expression_build.cpp

* wtf is this thing anyway

* im bored.

* clang

* fix!

* Revert "fix!"

This reverts commit 5b1ce6c718.

* Revert "clang"

This reverts commit 5e67d9ccd1.

* Revert "im bored."

This reverts commit 070e957ce8.

* Revert "Update expression_build.cpp"

This reverts commit b94d092fc5.

* Revert "fixes"

This reverts commit f3d871f60a.

* Revert "fix unnecessary copy-constructors (no speed increase)"

This reverts commit 9100725802.

* Keep the random inoffensive changes

* Revert "Update type_analysis.cpp"

This reverts commit d2456a5c75.

* Update type_analysis.cpp
2022-04-17 21:11:09 -04:00

1367 lines
57 KiB
Common Lisp
Vendored
Generated

;;-*-Lisp-*-
(in-package goal)
;; failed to figure out what this is:
(defskelgroup *jchar-sg* eichar
0
-1
((1 (meters 999999)))
:bounds (static-spherem 0 2 0 3)
:longest-edge (meters 1)
:shadow 2
:texture-level 2
:sort 1
)
;; definition for symbol *target-shadow-control*, type shadow-control
(define *target-shadow-control*
(new 'static 'shadow-control :settings (new 'static 'shadow-settings
:center
(new 'static 'vector :w (the-as float #x2))
:shadow-dir
(new 'static 'vector :x -0.4226 :y -0.9063 :w 409600.0)
:bot-plane (new 'static 'plane :y 1.0 :w 37683.2)
:top-plane (new 'static 'plane :y 1.0 :w 4096.0)
)
)
)
;; definition of type target-bank
(deftype target-bank (basic)
((jump-collide-offset meters :offset-assert 4)
(jump-height-min meters :offset-assert 8)
(jump-height-max meters :offset-assert 12)
(double-jump-height-min meters :offset-assert 16)
(double-jump-height-max meters :offset-assert 20)
(flip-jump-height-min meters :offset-assert 24)
(flip-jump-height-max meters :offset-assert 28)
(duck-jump-height-min meters :offset-assert 32)
(duck-jump-height-max meters :offset-assert 36)
(flop-jump-height-min meters :offset-assert 40)
(flop-jump-height-max meters :offset-assert 44)
(attack-jump-height-min meters :offset-assert 48)
(attack-jump-height-max meters :offset-assert 52)
(edge-grab-jump-height-min meters :offset-assert 56)
(edge-grab-jump-height-max meters :offset-assert 60)
(swim-jump-height-min meters :offset-assert 64)
(swim-jump-height-max meters :offset-assert 68)
(tube-jump-height-min meters :offset-assert 72)
(tube-jump-height-max meters :offset-assert 76)
(wheel-duration time-frame :offset-assert 80)
(wheel-jump-pre-window time-frame :offset-assert 88)
(wheel-jump-post-window time-frame :offset-assert 96)
(wheel-timeout time-frame :offset-assert 104)
(wheel-speed-min meters :offset-assert 112)
(wheel-speed-inc meters :offset-assert 116)
(wheel-flip-duration time-frame :offset-assert 120)
(wheel-flip-height meters :offset-assert 128)
(wheel-flip-dist meters :offset-assert 132)
(wheel-flip-art-height meters :offset-assert 136)
(wheel-flip-art-dist meters :offset-assert 140)
(duck-slide-distance meters :offset-assert 144)
(fall-far meters :offset-assert 148)
(fall-far-inc meters :offset-assert 152)
(attack-timeout time-frame :offset-assert 160)
(ground-timeout time-frame :offset-assert 168)
(slide-down-timeout time-frame :offset-assert 176)
(fall-timeout time-frame :offset-assert 184)
(fall-stumble-threshold meters :offset-assert 192)
(yellow-projectile-speed meters :offset-assert 196)
(hit-invulnerable-timeout time-frame :offset-assert 200)
(run-cycle-length float :offset-assert 208)
(walk-cycle-dist meters :offset-assert 212)
(walk-up-cycle-dist meters :offset-assert 216)
(walk-down-cycle-dist meters :offset-assert 220)
(walk-side-cycle-dist meters :offset-assert 224)
(run-cycle-dist meters :offset-assert 228)
(run-up-cycle-dist meters :offset-assert 232)
(run-down-cycle-dist meters :offset-assert 236)
(run-side-cycle-dist meters :offset-assert 240)
(run-wall-cycle-dist meters :offset-assert 244)
(duck-walk-cycle-dist meters :offset-assert 248)
(wade-shallow-walk-cycle-dist meters :offset-assert 252)
(wade-deep-walk-cycle-dist meters :offset-assert 256)
(smack-surface-dist meters :offset-assert 260)
(smack-surface-height meters :offset-assert 264)
(min-dive-depth meters :offset-assert 268)
(root-radius meters :offset-assert 272)
(root-offset vector :inline :offset-assert 288)
(body-radius meters :offset-assert 304)
(edge-radius meters :offset-assert 308)
(edge-offset vector :inline :offset-assert 320)
(head-radius meters :offset-assert 336)
(head-height meters :offset-assert 340)
(head-offset vector :inline :offset-assert 352)
(spin-radius meters :offset-assert 368)
(spin-offset vector :inline :offset-assert 384)
(duck-spin-radius meters :offset-assert 400)
(duck-spin-offset vector :inline :offset-assert 416)
(punch-radius meters :offset-assert 432)
(punch-offset vector :inline :offset-assert 448)
(uppercut-radius meters :offset-assert 464)
(uppercut0-offset vector :inline :offset-assert 480)
(uppercut1-offset vector :inline :offset-assert 496)
(flop-radius meters :offset-assert 512)
(flop0-offset vector :inline :offset-assert 528)
(flop1-offset vector :inline :offset-assert 544)
(stuck-time seconds :offset-assert 560)
(stuck-timeout seconds :offset-assert 568)
(stuck-distance meters :offset-assert 576)
(tongue-pull-speed-min float :offset-assert 580)
(tongue-pull-speed-max float :offset-assert 584)
(yellow-attack-timeout time-frame :offset-assert 592)
)
:method-count-assert 9
:size-assert #x258
:flag-assert #x900000258
)
;; definition for method 3 of type target-bank
(defmethod inspect target-bank ((obj target-bank))
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~Tjump-collide-offset: (meters ~m)~%" (-> obj jump-collide-offset))
(format #t "~Tjump-height-min: (meters ~m)~%" (-> obj jump-height-min))
(format #t "~Tjump-height-max: (meters ~m)~%" (-> obj jump-height-max))
(format #t "~Tdouble-jump-height-min: (meters ~m)~%" (-> obj double-jump-height-min))
(format #t "~Tdouble-jump-height-max: (meters ~m)~%" (-> obj double-jump-height-max))
(format #t "~Tflip-jump-height-min: (meters ~m)~%" (-> obj flip-jump-height-min))
(format #t "~Tflip-jump-height-max: (meters ~m)~%" (-> obj flip-jump-height-max))
(format #t "~Tduck-jump-height-min: (meters ~m)~%" (-> obj duck-jump-height-min))
(format #t "~Tduck-jump-height-max: (meters ~m)~%" (-> obj duck-jump-height-max))
(format #t "~Tflop-jump-height-min: (meters ~m)~%" (-> obj flop-jump-height-min))
(format #t "~Tflop-jump-height-max: (meters ~m)~%" (-> obj flop-jump-height-max))
(format #t "~Tattack-jump-height-min: (meters ~m)~%" (-> obj attack-jump-height-min))
(format #t "~Tattack-jump-height-max: (meters ~m)~%" (-> obj attack-jump-height-max))
(format #t "~Tedge-grab-jump-height-min: (meters ~m)~%" (-> obj edge-grab-jump-height-min))
(format #t "~Tedge-grab-jump-height-max: (meters ~m)~%" (-> obj edge-grab-jump-height-max))
(format #t "~Tswim-jump-height-min: (meters ~m)~%" (-> obj swim-jump-height-min))
(format #t "~Tswim-jump-height-max: (meters ~m)~%" (-> obj swim-jump-height-max))
(format #t "~Ttube-jump-height-min: (meters ~m)~%" (-> obj tube-jump-height-min))
(format #t "~Ttube-jump-height-max: (meters ~m)~%" (-> obj tube-jump-height-max))
(format #t "~Twheel-duration: ~D~%" (-> obj wheel-duration))
(format #t "~Twheel-jump-pre-window: ~D~%" (-> obj wheel-jump-pre-window))
(format #t "~Twheel-jump-post-window: ~D~%" (-> obj wheel-jump-post-window))
(format #t "~Twheel-timeout: ~D~%" (-> obj wheel-timeout))
(format #t "~Twheel-speed-min: (meters ~m)~%" (-> obj wheel-speed-min))
(format #t "~Twheel-speed-inc: (meters ~m)~%" (-> obj wheel-speed-inc))
(format #t "~Twheel-flip-duration: ~D~%" (-> obj wheel-flip-duration))
(format #t "~Twheel-flip-height: (meters ~m)~%" (-> obj wheel-flip-height))
(format #t "~Twheel-flip-dist: (meters ~m)~%" (-> obj wheel-flip-dist))
(format #t "~Twheel-flip-art-height: (meters ~m)~%" (-> obj wheel-flip-art-height))
(format #t "~Twheel-flip-art-dist: (meters ~m)~%" (-> obj wheel-flip-art-dist))
(format #t "~Tduck-slide-distance: (meters ~m)~%" (-> obj duck-slide-distance))
(format #t "~Tfall-far: (meters ~m)~%" (-> obj fall-far))
(format #t "~Tfall-far-inc: (meters ~m)~%" (-> obj fall-far-inc))
(format #t "~Tattack-timeout: ~D~%" (-> obj attack-timeout))
(format #t "~Tground-timeout: ~D~%" (-> obj ground-timeout))
(format #t "~Tslide-down-timeout: ~D~%" (-> obj slide-down-timeout))
(format #t "~Tfall-timeout: ~D~%" (-> obj fall-timeout))
(format #t "~Tfall-stumble-threshold: (meters ~m)~%" (-> obj fall-stumble-threshold))
(format #t "~Tyellow-projectile-speed: (meters ~m)~%" (-> obj yellow-projectile-speed))
(format #t "~Thit-invulnerable-timeout: ~D~%" (-> obj hit-invulnerable-timeout))
(format #t "~Trun-cycle-length: ~f~%" (-> obj run-cycle-length))
(format #t "~Twalk-cycle-dist: (meters ~m)~%" (-> obj walk-cycle-dist))
(format #t "~Twalk-up-cycle-dist: (meters ~m)~%" (-> obj walk-up-cycle-dist))
(format #t "~Twalk-down-cycle-dist: (meters ~m)~%" (-> obj walk-down-cycle-dist))
(format #t "~Twalk-side-cycle-dist: (meters ~m)~%" (-> obj walk-side-cycle-dist))
(format #t "~Trun-cycle-dist: (meters ~m)~%" (-> obj run-cycle-dist))
(format #t "~Trun-up-cycle-dist: (meters ~m)~%" (-> obj run-up-cycle-dist))
(format #t "~Trun-down-cycle-dist: (meters ~m)~%" (-> obj run-down-cycle-dist))
(format #t "~Trun-side-cycle-dist: (meters ~m)~%" (-> obj run-side-cycle-dist))
(format #t "~Trun-wall-cycle-dist: (meters ~m)~%" (-> obj run-wall-cycle-dist))
(format #t "~Tduck-walk-cycle-dist: (meters ~m)~%" (-> obj duck-walk-cycle-dist))
(format #t "~Twade-shallow-walk-cycle-dist: (meters ~m)~%" (-> obj wade-shallow-walk-cycle-dist))
(format #t "~Twade-deep-walk-cycle-dist: (meters ~m)~%" (-> obj wade-deep-walk-cycle-dist))
(format #t "~Tsmack-surface-dist: (meters ~m)~%" (-> obj smack-surface-dist))
(format #t "~Tsmack-surface-height: (meters ~m)~%" (-> obj smack-surface-height))
(format #t "~Tmin-dive-depth: (meters ~m)~%" (-> obj min-dive-depth))
(format #t "~Troot-radius: (meters ~m)~%" (-> obj root-radius))
(format #t "~Troot-offset: ~`vector`P~%" (-> obj root-offset))
(format #t "~Tbody-radius: (meters ~m)~%" (-> obj body-radius))
(format #t "~Tedge-radius: (meters ~m)~%" (-> obj edge-radius))
(format #t "~Tedge-offset: ~`vector`P~%" (-> obj edge-offset))
(format #t "~Thead-radius: (meters ~m)~%" (-> obj head-radius))
(format #t "~Thead-height: (meters ~m)~%" (-> obj head-height))
(format #t "~Thead-offset: ~`vector`P~%" (-> obj head-offset))
(format #t "~Tspin-radius: (meters ~m)~%" (-> obj spin-radius))
(format #t "~Tspin-offset: ~`vector`P~%" (-> obj spin-offset))
(format #t "~Tduck-spin-radius: (meters ~m)~%" (-> obj duck-spin-radius))
(format #t "~Tduck-spin-offset: ~`vector`P~%" (-> obj duck-spin-offset))
(format #t "~Tpunch-radius: (meters ~m)~%" (-> obj punch-radius))
(format #t "~Tpunch-offset: ~`vector`P~%" (-> obj punch-offset))
(format #t "~Tuppercut-radius: (meters ~m)~%" (-> obj uppercut-radius))
(format #t "~Tuppercut0-offset: ~`vector`P~%" (-> obj uppercut0-offset))
(format #t "~Tuppercut1-offset: ~`vector`P~%" (-> obj uppercut1-offset))
(format #t "~Tflop-radius: (meters ~m)~%" (-> obj flop-radius))
(format #t "~Tflop0-offset: ~`vector`P~%" (-> obj flop0-offset))
(format #t "~Tflop1-offset: ~`vector`P~%" (-> obj flop1-offset))
(format #t "~Tstuck-time: (seconds ~e)~%" (-> obj stuck-time))
(format #t "~Tstuck-timeout: (seconds ~e)~%" (-> obj stuck-timeout))
(format #t "~Tstuck-distance: (meters ~m)~%" (-> obj stuck-distance))
(format #t "~Ttongue-pull-speed-min: ~f~%" (-> obj tongue-pull-speed-min))
(format #t "~Ttongue-pull-speed-max: ~f~%" (-> obj tongue-pull-speed-max))
(format #t "~Tyellow-attack-timeout: ~D~%" (-> obj yellow-attack-timeout))
obj
)
;; definition for symbol *TARGET-bank*, type target-bank
(define *TARGET-bank* (new 'static 'target-bank
:jump-collide-offset (meters 0.7)
:jump-height-min (meters 1.01)
:jump-height-max (meters 3.5)
:double-jump-height-min (meters 1)
:double-jump-height-max (meters 2.5)
:flip-jump-height-min (meters 5)
:flip-jump-height-max (meters 7)
:duck-jump-height-min (meters 5)
:duck-jump-height-max (meters 7)
:flop-jump-height-min (meters 5)
:flop-jump-height-max (meters 7)
:attack-jump-height-min (meters 4)
:attack-jump-height-max (meters 5.5)
:edge-grab-jump-height-min (meters 1.7)
:edge-grab-jump-height-max (meters 1.7)
:swim-jump-height-min (meters 5)
:swim-jump-height-max (meters 5)
:tube-jump-height-min (meters 1.75)
:tube-jump-height-max (meters 2.5)
:wheel-duration (seconds 0.5)
:wheel-jump-pre-window (seconds 1)
:wheel-jump-post-window (seconds 0.1)
:wheel-speed-min (meters 11.5)
:wheel-speed-inc (meters 1.5)
:wheel-flip-duration (seconds 0.7)
:wheel-flip-height (meters 3.52)
:wheel-flip-dist (meters 17.3)
:wheel-flip-art-height (meters 3.2969)
:wheel-flip-art-dist (meters 12.5)
:duck-slide-distance (meters 5.75)
:fall-far (meters 30)
:fall-far-inc (meters 20)
:attack-timeout (seconds 0.3)
:ground-timeout (seconds 0.2)
:slide-down-timeout (seconds 0.2)
:fall-timeout (seconds 1)
:fall-stumble-threshold (meters 39.9)
:yellow-projectile-speed (meters 60)
:hit-invulnerable-timeout (seconds 3)
:run-cycle-length 60.0
:walk-cycle-dist (meters 2.8)
:walk-up-cycle-dist (meters 2.8)
:walk-down-cycle-dist (meters 2.8)
:walk-side-cycle-dist (meters 2.8)
:run-cycle-dist (meters 6.25)
:run-up-cycle-dist (meters 5)
:run-down-cycle-dist (meters 5)
:run-side-cycle-dist (meters 6.25)
:run-wall-cycle-dist (meters 2.8)
:duck-walk-cycle-dist (meters 3.25)
:wade-shallow-walk-cycle-dist (meters 6)
:wade-deep-walk-cycle-dist (meters 6)
:smack-surface-dist (meters 1.25)
:min-dive-depth (meters 2)
:root-radius (meters 2.2)
:root-offset (new 'static 'vector :y 4915.2 :w 1.0)
:body-radius (meters 0.7)
:edge-radius (meters 0.35)
:edge-offset
(new 'static 'vector :y 4915.2 :z 4096.0 :w 1.0)
:head-radius (meters 0.7)
:head-height (meters 1.4)
:head-offset (new 'static 'vector :y 4915.2 :w 1.0)
:spin-radius (meters 2.2)
:spin-offset (new 'static 'vector :y 6553.6 :w 1.0)
:duck-spin-radius (meters 1.2)
:duck-spin-offset (new 'static 'vector :y 4096.0 :w 1.0)
:punch-radius (meters 1.3)
:punch-offset (new 'static 'vector :y 5324.8 :w 1.0)
:uppercut-radius (meters 1)
:uppercut0-offset (new 'static 'vector :y 3276.8 :w 1.0)
:uppercut1-offset (new 'static 'vector :y 9011.2 :w 1.0)
:flop-radius (meters 1.4)
:flop0-offset (new 'static 'vector :y 3276.8 :w 1.0)
:flop1-offset (new 'static 'vector :y 9011.2 :w 1.0)
:stuck-time (seconds 0.3)
:stuck-timeout (seconds 2)
:stuck-distance (meters 0.05)
:tongue-pull-speed-min 0.15
:tongue-pull-speed-max 0.22
:yellow-attack-timeout (seconds 0.2)
)
)
;; definition for function target-start-attack
;; INFO: Return type mismatch int vs none.
(defbehavior target-start-attack target ()
(+! (-> self control unknown-dword50) 1)
(set! (-> self control unknown-dword51) 0)
0
(none)
)
;; definition for function target-danger-set!
(defbehavior target-danger-set! target ((arg0 symbol) (arg1 symbol))
(let ((s4-0 (-> self control unknown-sphere00))
(s5-0 (-> self control unknown-sphere01))
(gp-0 (-> self control unknown-sphere02))
(f30-0 (if arg1
2.0
1.0
)
)
)
(dotimes (v1-4 3)
(set! (-> self control unknown-sphere-array00 v1-4 prim-core offense) (collide-offense normal-attack))
)
(sphere<-vector+r!
(the-as sphere (-> self control root-prim local-sphere))
(-> *TARGET-bank* root-offset)
(-> *TARGET-bank* root-radius)
)
(set! (-> self control unknown-symbol30) arg0)
(set! (-> self state-flags) (logand -3 (-> self state-flags)))
(set! (-> s4-0 transform-index) -2)
(set! (-> s4-0 prim-core collide-as) (collide-kind))
(set! (-> s4-0 collide-with) (collide-kind))
(set! (-> s4-0 local-sphere w) 0.0)
(set! (-> s4-0 prim-core offense) (collide-offense no-offense))
(set! (-> s5-0 transform-index) -2)
(set! (-> s5-0 prim-core collide-as) (collide-kind))
(set! (-> s5-0 collide-with) (collide-kind))
(set! (-> s5-0 local-sphere w) 0.0)
(set! (-> s5-0 prim-core offense) (collide-offense no-offense))
(set! (-> gp-0 transform-index) -2)
(set! (-> gp-0 prim-core collide-as) (collide-kind))
(set! (-> gp-0 collide-with) (collide-kind))
(set! (-> gp-0 local-sphere w) 0.0)
(set! (-> gp-0 prim-core offense) (collide-offense no-offense))
(case arg0
(('harmless #f)
(set! (-> self control unknown-symbol30) #f)
(target-collide-set! (-> self control unknown-symbol00) (-> self control unknown-float90))
)
(('spin 'spin-air)
(sphere<-vector+r!
(the-as sphere (-> self control root-prim local-sphere))
(new 'static 'vector :y 6553.6 :w 1.0)
9830.4
)
(logior! (-> self state-flags) 2)
(set! (-> s4-0 prim-core collide-as) (collide-kind target target-attack))
(set! (-> s4-0 collide-with)
(collide-kind cak-1 cak-2 cak-3 powerup crate enemy wall-object ground-object mother-spider)
)
(sphere<-vector+r!
(the-as sphere (-> s4-0 local-sphere))
(-> *TARGET-bank* spin-offset)
(-> *TARGET-bank* spin-radius)
)
)
(('duck-spin)
(sphere<-vector+r!
(the-as sphere (-> self control root-prim local-sphere))
(new 'static 'vector :y 6553.6 :w 1.0)
10649.6
)
(logior! (-> self state-flags) 2)
(set! (-> s4-0 prim-core collide-as) (collide-kind target target-attack))
(set! (-> s4-0 collide-with)
(collide-kind cak-1 cak-2 cak-3 powerup crate enemy wall-object ground-object mother-spider)
)
(sphere<-vector+r!
(the-as sphere (-> s4-0 local-sphere))
(-> *TARGET-bank* duck-spin-offset)
(-> *TARGET-bank* duck-spin-radius)
)
(set! (-> s5-0 prim-core collide-as) (collide-kind target target-attack))
(set! (-> s5-0 collide-with)
(collide-kind cak-1 cak-2 cak-3 powerup crate enemy wall-object ground-object mother-spider)
)
(sphere<-vector+r! (the-as sphere (-> s5-0 local-sphere)) *null-vector* (-> *TARGET-bank* duck-spin-radius))
(set! (-> s5-0 transform-index) 32)
)
(('duck-slide)
(logior! (-> self state-flags) 2)
(set! (-> s4-0 prim-core collide-as) (collide-kind target target-attack))
(set! (-> s4-0 collide-with)
(collide-kind cak-1 cak-2 cak-3 powerup crate enemy wall-object ground-object mother-spider)
)
(sphere<-vector+r!
(the-as sphere (-> s4-0 local-sphere))
(-> *TARGET-bank* duck-spin-offset)
(-> *TARGET-bank* duck-spin-radius)
)
(set! (-> s5-0 prim-core collide-as) (collide-kind target target-attack))
(set! (-> s5-0 collide-with)
(collide-kind cak-1 cak-2 cak-3 powerup crate enemy wall-object ground-object mother-spider)
)
(sphere<-vector+r! (the-as sphere (-> s5-0 local-sphere)) *null-vector* (-> *TARGET-bank* duck-spin-radius))
(set! (-> s5-0 transform-index) 28)
)
(('wheel-solid)
(logior! (-> self state-flags) 2)
(set! (-> s4-0 prim-core collide-as) (collide-kind target target-attack))
(set! (-> s4-0 collide-with)
(collide-kind cak-1 cak-2 cak-3 powerup crate enemy wall-object ground-object mother-spider)
)
(dotimes (v1-57 3)
(set! (-> self control unknown-sphere-array00 v1-57 prim-core offense) (collide-offense touch))
)
(sphere<-vector+r!
(the-as sphere (-> s4-0 local-sphere))
(-> *TARGET-bank* duck-spin-offset)
(+ 819.2 (-> *TARGET-bank* duck-spin-radius))
)
(set! (-> s5-0 prim-core collide-as) (collide-kind target target-attack))
(set! (-> s5-0 collide-with)
(collide-kind cak-1 cak-2 cak-3 powerup crate enemy wall-object ground-object mother-spider)
)
(sphere<-vector+r! (the-as sphere (-> s5-0 local-sphere)) *null-vector* (-> *TARGET-bank* duck-spin-radius))
(set! (-> s5-0 transform-index) 7)
(set! (-> self control unknown-symbol30) 'roll)
)
(('flip)
(logior! (-> self state-flags) 2)
(set! (-> s4-0 prim-core collide-as) (collide-kind target target-attack))
(set! (-> s4-0 collide-with)
(collide-kind cak-1 cak-2 cak-3 powerup crate enemy wall-object ground-object mother-spider)
)
(dotimes (v1-71 3)
(set! (-> self control unknown-sphere-array00 v1-71 prim-core offense) (collide-offense touch))
)
(sphere<-vector+r!
(the-as sphere (-> s4-0 local-sphere))
(-> *TARGET-bank* duck-spin-offset)
(+ 819.2 (-> *TARGET-bank* duck-spin-radius))
)
(set! (-> s5-0 prim-core collide-as) (collide-kind target target-attack))
(set! (-> s5-0 collide-with)
(collide-kind cak-1 cak-2 cak-3 powerup crate enemy wall-object ground-object mother-spider)
)
(sphere<-vector+r! (the-as sphere (-> s5-0 local-sphere)) *null-vector* (-> *TARGET-bank* duck-spin-radius))
(set! (-> s5-0 transform-index) 7)
(set! (-> self control unknown-symbol30) 'flip)
)
(('punch)
(sphere<-vector+r!
(the-as sphere (-> self control root-prim local-sphere))
(new 'static 'vector :y 6553.6 :w 1.0)
11878.4
)
(logior! (-> self state-flags) 2)
(set! (-> s4-0 prim-core collide-as) (collide-kind target target-attack))
(set! (-> s4-0 collide-with)
(collide-kind cak-1 cak-2 cak-3 powerup crate enemy wall-object ground-object mother-spider)
)
(sphere<-vector+r!
(the-as sphere (-> s4-0 local-sphere))
(-> *TARGET-bank* punch-offset)
(-> *TARGET-bank* punch-radius)
)
(set! (-> s5-0 prim-core collide-as) (collide-kind target target-attack))
(set! (-> s5-0 collide-with)
(collide-kind cak-1 cak-2 cak-3 powerup crate enemy wall-object ground-object mother-spider)
)
(sphere<-vector+r! (the-as sphere (-> s5-0 local-sphere)) *null-vector* (-> *TARGET-bank* punch-radius))
(set! (-> s5-0 transform-index) 22)
)
(('uppercut)
(sphere<-vector+r!
(the-as sphere (-> self control root-prim local-sphere))
(new 'static 'vector :y 6553.6 :w 1.0)
11878.4
)
(logior! (-> self state-flags) 2)
(set! (-> s4-0 prim-core collide-as) (collide-kind target target-attack))
(set! (-> s4-0 collide-with)
(collide-kind cak-1 cak-2 cak-3 powerup crate enemy wall-object ground-object mother-spider)
)
(sphere<-vector+r!
(the-as sphere (-> s4-0 local-sphere))
(-> *TARGET-bank* uppercut0-offset)
(-> *TARGET-bank* uppercut-radius)
)
(set! (-> s5-0 prim-core collide-as) (collide-kind target target-attack))
(set! (-> s5-0 collide-with)
(collide-kind cak-1 cak-2 cak-3 powerup crate enemy wall-object ground-object mother-spider)
)
(sphere<-vector+r! (the-as sphere (-> s5-0 local-sphere)) *null-vector* (-> *TARGET-bank* uppercut-radius))
(set! (-> s5-0 transform-index) 22)
(set! (-> gp-0 prim-core collide-as) (collide-kind target target-attack))
(set! (-> gp-0 collide-with)
(collide-kind cak-1 cak-2 cak-3 powerup crate enemy wall-object ground-object mother-spider)
)
(sphere<-vector+r!
(the-as sphere (-> gp-0 local-sphere))
(-> *TARGET-bank* uppercut1-offset)
(-> *TARGET-bank* uppercut-radius)
)
)
(('flop)
(logior! (-> self state-flags) 2)
(set! (-> s4-0 prim-core collide-as) (collide-kind target target-attack))
(set! (-> s4-0 collide-with)
(collide-kind cak-1 cak-2 cak-3 powerup crate enemy wall-object ground-object mother-spider)
)
(dotimes (v1-114 3)
(set! (-> self control unknown-sphere-array00 v1-114 prim-core offense) (collide-offense strong-attack))
)
(sphere<-vector+r!
(the-as sphere (-> s4-0 local-sphere))
(-> *TARGET-bank* flop0-offset)
(-> *TARGET-bank* flop-radius)
)
(set! f30-0 1.0)
(set! (-> self control unknown-symbol30) 'flop)
)
(('flop-down)
(logior! (-> self state-flags) 2)
(set! (-> s4-0 prim-core collide-as) (collide-kind target target-attack))
(set! (-> s4-0 collide-with)
(collide-kind cak-1 cak-2 cak-3 powerup crate enemy wall-object ground-object mother-spider)
)
(dotimes (v1-124 3)
(set! (-> self control unknown-sphere-array00 v1-124 prim-core offense) (collide-offense strong-attack))
)
(sphere<-vector+r!
(the-as sphere (-> s4-0 local-sphere))
(-> *TARGET-bank* flop0-offset)
(-> *TARGET-bank* flop-radius)
)
(set! (-> s5-0 prim-core collide-as) (collide-kind target target-attack))
(set! (-> s5-0 collide-with)
(collide-kind cak-1 cak-2 cak-3 powerup crate enemy wall-object ground-object mother-spider)
)
(sphere<-vector+r!
(the-as sphere (-> s5-0 local-sphere))
(-> *TARGET-bank* flop1-offset)
(-> *TARGET-bank* flop-radius)
)
(if (!= f30-0 1.0)
(set! f30-0 2.1)
)
(set! (-> self control unknown-symbol30) 'flop)
)
(('flut-attack)
(sphere<-vector+r!
(the-as sphere (-> self control root-prim local-sphere))
(new 'static 'vector :y 6553.6 :w 1.0)
12288.0
)
(logior! (-> self state-flags) 2)
(set! (-> s4-0 prim-core collide-as) (collide-kind target target-attack))
(set! (-> s4-0 collide-with)
(collide-kind cak-1 cak-2 cak-3 powerup crate enemy wall-object ground-object mother-spider)
)
(sphere<-vector+r!
(the-as sphere (-> s4-0 local-sphere))
(-> *TARGET-bank* spin-offset)
(+ 2048.0 (-> *TARGET-bank* punch-radius))
)
(set! (-> s5-0 prim-core collide-as) (collide-kind target target-attack))
(set! (-> s5-0 collide-with)
(collide-kind cak-1 cak-2 cak-3 powerup crate enemy wall-object ground-object mother-spider)
)
(sphere<-vector+r!
(the-as sphere (-> s5-0 local-sphere))
*null-vector*
(+ 1228.8 (-> *TARGET-bank* punch-radius))
)
(set! (-> s5-0 transform-index) 37)
(dotimes (v1-148 3)
(set! (-> self control unknown-sphere-array00 v1-148 prim-core offense) (collide-offense strong-attack))
)
)
(else
(format 0 "ERROR: ~A unknown danger mode ~A" self arg0)
)
)
(when (and (!= f30-0 1.0) (not (or (= arg0 'harmless) (= arg0 #f))))
(set! (-> self control root-prim local-sphere w) (* (-> self control root-prim local-sphere w) f30-0))
(set! (-> s4-0 local-sphere w) (* (-> s4-0 local-sphere w) f30-0))
(set! (-> s5-0 local-sphere w) (* (-> s5-0 local-sphere w) f30-0))
(let ((f0-37 (* (-> gp-0 local-sphere w) f30-0)))
(set! (-> gp-0 local-sphere w) f0-37)
f0-37
)
)
)
)
;; definition for function target-collide-set!
(defbehavior target-collide-set! target ((arg0 symbol) (arg1 float))
(let ((gp-0 (-> self control)))
(set! (-> self control unknown-symbol00) arg0)
(set! (-> self control unknown-float90) arg1)
(dotimes (v1-2 3)
(set! (-> gp-0 unknown-sphere-array00 v1-2 prim-core offense) (collide-offense touch))
(set! (-> gp-0 unknown-sphere-array00 v1-2 transform-index) -2)
)
(case arg0
(('pole)
(set-vector! (-> gp-0 unknown-sphere-array00 0 local-sphere) 0.0 0.0 0.0 (-> *TARGET-bank* body-radius))
(set-vector! (-> gp-0 unknown-sphere-array00 1 local-sphere) 0.0 0.0 0.0 (-> *TARGET-bank* body-radius))
(set-vector! (-> gp-0 unknown-sphere-array00 2 local-sphere) 0.0 0.0 0.0 (-> *TARGET-bank* body-radius))
(set! (-> gp-0 unknown-sphere-array00 0 transform-index) 28)
(set! (-> gp-0 unknown-sphere-array00 1 transform-index) 26)
(set! (-> gp-0 unknown-sphere-array00 2 transform-index) 7)
)
(('racer)
(set! (-> gp-0 unknown-vector11 y) 4096.0)
(sphere<-vector+r!
(the-as sphere (-> gp-0 root-prim local-sphere))
(new 'static 'vector :y 8192.0 :w 1.0)
16384.0
)
(set-vector! (-> gp-0 unknown-sphere-array00 0 local-sphere) 0.0 6553.6 0.0 6553.6)
(set-vector! (-> gp-0 unknown-sphere-array00 1 local-sphere) 0.0 9420.8 0.0 6553.6)
(set-vector! (-> gp-0 unknown-sphere-array00 2 local-sphere) 0.0 12288.0 0.0 6553.6)
(dotimes (v1-22 3)
(set! (-> gp-0 unknown-sphere-array00 v1-22 prim-core offense) (collide-offense strong-attack))
)
)
(('flut)
(sphere<-vector+r!
(the-as sphere (-> gp-0 root-prim local-sphere))
(new 'static 'vector :y 8192.0 :w 1.0)
12288.0
)
(set-vector! (-> gp-0 unknown-sphere-array00 0 local-sphere) 0.0 4915.2 0.0 4915.2)
(set-vector! (-> gp-0 unknown-sphere-array00 1 local-sphere) 0.0 7782.4004 0.0 4915.2)
(set-vector! (-> gp-0 unknown-sphere-array00 2 local-sphere) 0.0 10649.6 0.0 4915.2)
)
(('duck)
(set! (-> self control unknown-float91) arg1)
(let ((f30-0 (- 1.0 arg1)))
(set! (-> gp-0 unknown-vector11 y) 0.0)
(sphere<-vector+r!
(the-as sphere (-> gp-0 root-prim local-sphere))
(-> *TARGET-bank* root-offset)
(-> *TARGET-bank* root-radius)
)
(set-vector!
(-> gp-0 unknown-sphere-array00 0 local-sphere)
0.0
(-> *TARGET-bank* body-radius)
(* 0.0 f30-0)
(-> *TARGET-bank* body-radius)
)
(set-vector!
(-> gp-0 unknown-sphere-array00 1 local-sphere)
0.0
(+ (-> *TARGET-bank* body-radius) (* 2867.2 f30-0))
0.0
(-> *TARGET-bank* body-radius)
)
(set-vector!
(-> gp-0 unknown-sphere-array00 2 local-sphere)
0.0
(+ (-> *TARGET-bank* body-radius) (* 5734.4 f30-0))
0.0
(-> *TARGET-bank* body-radius)
)
)
)
(('tube)
(set! (-> self control unknown-float91) arg1)
(let ((f30-1 (- 1.0 arg1)))
(set! (-> gp-0 unknown-vector11 y) 0.0)
(sphere<-vector+r!
(the-as sphere (-> gp-0 root-prim local-sphere))
(-> *TARGET-bank* root-offset)
(-> *TARGET-bank* root-radius)
)
(set-vector!
(-> gp-0 unknown-sphere-array00 0 local-sphere)
0.0
(-> *TARGET-bank* body-radius)
(* 0.0 f30-1)
(-> *TARGET-bank* body-radius)
)
(set-vector!
(-> gp-0 unknown-sphere-array00 1 local-sphere)
0.0
(+ (-> *TARGET-bank* body-radius) (* 2867.2 f30-1))
0.0
(-> *TARGET-bank* body-radius)
)
(set-vector!
(-> gp-0 unknown-sphere-array00 2 local-sphere)
0.0
(+ (-> *TARGET-bank* body-radius) (* 5734.4 f30-1))
0.0
(-> *TARGET-bank* body-radius)
)
)
(dotimes (v1-52 3)
(set! (-> gp-0 unknown-sphere-array00 v1-52 prim-core offense) (collide-offense strong-attack))
)
)
(else
(set! (-> self control unknown-float91) 0.0)
(set! (-> gp-0 unknown-vector11 y) 0.0)
(sphere<-vector+r!
(the-as sphere (-> gp-0 root-prim local-sphere))
(-> *TARGET-bank* root-offset)
(-> *TARGET-bank* root-radius)
)
(set-vector!
(-> gp-0 unknown-sphere-array00 0 local-sphere)
0.0
(-> *TARGET-bank* body-radius)
0.0
(-> *TARGET-bank* body-radius)
)
(set-vector!
(-> gp-0 unknown-sphere-array00 1 local-sphere)
0.0
(+ 2867.2 (-> *TARGET-bank* body-radius))
0.0
(-> *TARGET-bank* body-radius)
)
(set-vector!
(-> gp-0 unknown-sphere-array00 2 local-sphere)
0.0
(+ 5734.4 (-> *TARGET-bank* body-radius))
0.0
(-> *TARGET-bank* body-radius)
)
)
)
)
0
)
;; definition for method 27 of type control-info
(defmethod get-quaternion control-info ((obj control-info))
(-> obj unknown-quaternion00)
)
;; definition for function target-align-vel-z-adjust
(defbehavior target-align-vel-z-adjust target ((arg0 float))
(let ((f1-0 (-> self control unknown-float61)))
(* arg0 (if (< 0.0 f1-0)
(* (- 1.0 f1-0) (-> self control unknown-surface01 alignv))
(-> self control unknown-surface01 alignv)
)
)
)
)
;; definition for method 16 of type target
;; INFO: Return type mismatch control-info vs collide-shape.
;; Used lq/sq
(defmethod apply-alignment target ((obj target) (arg0 int) (arg1 transformq) (arg2 vector))
(let ((s2-0 (new 'stack-no-clear 'vector)))
(set! (-> s2-0 quad) (-> arg2 quad))
(set! (-> s2-0 z) (target-align-vel-z-adjust (-> s2-0 z)))
(when (logtest? arg0 7)
(let* ((s3-0 (-> obj control unknown-matrix01))
(s0-0 (-> obj control unknown-matrix00))
(s1-0 (vector-matrix*! (new 'stack-no-clear 'vector) (-> obj control dynam gravity) s0-0))
(a1-3 (vector-matrix*! (new 'stack-no-clear 'vector) (-> obj control transv) s0-0))
)
(if (logtest? arg0 2048)
(set-vector! s1-0 0.0 0.0 0.0 1.0)
)
(when (logtest? arg0 1)
(set! (-> a1-3 x) (+ (* (-> arg1 trans x) (-> s2-0 x) (-> *display* frames-per-second))
(* (-> s1-0 x) (-> *display* seconds-per-frame))
)
)
(if (zero? (logand arg0 12))
(set! (-> a1-3 z) 0.0)
)
)
(if (and (logtest? arg0 2) (not (and (logtest? arg0 4096) (= (-> arg1 trans y) 0.0))))
(set! (-> a1-3 y) (+ (* (-> arg1 trans y) (-> s2-0 y) (-> *display* frames-per-second))
(* (-> s1-0 y) (-> *display* seconds-per-frame))
)
)
)
(when (logtest? arg0 4)
(set! (-> a1-3 z) (+ (* (-> arg1 trans z) (-> s2-0 z) (-> *display* frames-per-second))
(* (-> s1-0 z) (-> *display* seconds-per-frame))
)
)
(if (zero? (logand arg0 9))
(set! (-> a1-3 x) 0.0)
)
)
(vector-matrix*! (-> obj control transv) a1-3 s3-0)
)
)
)
(if (logtest? arg0 16)
(quaternion-normalize!
(quaternion*! (-> obj control unknown-quaternion00) (-> obj control unknown-quaternion00) (-> arg1 quat))
)
)
(the-as collide-shape (-> obj control))
)
;; definition for function average-turn-angle
(defun average-turn-angle ((arg0 target))
(let ((f30-0 0.0))
(dotimes (s5-0 8)
(+! f30-0
(fabs
(deg-diff
(atan (-> arg0 control unknown-vector-array00 s5-0 x) (-> arg0 control unknown-vector-array00 s5-0 z))
0.0
)
)
)
)
(* 0.125 f30-0)
)
)
;; definition for function can-play-stance-amibent?
(defbehavior can-play-stance-amibent? target ()
(and (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 30))
(not (-> *setting-control* current talking))
(not (-> *setting-control* current spooling))
(not (-> *setting-control* current movie))
(not (-> *setting-control* current hint))
(zero? (logand (-> self control status) 32))
(zero? (logand (-> self water flags) 512))
)
)
;; definition for function can-jump?
(defbehavior can-jump? target ((arg0 symbol))
(and (or (logtest? (-> self control status) 1)
(< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (-> *TARGET-bank* ground-timeout))
(and (logtest? (-> self control status) 1) (< 0.866 (-> self control surface-angle)))
)
(and (zero? (logand (-> self control unknown-surface01 flags) 64))
(zero? (logand (-> self state-flags) 2048))
(case arg0
(('target-wheel-flip)
(>= 0.5 (-> self control unknown-float61))
)
(else
#t
)
)
)
)
)
;; definition for function move-legs?
(defbehavior move-legs? target ()
(!= (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) stick0-speed) 0.0)
)
;; definition for function target-height-above-ground
(defbehavior target-height-above-ground target ()
(- (-> self control trans y) (-> self control shadow-pos y))
)
;; definition for function fall-test
;; INFO: Return type mismatch object vs none.
(defbehavior fall-test target ()
(when (and (zero? (logand (-> self control status) 1))
(>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (-> *TARGET-bank* ground-timeout))
(>= 0.0 (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))
(let ((v1-15 (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
)
)
(or (not (or (= v1-15 (-> self draw art-group data 59))
(= v1-15 (-> self draw art-group data 60))
(= v1-15 (-> self draw art-group data 61))
)
)
(< 4096.0 (target-height-above-ground))
)
)
)
(when (and (< (- (-> *display* base-frame-counter) (-> self control rider-time)) (-> *TARGET-bank* ground-timeout))
(logtest? (-> self control unknown-surface01 flags) #x4000)
)
(+! (-> self control transv x) (-> self control rider-last-move x))
(+! (-> self control transv z) (-> self control rider-last-move z))
)
(go target-falling #f)
)
(none)
)
;; definition for function slide-down-test
;; INFO: Return type mismatch object vs none.
(defbehavior slide-down-test target ()
(if (and (zero? (logand (-> self control status) 129))
(>= (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (-> *TARGET-bank* ground-timeout))
(logtest? (-> self control status) 4)
(< 0.5 (-> self control surface-angle))
)
(go target-slide-down)
)
(none)
)
;; definition for function smack-surface?
(defbehavior smack-surface? target ((arg0 symbol))
(and (< 0.7 (-> self control touch-angle)) (and (< (-> self control surface-angle) 0.3)
(logtest? (-> self control status) 8)
(or arg0 (zero? (logand (-> self control status) 32)))
)
)
)
;; definition for function can-wheel?
(defbehavior can-wheel? target ()
(and (logtest? (-> self control status) 1)
(or (zero? (logand (-> self control status) 8)) (>= 0.7 (-> self control touch-angle)))
(and (< (-> self control unknown-float61) 0.7) (zero? (logand (-> self state-flags) 8192)))
)
)
;; definition for function can-duck?
(defbehavior can-duck? target ()
(and (logtest? (-> self control status) 1)
(>= (-> self control unknown-float60) 0.7)
(zero? (logand (-> self water flags) 6144))
(zero? (logand (-> self state-flags) 8192))
(or (zero? (logand (-> self water flags) 1024))
(< (- (- (-> self control trans y) (- (-> self water base-height) (-> self water wade-height)))) 2457.6)
)
)
)
;; definition for function can-exit-duck?
;; Used lq/sq
(defbehavior can-exit-duck? target ()
(let ((gp-0 (new 'stack-no-clear 'collide-using-spheres-params)))
(let ((s5-0 (new 'stack-no-clear 'inline-array 'sphere 2)))
(dotimes (s4-0 2)
((method-of-type sphere new) (the-as symbol (-> s5-0 s4-0)) sphere)
)
(set! (-> s5-0 0 quad) (-> self control trans quad))
(set! (-> s5-0 0 y) (+ 5734.4 (-> *TARGET-bank* body-radius) (-> s5-0 0 y)))
(set! (-> s5-0 0 w) (-> *TARGET-bank* body-radius))
(set! (-> s5-0 1 quad) (-> self control trans quad))
(set! (-> s5-0 1 y) (+ 2867.2 (-> *TARGET-bank* body-radius) (-> s5-0 1 y)))
(set! (-> s5-0 1 w) (-> *TARGET-bank* body-radius))
(set! (-> gp-0 spheres) s5-0)
)
(set! (-> gp-0 num-spheres) (the-as uint 2))
(set! (-> gp-0 collide-with) (-> self control root-prim collide-with))
(set! (-> gp-0 proc) #f)
(set! (-> gp-0 ignore-pat) (the-as uint 1))
(set! (-> gp-0 solid-only) #t)
(if (fill-and-probe-using-spheres *collide-cache* gp-0)
#f
#t
)
)
)
;; definition for function can-hands?
(defbehavior can-hands? target ((arg0 symbol))
(cond
((or (zero? (logand (-> *cpad-list* cpads (-> self control unknown-cpad-info00 number) button0-rel 0)
(pad-buttons square)
)
)
(or (and (logtest? (-> self state-flags) 4096)
(or (zero? (logand (-> self state-flags) #x4000))
(not (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow))
(>= (-> self fact-info-target eco-level) 1.0)
)
)
)
)
(logtest? (-> self control unknown-surface01 flags) 384)
)
)
#f
)
((and (or (not arg0)
(and (< (- (-> *display* base-frame-counter) (-> self control unknown-dword11)) (-> *TARGET-bank* ground-timeout))
(< (-> self control unknown-float61) 0.7)
)
)
(>= (- (-> *display* base-frame-counter)
(if (and (= (-> self fact-info-target eco-type) (pickup-type eco-yellow))
(>= (-> self fact-info-target eco-level) 1.0)
)
(-> *TARGET-bank* yellow-attack-timeout)
(-> *TARGET-bank* attack-timeout)
)
)
(-> self control unknown-dword31)
)
)
#t
)
(else
(set! (-> self control unknown-dword32) (-> *display* base-frame-counter))
#f
)
)
)
;; definition for function can-feet?
(defbehavior can-feet? target ()
(cond
((or (logtest? (-> self state-flags) 4096) (logtest? (-> self control unknown-surface01 flags) 640))
#f
)
((>= (- (-> *display* base-frame-counter) (-> *TARGET-bank* attack-timeout)) (-> self control unknown-dword33))
#t
)
(else
(set! (-> self control unknown-dword34) (-> *display* base-frame-counter))
#f
)
)
)
;; definition for function vector-local+!
;; Used lq/sq
(defbehavior vector-local+! target ((arg0 vector) (arg1 vector))
(let ((s5-0 (new-stack-vector0)))
(vector-matrix*! s5-0 arg1 (-> self control unknown-matrix01))
(vector+! arg0 arg0 s5-0)
)
)
;; definition for function move-forward
;; Used lq/sq
(defbehavior move-forward target ((arg0 float))
(let ((a1-0 (new-stack-vector0))
(gp-0 (new-stack-vector0))
)
(set-vector! a1-0 0.0 0.0 arg0 1.0)
(vector-matrix*! gp-0 a1-0 (-> self control unknown-matrix01))
(vector+! (-> self control transv) (-> self control transv) gp-0)
)
)
;; definition for function set-forward-vel
;; Used lq/sq
(defbehavior set-forward-vel target ((arg0 float))
(let ((gp-0 (new-stack-vector0)))
(vector-matrix*! gp-0 (-> self control transv) (-> self control unknown-matrix00))
(set! (-> gp-0 z) arg0)
(set! (-> gp-0 x) 0.0)
(vector-matrix*! (-> self control transv) gp-0 (-> self control unknown-matrix01))
)
)
;; definition for function delete-back-vel
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defbehavior delete-back-vel target ()
(let ((s5-0 (new-stack-vector0)))
(vector-z-quaternion! s5-0 (-> self control dir-targ))
(let ((gp-0 (new-stack-vector0))
(f30-0 (vector-dot s5-0 (-> self control transv)))
)
0.0
(vector-! gp-0 (-> self control transv) (vector-float*! gp-0 s5-0 f30-0))
(let* ((f0-3 (vector-length gp-0))
(f1-0 f0-3)
)
(if (< f30-0 0.0)
(set! f30-0 0.0)
)
(vector+!
(-> self control transv)
(vector-float*! (-> self control transv) s5-0 f30-0)
(vector-float*! gp-0 gp-0 (/ f0-3 f1-0))
)
)
)
)
0
(none)
)
;; definition for function set-side-vel
;; Used lq/sq
(defbehavior set-side-vel target ((arg0 float))
(let ((gp-0 (new-stack-vector0)))
(vector-matrix*! gp-0 (-> self control transv) (-> self control unknown-matrix00))
(set! (-> gp-0 x) arg0)
(set! (-> gp-0 z) 0.0)
(vector-matrix*! (-> self control transv) gp-0 (-> self control unknown-matrix01))
)
)
;; definition for function target-timed-invulnerable
;; INFO: Return type mismatch int vs none.
(defun target-timed-invulnerable ((arg0 time-frame) (arg1 target))
(logior! (-> arg1 state-flags) 32)
(set! (-> arg1 control unknown-dword80) (-> *display* base-frame-counter))
(set! (-> arg1 control unknown-dword81) arg0)
(set-collide-kinds (-> arg1 control) 2 (collide-kind target-attack) (collide-kind))
0
(none)
)
;; definition for function target-timed-invulnerable-off
;; INFO: Return type mismatch int vs none.
(defun target-timed-invulnerable-off ((arg0 target))
(logclear! (-> arg0 draw status) (draw-status hidden))
(set! (-> arg0 state-flags) (logand -33 (-> arg0 state-flags)))
(set-collide-kinds (-> arg0 control) 2 (collide-kind) (collide-kind target-attack))
0
(none)
)
;; definition for method 9 of type attack-info
;; INFO: Return type mismatch attack-info vs none.
;; Used lq/sq
(defmethod combine! attack-info ((obj attack-info) (arg0 attack-info))
(with-pp
(let ((s4-0 (-> arg0 mask)))
(set! (-> obj mask) (-> arg0 mask))
(if (logtest? s4-0 8)
(set! (-> obj attacker) (-> arg0 attacker))
)
(if (logtest? s4-0 32)
(set! (-> obj mode) (-> arg0 mode))
)
(if (logtest? s4-0 2048)
(set! (-> obj angle) (-> arg0 angle))
)
(if (logtest? s4-0 512)
(set! (-> obj dist) (-> arg0 dist))
)
(if (logtest? s4-0 1024)
(set! (-> obj control) (-> arg0 control))
)
(if (logtest? s4-0 256)
(set! (-> obj speed) (-> arg0 speed))
)
(if (logtest? s4-0 64)
(set! (-> obj shove-back) (-> arg0 shove-back))
)
(if (logtest? s4-0 128)
(set! (-> obj shove-up) (-> arg0 shove-up))
)
(if (logtest? s4-0 16)
(set! (-> obj invinc-time) (-> arg0 invinc-time))
)
(if (logtest? s4-0 4096)
(set! (-> obj rotate-to) (-> arg0 rotate-to))
)
(if (logtest? s4-0 4)
(set! (-> obj intersection quad) (-> arg0 intersection quad))
)
(cond
((zero? (logand s4-0 2))
(let* ((s3-0 pp)
(s2-0 (handle->process (-> obj attacker)))
(v1-39 (if (and (nonzero? s2-0) (type-type? (-> s2-0 type) process-drawable))
s2-0
)
)
)
(when v1-39
(set! (-> obj trans quad) (-> (the-as process-drawable v1-39) root trans quad))
(vector-!
(-> obj vector)
(-> (the-as process-drawable s3-0) root trans)
(-> (the-as process-drawable v1-39) root trans)
)
(logior! (-> obj mask) 2)
)
)
)
(else
(let* ((s3-1 (handle->process (-> obj attacker)))
(a0-16 (if (and (nonzero? s3-1) (type-type? (-> s3-1 type) process-drawable))
s3-1
)
)
)
(if a0-16
(set! (-> obj trans quad) (-> (the-as process-drawable a0-16) root trans quad))
)
)
(set! (-> obj vector quad) (-> arg0 vector quad))
(if (zero? (logand s4-0 64))
(set! (-> obj shove-back) (vector-xz-length (-> obj vector)))
)
(if (zero? (logand s4-0 128))
(set! (-> obj shove-up) (-> obj vector y))
)
)
)
(if (zero? (logand (-> obj mask) 512))
(set! (-> obj dist) (fabs (-> obj shove-back)))
)
(if (logtest? s4-0 1)
(set! (-> obj trans quad) (-> arg0 trans quad))
)
)
(none)
)
)
;; definition for function ground-tween-initialize
(defbehavior ground-tween-initialize target ((arg0 ground-tween-info) (arg1 uint) (arg2 uint) (arg3 uint) (arg4 uint) (arg5 uint) (arg6 uint))
(set! (-> arg0 group 0) arg2)
(set! (-> arg0 group 1) arg3)
(set! (-> arg0 group 2) arg4)
(set! (-> arg0 group 3) arg5)
(set! (-> arg0 group 4) arg6)
(dotimes (s3-0 3)
(set! (-> arg0 chan s3-0) (+ arg1 s3-0))
(let ((s2-0 (-> self skel root-channel (-> arg0 chan s3-0))))
(set! (-> s2-0 frame-interp) (fabs (-> arg0 blend s3-0)))
(joint-control-channel-group-eval! s2-0 (the-as art-joint-anim arg2) num-func-identity)
(set! (-> s2-0 frame-num) 0.0)
)
)
arg0
)
;; definition for function ground-tween-update
;; INFO: Return type mismatch int vs none.
(defbehavior ground-tween-update target ((arg0 ground-tween-info) (arg1 float) (arg2 float))
(let ((f0-1 (fmax -1.0 (fmin 1.0 (* 2.0 arg1))))
(f30-0 (fmax -1.0 (fmin 1.0 (* 1.6 arg2))))
)
(let ((f1-5 (fabs (- f0-1 (the-as float (-> arg0 blend 1))))))
(set! (-> arg0 blend 1) (seek (the-as float (-> arg0 blend 1)) f0-1 (fmax 0.05 (fmin 0.2 (* 0.25 f1-5)))))
)
(let ((f0-7 (fabs (- f30-0 (the-as float (-> arg0 blend 2))))))
(set! (-> arg0 blend 2) (seek (the-as float (-> arg0 blend 2)) f30-0 (fmax 0.05 (fmin 0.2 (* 0.25 f0-7)))))
)
)
(cond
((>= (-> arg0 blend 1) 0.0)
(let ((v1-4 (-> self skel root-channel (-> arg0 chan 1))))
(set! (-> v1-4 frame-interp) (fabs (-> arg0 blend 1)))
(set! (-> v1-4 frame-group) (the-as art-joint-anim (-> arg0 group 1)))
)
)
(else
(let ((v1-7 (-> self skel root-channel (-> arg0 chan 1))))
(set! (-> v1-7 frame-interp) (fabs (-> arg0 blend 1)))
(set! (-> v1-7 frame-group) (the-as art-joint-anim (-> arg0 group 2)))
)
)
)
(cond
((>= (-> arg0 blend 2) 0.0)
(let ((v1-10 (-> self skel root-channel (-> arg0 chan 2))))
(set! (-> v1-10 frame-interp) (fabs (-> arg0 blend 2)))
(set! (-> v1-10 frame-group) (the-as art-joint-anim (-> arg0 group 4)))
)
)
(else
(let ((v1-13 (-> self skel root-channel (-> arg0 chan 2))))
(set! (-> v1-13 frame-interp) (fabs (-> arg0 blend 2)))
(set! (-> v1-13 frame-group) (the-as art-joint-anim (-> arg0 group 3)))
)
)
)
0
(none)
)
;; definition for function target-pos
(defun target-pos ((arg0 int))
(let ((a1-0 *target*))
(cond
(a1-0
(if (zero? arg0)
(-> a1-0 control trans)
(vector<-cspace! (new 'static 'vector) (-> a1-0 node-list data arg0))
)
)
(else
(camera-pos)
)
)
)
)
;; definition for function target-cam-pos
;; INFO: Return type mismatch object vs vector.
;; Used lq/sq
(defun target-cam-pos ()
(let ((gp-0 *target*))
(the-as
vector
(cond
((not gp-0)
(camera-pos)
)
((logtest? (-> gp-0 state-flags) 1024)
(add-debug-sphere
*display-camera-marks*
(bucket-id debug-draw1)
(-> gp-0 alt-cam-pos)
819.2
(new 'static 'rgba :r #xff :a #x80)
)
(-> gp-0 alt-cam-pos)
)
((logtest? #x20000 (-> gp-0 state-flags))
(add-debug-sphere
*display-camera-marks*
(bucket-id debug-draw1)
(-> gp-0 alt-cam-pos)
819.2
(new 'static 'rgba :r #xff :a #x80)
)
(-> gp-0 alt-cam-pos)
)
((logtest? #x80000 (-> gp-0 state-flags))
(let ((s5-0 (the-as object (new 'static 'vector))))
(set! (-> (the-as vector s5-0) quad) (-> (&-> (-> gp-0 control) unknown-qword00) 0))
(set! (-> (the-as vector s5-0) y) (fmax (-> (the-as vector s5-0) y) (-> gp-0 alt-cam-pos y)))
(add-debug-sphere
*display-camera-marks*
(bucket-id debug-draw1)
(the-as vector s5-0)
819.2
(new 'static 'rgba :r #xff :a #x80)
)
s5-0
)
)
(else
(add-debug-sphere
*display-camera-marks*
(bucket-id debug-draw1)
(the-as vector (&-> (-> gp-0 control) unknown-qword00))
819.2
(new 'static 'rgba :r #xff :a #x80)
)
(&-> (-> gp-0 control) unknown-qword00)
)
)
)
)
)
;; definition for function target-joint-pos
(defun target-joint-pos ()
(let ((v1-0 *target*))
(if v1-0
(vector<-cspace! (new 'static 'vector) (-> v1-0 node-list data (-> v1-0 draw origin-joint-index)))
(camera-pos)
)
)
)
;; definition for function target-rot
(defun target-rot ()
(let ((v1-0 *target*))
(if v1-0
(-> v1-0 control unknown-quaternion00)
*unity-quaternion*
)
)
)