cleanup: cleanup all-types and all state definitions (#1062)

* cleanup: cleanup all-types and all state definitions

* these are fine

* these are fine

* these are fine

* everything is fine

* gsrc updated

* remove define-externs in gsrc
This commit is contained in:
Tyler Wilding 2022-01-08 18:23:30 -05:00 committed by GitHub
parent 691c33f8d9
commit 50197c0695
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
160 changed files with 19508 additions and 32832 deletions

File diff suppressed because it is too large Load Diff

View File

@ -10,6 +10,7 @@
;; DECOMP BEGINS
;; this file is debug only
(declare-file (debug))
(when *debug-segment*
(define *camera-layout-blink* #f)
@ -147,6 +148,9 @@
:method-count-assert 14
:size-assert #x90
:flag-assert #xe02000090
(:states
cam-layout-active
)
)

View File

@ -6,10 +6,8 @@
;; dgos: GAME, ENGINE
;; TODO - for basebutton
(define-extern cam-fixed (state camera-slave))
;; Needed here
(define-extern cam-decel (state camera-slave))
(define-extern camera-master-debug (function camera-master none))
;; DECOMP BEGINS

View File

@ -5,7 +5,6 @@
;; name in dgo: cam-states
;; dgos: GAME, ENGINE
(define-extern cam-string (state camera-slave))
;; DECOMP BEGINS

View File

@ -14,18 +14,11 @@
(declare-type cam-rotation-tracker structure)
(declare-type camera-combiner process)
;; TODO - for cam-master
(define-extern cam-eye (state camera-slave))
;; TODO - for camera
(define-extern cam-circular (state camera-slave))
(define-extern cam-standoff-read-entity (state camera-slave))
(define-extern cam-spline (state camera-slave))
(define-extern *camera-base-mode* (state camera-slave))
(define-extern cam-fixed-read-entity (state camera-slave))
(define-extern camera-line-rel-len (function vector vector float vector4w none))
(define-extern cam-calc-follow! (function cam-rotation-tracker vector symbol vector))
(define-extern slave-set-rotation! (function cam-rotation-tracker vector float float symbol none))
;; TODO - for cam-combiner
(define-extern cam-combiner-active (state camera-combiner))
(define-extern paused? (function symbol))
;; TODO - for cam-start
(define-extern cam-master-init (function none :behavior camera-master))
@ -88,20 +81,18 @@
)
(define
*CAMERA-bank*
(new 'static 'camera-bank
:collide-move-rad 1638.4
:min-detectable-velocity 40.96
:attack-timeout (seconds 0.25)
:default-string-max-y (meters 3.0)
:default-string-min-y (meters 1.0)
:default-string-max-z (meters 12.5)
:default-string-min-z (meters 5.0)
:default-string-push-z (meters 10.0)
:default-tilt-adjust (degrees -6.5000005)
)
)
(define *CAMERA-bank* (new 'static 'camera-bank
:collide-move-rad 1638.4
:min-detectable-velocity 40.96
:attack-timeout (seconds 0.25)
:default-string-max-y (meters 3.0)
:default-string-min-y (meters 1.0)
:default-string-max-z (meters 12.5)
:default-string-min-z (meters 5.0)
:default-string-push-z (meters 10.0)
:default-tilt-adjust (degrees -6.5000005)
)
)
(deftype cam-index (structure)
((flags cam-index-options :offset-assert 0)
@ -200,10 +191,7 @@
)
(defmethod
init-cam-float-seeker
cam-float-seeker
((obj cam-float-seeker) (arg0 float) (arg1 float) (arg2 float) (arg3 float))
(defmethod init-cam-float-seeker cam-float-seeker ((obj cam-float-seeker) (arg0 float) (arg1 float) (arg2 float) (arg3 float))
(set! (-> obj target) arg0)
(set! (-> obj value) arg0)
(set! (-> obj vel) 0.0)
@ -214,10 +202,7 @@
(none)
)
(defmethod
copy-cam-float-seeker
cam-float-seeker
((obj cam-float-seeker) (arg0 cam-float-seeker))
(defmethod copy-cam-float-seeker cam-float-seeker ((obj cam-float-seeker) (arg0 cam-float-seeker))
(set! (-> obj target) (-> arg0 target))
(set! (-> obj value) (-> arg0 value))
(set! (-> obj vel) (-> arg0 vel))
@ -234,21 +219,20 @@
(let* ((pos-error (- (+ (-> obj target) offset) (-> obj value)))
(partial-velocity-limit (* (-> obj max-partial) (fabs pos-error)))
)
(let
((daccel (* pos-error (* (-> obj accel) (-> *display* time-adjust-ratio)))))
(+! (-> obj vel) daccel)
(let ((daccel (* pos-error (* (-> obj accel) (-> *display* time-adjust-ratio)))))
(+! (-> obj vel) daccel)
)
(let ((abs-vel (fabs (-> obj vel)))
(abs-vel-limit (fmin partial-velocity-limit (-> obj max-vel)))
)
(if (< abs-vel-limit abs-vel)
(set! (-> obj vel) (* (-> obj vel) (/ abs-vel-limit abs-vel)))
)
)
)
(let ((abs-vel (fabs (-> obj vel)))
(abs-vel-limit (fmin partial-velocity-limit (-> obj max-vel)))
)
(if (< abs-vel-limit abs-vel)
(set! (-> obj vel) (* (-> obj vel) (/ abs-vel-limit abs-vel)))
)
)
)
(let ((dpos (* (-> obj vel) (-> *display* time-adjust-ratio))))
(+! (-> obj value) dpos)
)
(+! (-> obj value) dpos)
)
0
(none)
)
@ -256,9 +240,9 @@
(defmethod jump-to-target! cam-float-seeker ((obj cam-float-seeker) (arg0 float))
(set! (-> obj value) (+ (-> obj target) arg0))
(let ((f0-2 0.0))
(set! (-> obj vel) f0-2)
f0-2
)
(set! (-> obj vel) f0-2)
f0-2
)
)
(deftype cam-vector-seeker (structure)
@ -279,20 +263,17 @@
)
(defmethod
init!
cam-vector-seeker
((obj cam-vector-seeker) (arg0 vector) (arg1 float) (arg2 float) (arg3 float))
(defmethod init! cam-vector-seeker ((obj cam-vector-seeker) (arg0 vector) (arg1 float) (arg2 float) (arg3 float))
(cond
(arg0
(set! (-> obj target quad) (-> arg0 quad))
(set! (-> obj value quad) (-> arg0 quad))
(arg0
(set! (-> obj target quad) (-> arg0 quad))
(set! (-> obj value quad) (-> arg0 quad))
)
(else
(vector-reset! (-> obj target))
(vector-reset! (-> obj value))
)
)
(else
(vector-reset! (-> obj target))
(vector-reset! (-> obj value))
)
)
(vector-reset! (-> obj vel))
(set! (-> obj accel) arg1)
(set! (-> obj max-vel) arg2)
@ -303,34 +284,30 @@
(defmethod update! cam-vector-seeker ((obj cam-vector-seeker) (arg0 vector))
(let ((gp-0 (new 'stack-no-clear 'vector)))
0.0
(cond
(arg0
(vector+! gp-0 (-> obj target) arg0)
(vector-! gp-0 gp-0 (-> obj value))
)
(else
(vector-! gp-0 (-> obj target) (-> obj value))
)
)
(let ((f30-1 (* (-> obj max-partial) (vector-length gp-0))))
(vector-float*!
gp-0
gp-0
(* (-> obj accel) (-> *display* time-adjust-ratio))
)
(vector+! (-> obj vel) (-> obj vel) gp-0)
(let ((f0-4 (vector-length (-> obj vel)))
(f1-2 (fmin f30-1 (-> obj max-vel)))
)
(if (< f1-2 f0-4)
(vector-float*! (-> obj vel) (-> obj vel) (/ f1-2 f0-4))
0.0
(cond
(arg0
(vector+! gp-0 (-> obj target) arg0)
(vector-! gp-0 gp-0 (-> obj value))
)
(else
(vector-! gp-0 (-> obj target) (-> obj value))
)
)
)
(let ((f30-1 (* (-> obj max-partial) (vector-length gp-0))))
(vector-float*! gp-0 gp-0 (* (-> obj accel) (-> *display* time-adjust-ratio)))
(vector+! (-> obj vel) (-> obj vel) gp-0)
(let ((f0-4 (vector-length (-> obj vel)))
(f1-2 (fmin f30-1 (-> obj max-vel)))
)
(if (< f1-2 f0-4)
(vector-float*! (-> obj vel) (-> obj vel) (/ f1-2 f0-4))
)
)
)
(vector-float*! gp-0 (-> obj vel) (-> *display* time-adjust-ratio))
(vector+! (-> obj value) (-> obj value) gp-0)
)
(vector-float*! gp-0 (-> obj vel) (-> *display* time-adjust-ratio))
(vector+! (-> obj value) (-> obj value) gp-0)
)
0
(none)
)
@ -371,66 +348,97 @@
:method-count-assert 14
:size-assert #x1e0
:flag-assert #xe017001e0
(:states
cam-combiner-active
)
)
(deftype camera-slave (process)
((trans vector :inline :offset-assert 112)
(fov float :offset-assert 128)
(fov0 float :offset-assert 132)
(fov1 float :offset-assert 136)
(fov-index cam-index :inline :offset-assert 144)
(tracking cam-rotation-tracker :inline :offset-assert 192)
(view-off-param float :offset-assert 400)
(unknown-symbol symbol :offset 412)
(view-off vector :inline :offset-assert 416)
(min-z-override float :offset-assert 432)
(view-flat vector :inline :offset-assert 448)
(string-vel-dir uint32 :offset-assert 464)
(string-trans vector :inline :offset-assert 480)
(position-spline tracking-spline :inline :offset-assert 496)
(pivot-pt vector :inline :offset-assert 2144)
(pivot-rad float :offset-assert 2160)
(circular-follow vector :inline :offset-assert 2176)
(max-angle-offset float :offset-assert 2192)
(max-angle-curr float :offset-assert 2196)
(options uint32 :offset-assert 2200)
(cam-entity entity :offset-assert 2204)
(velocity vector :inline :offset-assert 2208)
(desired-pos vector :inline :offset-assert 2224)
(time-dist-too-far uint32 :offset-assert 2240)
(los-state slave-los-state :offset-assert 2244)
(good-point vector :inline :offset-assert 2256)
(los-tgt-spline-pt int32 :offset-assert 2272)
(los-tgt-spline-pt-incarnation int32 :offset-assert 2276)
(los-last-pos vector :inline :offset-assert 2288)
(intro-curve curve :inline :offset-assert 2304)
(intro-offset vector :inline :offset-assert 2336)
(intro-t float :offset-assert 2352)
(intro-t-step float :offset-assert 2356)
(outro-exit-value float :offset-assert 2360)
(spline-exists basic :offset-assert 2364)
(spline-curve curve :inline :offset-assert 2368)
(spline-offset vector :inline :offset-assert 2400)
(index cam-index :inline :offset-assert 2416)
(saved-pt vector :inline :offset-assert 2464)
(spline-tt float :offset-assert 2480)
(spline-follow-dist float :offset-assert 2484)
(change-event-from (pointer process-drawable) :offset-assert 2488) ;; mistycannon
(enter-has-run symbol :offset-assert 2492)
(blend-from-type uint64 :offset-assert 2496)
(blend-to-type uint64 :offset-assert 2504)
(have-phony-joystick basic :offset-assert 2512)
(phony-joystick-x float :offset-assert 2516)
(phony-joystick-y float :offset-assert 2520)
(string-min-val vector :inline :offset-assert 2528)
(string-max-val vector :inline :offset-assert 2544)
(string-val-locked basic :offset-assert 2560)
((trans vector :inline :offset-assert 112)
(fov float :offset-assert 128)
(fov0 float :offset-assert 132)
(fov1 float :offset-assert 136)
(fov-index cam-index :inline :offset-assert 144)
(tracking cam-rotation-tracker :inline :offset-assert 192)
(view-off-param float :offset-assert 400)
(unknown-symbol symbol :offset 412)
(view-off vector :inline :offset-assert 416)
(min-z-override float :offset-assert 432)
(view-flat vector :inline :offset-assert 448)
(string-vel-dir uint32 :offset-assert 464)
(string-trans vector :inline :offset-assert 480)
(position-spline tracking-spline :inline :offset-assert 496)
(pivot-pt vector :inline :offset-assert 2144)
(pivot-rad float :offset-assert 2160)
(circular-follow vector :inline :offset-assert 2176)
(max-angle-offset float :offset-assert 2192)
(max-angle-curr float :offset-assert 2196)
(options uint32 :offset-assert 2200)
(cam-entity entity :offset-assert 2204)
(velocity vector :inline :offset-assert 2208)
(desired-pos vector :inline :offset-assert 2224)
(time-dist-too-far uint32 :offset-assert 2240)
(los-state slave-los-state :offset-assert 2244)
(good-point vector :inline :offset-assert 2256)
(los-tgt-spline-pt int32 :offset-assert 2272)
(los-tgt-spline-pt-incarnation int32 :offset-assert 2276)
(los-last-pos vector :inline :offset-assert 2288)
(intro-curve curve :inline :offset-assert 2304)
(intro-offset vector :inline :offset-assert 2336)
(intro-t float :offset-assert 2352)
(intro-t-step float :offset-assert 2356)
(outro-exit-value float :offset-assert 2360)
(spline-exists basic :offset-assert 2364)
(spline-curve curve :inline :offset-assert 2368)
(spline-offset vector :inline :offset-assert 2400)
(index cam-index :inline :offset-assert 2416)
(saved-pt vector :inline :offset-assert 2464)
(spline-tt float :offset-assert 2480)
(spline-follow-dist float :offset-assert 2484)
(change-event-from (pointer process-drawable) :offset-assert 2488)
(enter-has-run symbol :offset-assert 2492)
(blend-from-type uint64 :offset-assert 2496)
(blend-to-type uint64 :offset-assert 2504)
(have-phony-joystick basic :offset-assert 2512)
(phony-joystick-x float :offset-assert 2516)
(phony-joystick-y float :offset-assert 2520)
(string-min-val vector :inline :offset-assert 2528)
(string-max-val vector :inline :offset-assert 2544)
(string-val-locked basic :offset-assert 2560)
)
:heap-base #x9a0
:method-count-assert 14
:size-assert #xa04
:flag-assert #xe09a00a04
(:states
*camera-base-mode*
cam-bike
cam-billy
cam-circular
cam-decel
cam-endlessfall
cam-eye
cam-fixed
cam-fixed-read-entity
cam-free-floating
cam-launcher-longfall
cam-launcher-shortfall
cam-lookat
cam-mistycannon
cam-orbit
cam-periscope
cam-point-watch
cam-pov
cam-pov-track
cam-pov180
cam-robotboss
cam-spline
cam-standoff
cam-standoff-read-entity
cam-stick
cam-string
)
)
@ -493,6 +501,10 @@
:method-count-assert 14
:size-assert #x964
:flag-assert #xe09000964
(:states
cam-master-active
list-keeper-active
)
)

View File

@ -5,8 +5,6 @@
;; name in dgo: camera
;; dgos: GAME, ENGINE
(define-extern cam-free-floating (state camera-slave))
(define-extern cam-master-active (state camera-master))
;; DECOMP BEGINS

View File

@ -9,7 +9,6 @@
(define-extern *edit-instance* string)
;; Necessary forward declarations
(define-extern cam-robotboss (state camera-slave))
;; DECOMP BEGINS

View File

@ -9,38 +9,44 @@
(define-extern *part-tester* part-tester)
;; DECOMP BEGINS
;; this file is debug only
(declare-file (debug))
(when *debug-segment*
;; failed to figure out what this is:
(set!
(-> *part-group-id-table* 105)
(new 'static 'sparticle-launch-group
:length 2
:duration #xbb8
:linger-duration #x5dc
:name "group-part-tester"
:launcher
(new 'static 'inline-array sparticle-group-item 2 (sp-item 56) (sp-item 57))
:bounds (new 'static 'sphere :w 4096.0)
)
)
(set! (-> *part-group-id-table* 105)
(new 'static 'sparticle-launch-group
:length 2
:duration #xbb8
:linger-duration #x5dc
:name "group-part-tester"
:launcher
(new 'static 'inline-array sparticle-group-item 2 (sp-item 56) (sp-item 57))
:bounds (new 'static 'sphere :w 4096.0)
)
)
(deftype part-tester (process)
((root trsqv :offset-assert 112)
(part sparticle-launch-control :offset-assert 116)
(old-group sparticle-launch-group :offset-assert 120)
(old-group sparticle-launch-group :offset-assert 120)
)
:heap-base #x100
:method-count-assert 14
:size-assert #x7c
:flag-assert #xe0100007c
(:states
part-tester-idle
)
)
(define *part-tester-name* (the-as string #f))
(defmethod deactivate part-tester ((obj part-tester))
(if (nonzero? (-> obj part))
(kill-and-free-particles (-> obj part))
)
(kill-and-free-particles (-> obj part))
)
((method-of-type process deactivate) obj)
(none)
)
@ -52,18 +58,10 @@
(let ((gp-0 (entity-by-name *part-tester-name*)))
(when gp-0
(let ((s5-0 (-> gp-0 extra process)))
(if
(and
s5-0
(type-type? (-> s5-0 type) process-drawable)
(nonzero? (-> (the-as process-drawable s5-0) root))
(if (and s5-0 (type-type? (-> s5-0 type) process-drawable) (nonzero? (-> (the-as process-drawable s5-0) root)))
(set! (-> self root trans quad) (-> (the-as process-drawable s5-0) root trans quad))
(set! (-> self root trans quad) (-> gp-0 extra trans quad))
)
(set!
(-> self root trans quad)
(-> (the-as process-drawable s5-0) root trans quad)
)
(set! (-> self root trans quad) (-> gp-0 extra trans quad))
)
)
)
)
@ -73,18 +71,8 @@
(-> self root trans)
(the-as rgba (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80))
)
;; change this line to change the particle group to test
;; notes:
;; - 3d particles won't work
;; - particles that use aux list won't work
;; - some particles may have callbacks that won't work yet
;; - you need to load the level with the particle defs first
;; - there is an issue with blending. check the "always" box as a temporary workaround
;; - the visibilty check also doesn't work. comment it out in defmethod spawn.
(let ((gp-1 (-> *part-group-id-table* 105)))
(let ((s5-1 (-> self root trans)))
(when (!= gp-1 (-> self old-group))
(when (nonzero? (-> self part))
(kill-and-free-particles (-> self part))
@ -92,23 +80,18 @@
)
(set! (-> self part) (create-launch-control gp-1 self))
)
(when (nonzero? (-> self part))
(spawn (-> self part) (cond
((logtest?
(-> gp-1 flags)
(sp-group-flag screen-space)
(if (nonzero? (-> self part))
(spawn (-> self part) (cond
((logtest? (-> gp-1 flags) (sp-group-flag screen-space))
*zero-vector*
)
*zero-vector*
)
(else
(empty)
s5-1
(else
(empty)
s5-1
)
)
)
)
)
)
)
)
(set! (-> self old-group) gp-1)
)
@ -126,36 +109,27 @@
(none)
)
(define-perm *debug-part-dead-pool* dead-pool
(new 'debug 'dead-pool 1 #x10000 '*debug-part-dead-pool*)
)
(define-perm *debug-part-dead-pool* dead-pool (new 'debug 'dead-pool 1 #x10000 '*debug-part-dead-pool*))
(defun start-part ()
(kill-by-type part-tester *active-pool*)
(let ((gp-0 (get-process *debug-part-dead-pool* part-tester #x4000)))
(when gp-0
(let ((t9-2 (method-of-type part-tester activate)))
(t9-2
(the-as part-tester gp-0)
*default-pool*
'part-tester
(the-as pointer #x70004000)
(when gp-0
(let ((t9-2 (method-of-type part-tester activate)))
(t9-2 (the-as part-tester gp-0) *default-pool* 'part-tester (the-as pointer #x70004000))
)
(run-now-in-process gp-0 part-tester-init-by-other (if *anim-tester*
(-> *anim-tester* 0 root trans)
(target-pos 0)
)
)
(-> gp-0 ppointer)
)
)
(run-now-in-process gp-0 part-tester-init-by-other (if *anim-tester*
(->
*anim-tester*
0
root
trans
)
(target-pos 0)
)
)
(-> gp-0 ppointer)
)
)
(none)
)
)

View File

@ -7,14 +7,12 @@
;; DECOMP BEGINS
(define
*viewer-sg*
(new 'static 'skeleton-group
:bounds (new 'static 'vector :w 16384.0)
:lod-dist
(new 'static 'array float 4 4095996000.0 0.0 0.0 0.0)
)
)
(define *viewer-sg* (new 'static 'skeleton-group
:bounds (new 'static 'vector :w 16384.0)
:lod-dist
(new 'static 'array float 4 4095996000.0 0.0 0.0 0.0)
)
)
(deftype viewer (process-drawable)
((janim art-joint-anim :offset-assert 176)
@ -23,6 +21,9 @@
:method-count-assert 20
:size-assert #xb4
:flag-assert #x14005000b4
(:states
viewer-process
)
)
;; NOTE - manually added
@ -31,34 +32,27 @@
(defstate viewer-process (viewer)
:code
(behavior ()
(while #t
(let ((a0-0 (-> self skel root-channel 0)))
(set! (-> a0-0 frame-group) (-> self janim))
(set! (-> a0-0 param 0) (the float (+ (-> self janim data 0 length) -1)))
(set! (-> a0-0 param 1) 1.0)
(set! (-> a0-0 frame-num) 0.0)
(joint-control-channel-group! a0-0 (-> self janim) num-func-seek!)
)
(until (ja-done? 0)
(TODO-RENAME-9 (-> self align))
(TODO-RENAME-10 (-> self align) 31 1.0 1.0 1.0)
(suspend)
(let ((a0-3 (-> self skel root-channel 0)))
(set!
(-> a0-3 param 0)
(the float (+ (-> a0-3 frame-group data 0 length) -1))
)
(set! (-> a0-3 param 1) 1.0)
(joint-control-channel-group-eval!
a0-3
(the-as art-joint-anim #f)
num-func-seek!
)
(while #t
(let ((a0-0 (-> self skel root-channel 0)))
(set! (-> a0-0 frame-group) (-> self janim))
(set! (-> a0-0 param 0) (the float (+ (-> self janim data 0 length) -1)))
(set! (-> a0-0 param 1) 1.0)
(set! (-> a0-0 frame-num) 0.0)
(joint-control-channel-group! a0-0 (-> self janim) num-func-seek!)
)
(until (ja-done? 0)
(TODO-RENAME-9 (-> self align))
(TODO-RENAME-10 (-> self align) 31 1.0 1.0 1.0)
(suspend)
(let ((a0-3 (-> self skel root-channel 0)))
(set! (-> a0-3 param 0) (the float (+ (-> a0-3 frame-group data 0 length) -1)))
(set! (-> a0-3 param 1) 1.0)
(joint-control-channel-group-eval! a0-3 (the-as art-joint-anim #f) num-func-seek!)
)
)
)
)
(none)
)
(none)
)
:post
(the-as (function none :behavior viewer) ja-post)
)
@ -73,122 +67,117 @@
(let ((s5-0 (-> arg2 data))
(gp-0 (-> arg0 data))
)
(set! (-> gp-0 0) (the-as uint 0))
(dotimes (s2-0 (- (length arg2) (+ (length arg1) 2)))
(when (= (-> s5-0 0) 45)
(let ((s1-0 #f))
(dotimes (s0-0 (length arg1))
(if (!= (-> s5-0 (+ s0-0 1)) (-> arg1 data s0-0))
(goto cfg-10)
(set! (-> gp-0 0) (the-as uint 0))
(dotimes (s2-0 (- (length arg2) (+ (length arg1) 2)))
(when (= (-> s5-0 0) 45)
(let ((s1-0 #f))
(dotimes (s0-0 (length arg1))
(if (!= (-> s5-0 (+ s0-0 1)) (-> arg1 data s0-0))
(goto cfg-10)
)
)
(if (= (-> s5-0 (+ (length arg1) 1)) 45)
(set! s1-0 #t)
)
(label cfg-10)
(when s1-0
(let ((v1-22 (&+ s5-0 (+ (length arg1) 2))))
(while (and (!= (-> v1-22 0) 45) (nonzero? (-> v1-22 0)))
(set! (-> gp-0 0) (-> v1-22 0))
(set! v1-22 (&-> v1-22 1))
(set! gp-0 (&-> gp-0 1))
)
)
(set! (-> gp-0 0) (the-as uint 0))
(return #t)
)
)
)
)
(if (= (-> s5-0 (+ (length arg1) 1)) 45)
(set! s1-0 #t)
)
(label cfg-10)
(when s1-0
(let ((v1-22 (&+ s5-0 (+ (length arg1) 2))))
(while (and (!= (-> v1-22 0) 45) (nonzero? (-> v1-22 0)))
(set! (-> gp-0 0) (-> v1-22 0))
(set! v1-22 (&-> v1-22 1))
(set! gp-0 (&-> gp-0 1))
)
)
(set! (-> gp-0 0) (the-as uint 0))
(return #t)
)
(set! s5-0 (&-> s5-0 1))
)
)
(set! s5-0 (&-> s5-0 1))
)
)
#f
)
(defun art-part-name ((arg0 string))
(let ((gp-0 (-> arg0 data)))
(while (nonzero? (-> gp-0 0))
(when (= (-> gp-0 0) 45)
(copyn-string<-charp
viewer-string
(&-> gp-0 1)
(-
(length arg0)
(the-as int (+ (- -1 (the-as int (-> arg0 data))) (the-as int gp-0)))
)
(while (nonzero? (-> gp-0 0))
(when (= (-> gp-0 0) 45)
(copyn-string<-charp
viewer-string
(&-> gp-0 1)
(- (length arg0) (the-as int (+ (- -1 (the-as int (-> arg0 data))) (the-as int gp-0))))
)
(return viewer-string)
)
(set! gp-0 (&-> gp-0 1))
)
(return viewer-string)
)
(set! gp-0 (&-> gp-0 1))
)
)
(clear viewer-string)
)
(defbehavior init-viewer viewer ((arg0 string))
(let ((s2-0 (load-to-heap-by-name (-> (if (-> self entity)
(-> self entity extra level)
(-> *level* level-default)
)
art-group
)
arg0 #f global 0
)
)
(let ((s2-0 (load-to-heap-by-name
(-> (if (-> self entity)
(-> self entity extra level)
(-> *level* level-default)
)
art-group
)
arg0
#f
global
0
)
)
(s5-0 (the-as int #f))
(s4-0 (the-as int #f))
(s3-0 (the-as int #f))
)
(when s2-0
(dotimes (s1-0 (-> s2-0 length))
(cond
((and
(not s4-0)
(= (-> s2-0 data s1-0 type) merc-ctrl)
(or
(zero? (length viewer-geo-name))
(string= (art-part-name (-> s2-0 data s1-0 name)) viewer-geo-name)
)
(when s2-0
(dotimes (s1-0 (-> s2-0 length))
(cond
((and
(not s4-0)
(= (-> s2-0 data s1-0 type) merc-ctrl)
(or (zero? (length viewer-geo-name)) (string= (art-part-name (-> s2-0 data s1-0 name)) viewer-geo-name))
)
(set! s4-0 s1-0)
)
((= (-> s2-0 data s1-0 type) art-joint-geo)
(set! s3-0 s1-0)
)
((and
(= (-> s2-0 data s1-0 type) art-joint-anim)
(or (zero? (length viewer-ja-name)) (string= (art-part-name (-> s2-0 data s1-0 name)) viewer-ja-name))
)
(set! s5-0 s1-0)
)
)
(if (and s4-0 s3-0 s5-0)
(goto cfg-34)
)
)
(set! s4-0 s1-0)
)
((= (-> s2-0 data s1-0 type) art-joint-geo)
(set! s3-0 s1-0)
)
((and
(= (-> s2-0 data s1-0 type) art-joint-anim)
(or
(zero? (length viewer-ja-name))
(string= (art-part-name (-> s2-0 data s1-0 name)) viewer-ja-name)
)
(label cfg-34)
(cond
((and s4-0 s3-0 s5-0)
(set! (-> self janim) (the-as art-joint-anim (-> s2-0 data s5-0)))
(let ((a1-3 *viewer-sg*))
(set! (-> a1-3 art-group-name) arg0)
(set! (-> a1-3 jgeo) s3-0)
(set! (-> a1-3 janim) s5-0)
(set! (-> a1-3 mgeo 0) s4-0)
(initialize-skeleton self a1-3 '())
)
)
(set! s5-0 s1-0)
(set! (-> self align) (new 'process 'align-control self))
(go viewer-process)
)
(else
(go process-drawable-art-error arg0)
)
)
(if (and s4-0 s3-0 s5-0)
(goto cfg-34)
)
)
)
(label cfg-34)
(cond
((and s4-0 s3-0 s5-0)
(set! (-> self janim) (the-as art-joint-anim (-> s2-0 data s5-0)))
(let ((a1-3 *viewer-sg*))
(set! (-> a1-3 art-group-name) arg0)
(set! (-> a1-3 jgeo) s3-0)
(set! (-> a1-3 janim) s5-0)
(set! (-> a1-3 mgeo 0) s4-0)
(initialize-skeleton self a1-3 '())
)
(set! (-> self align) (new 'process 'align-control self))
(go viewer-process)
)
(else
(go process-drawable-art-error arg0)
)
)
)
)
(defmethod init-from-entity! viewer ((obj viewer) (arg0 entity-actor))
@ -198,11 +187,11 @@
(actor-get-arg! viewer-ja-name "ja" (res-lump-struct arg0 'name string))
(actor-get-arg! viewer-geo-name "geo" (res-lump-struct arg0 'name string))
(let ((gp-1 (-> arg0 etype)))
(if (valid? gp-1 type #f #f 0)
(init-viewer (symbol->string (-> gp-1 symbol)))
(go process-drawable-art-error "unknown")
(if (valid? gp-1 type #f #f 0)
(init-viewer (symbol->string (-> gp-1 symbol)))
(go process-drawable-art-error "unknown")
)
)
)
(none)
)
@ -221,36 +210,31 @@
(defun add-a-bunch ((arg0 string) (arg1 int) (arg2 int) (arg3 float))
(local-vars (sv-32 process))
(dotimes (s2-0 arg1)
(dotimes (s1-0 arg2)
(let ((s0-0 (new-stack-vector0)))
(position-in-front-of-camera! s0-0 40960.0 4096.0)
(+! (-> s0-0 x) (the float (* (- s2-0 (/ arg1 2)) (the int arg3))))
(+! (-> s0-0 z) (the float (* (- s1-0 (/ arg2 2)) (the int arg3))))
(set! sv-32 (get-process *default-dead-pool* viewer #x4000))
(when sv-32
(let ((t9-2 (method-of-type viewer activate)))
(t9-2
(the-as viewer sv-32)
*entity-pool*
'viewer
(the-as pointer #x70004000)
(dotimes (s1-0 arg2)
(let ((s0-0 (new-stack-vector0)))
(position-in-front-of-camera! s0-0 40960.0 4096.0)
(+! (-> s0-0 x) (the float (* (- s2-0 (/ arg1 2)) (the int arg3))))
(+! (-> s0-0 z) (the float (* (- s1-0 (/ arg2 2)) (the int arg3))))
(set! sv-32 (get-process *default-dead-pool* viewer #x4000))
(when sv-32
(let ((t9-2 (method-of-type viewer activate)))
(t9-2 (the-as viewer sv-32) *entity-pool* 'viewer (the-as pointer #x70004000))
)
(run-now-in-process sv-32 init-viewer-for-other arg0 s0-0)
(-> sv-32 ppointer)
)
)
)
(run-now-in-process sv-32 init-viewer-for-other arg0 s0-0)
(-> sv-32 ppointer)
)
)
)
)
#f
)
(defun birth-viewer ((arg0 process) (arg1 entity))
(set! (-> arg0 type) viewer)
(let ((t9-0 init-entity))
viewer
(t9-0 arg0 arg1)
)
viewer
(t9-0 arg0 arg1)
)
(the-as object #t)
)

View File

@ -50,6 +50,9 @@
(initialize (_type_) _type_ 20)
(initialize-params (_type_ int float) none 21)
)
(:states
(hud-collecting handle)
)
)
@ -1388,6 +1391,10 @@
:method-count-assert 31
:size-assert #x19c
:flag-assert #x1f0130019c
(:states
(fuel-cell-clone-anim handle)
(fuel-cell-spline-slider handle float float)
)
)
@ -2841,6 +2848,9 @@
:method-count-assert 20
:size-assert #xd4
:flag-assert #x14007000d4
(:states
ecovalve-idle
)
)

View File

@ -5,6 +5,9 @@
;; name in dgo: game-h
;; dgos: GAME, ENGINE
(declare-type target process-drawable)
(declare-type voicebox process-drawable)
(defun-extern voicebox-spawn process vector (pointer process))
(declare-type nav-control basic)
(declare-type path-control basic)
@ -13,28 +16,30 @@
(declare-type sparticle-launch-control basic)
(declare-type water-control basic)
(declare-type collide-shape basic)
;; DECOMP BEGINS
(deftype process-drawable (process)
((root trsqv :offset-assert 112)
(node-list cspace-array :offset-assert 116)
(draw draw-control :offset-assert 120)
(skel joint-control :offset-assert 124)
(nav nav-control :offset-assert 128)
(align align-control :offset-assert 132)
(path path-control :offset-assert 136)
(vol vol-control :offset-assert 140)
(fact fact-info :offset-assert 144)
(link actor-link-info :offset-assert 148)
(part sparticle-launch-control :offset-assert 152)
(water water-control :offset-assert 156)
(sound ambient-sound :offset-assert 160)
(state-flags uint32 :offset-assert 164)
(state-time int64 :offset-assert 168)
((root trsqv :offset-assert 112)
(node-list cspace-array :offset-assert 116)
(draw draw-control :offset-assert 120)
(skel joint-control :offset-assert 124)
(nav nav-control :offset-assert 128)
(align align-control :offset-assert 132)
(path path-control :offset-assert 136)
(vol vol-control :offset-assert 140)
(fact fact-info :offset-assert 144)
(link actor-link-info :offset-assert 148)
(part sparticle-launch-control :offset-assert 152)
(water water-control :offset-assert 156)
(sound ambient-sound :offset-assert 160)
(state-flags uint32 :offset-assert 164)
(state-time int64 :offset-assert 168)
)
:heap-base #x40
:method-count-assert 20
:size-assert #xb0
:flag-assert #x14004000b0
;; inherited inspect of process
(:methods
(initialize-skeleton (_type_ skeleton-group pair) none 14)
(dummy-15 (_type_ string object) _type_ 15)
@ -43,8 +48,13 @@
(dummy-18 (_type_) none 18)
(dummy-19 (_type_) none 19)
)
(:states
(process-drawable-art-error string)
process-drawable-idle
)
)
(deftype process-drawable-reserved (process-drawable)
()
:heap-base #x40
@ -98,38 +108,39 @@
)
)
(deftype attack-info (structure)
((trans vector :inline :offset-assert 0)
(vector vector :inline :offset-assert 16)
(intersection vector :inline :offset-assert 32)
(attacker handle :offset-assert 48)
(invinc-time seconds :offset-assert 56)
(mask uint32 :offset-assert 64)
(mode symbol :offset-assert 68)
(shove-back meters :offset-assert 72)
(shove-up meters :offset-assert 76)
(speed meters :offset-assert 80)
(dist meters :offset-assert 84)
(control float :offset-assert 88)
(angle symbol :offset-assert 92)
(rotate-to degrees :offset-assert 96)
(prev-state state :offset-assert 100)
((trans vector :inline :offset-assert 0)
(vector vector :inline :offset-assert 16)
(intersection vector :inline :offset-assert 32)
(attacker handle :offset-assert 48)
(invinc-time seconds :offset-assert 56)
(mask uint32 :offset-assert 64)
(mode symbol :offset-assert 68)
(shove-back meters :offset-assert 72)
(shove-up meters :offset-assert 76)
(speed meters :offset-assert 80)
(dist meters :offset-assert 84)
(control float :offset-assert 88)
(angle symbol :offset-assert 92)
(rotate-to degrees :offset-assert 96)
(prev-state state :offset-assert 100)
)
:method-count-assert 10
:size-assert #x68
:flag-assert #xa00000068
;; field handle is likely a value type
(:methods
(dummy-9 (_type_ attack-info) none 9)
)
)
(define *global-attack-id* 0)
(deftype ground-tween-info (structure)
((chan uint8 3 :offset-assert 0)
(blend float 3 :offset-assert 4)
(group uint32 5 :offset-assert 16)
((chan uint8 3 :offset-assert 0)
(blend float 3 :offset-assert 4)
(group uint32 5 :offset-assert 16)
)
:method-count-assert 9
:size-assert #x24
@ -137,8 +148,8 @@
)
(declare-type target process-drawable)
(declare-type voicebox process-drawable)
0
(defun-extern voicebox-spawn process vector (pointer process))

View File

@ -53,6 +53,9 @@
:method-count-assert 20
:size-assert #x114
:flag-assert #x1400b00114
(:states
manipy-idle
)
)
@ -69,6 +72,9 @@
(:methods
(dummy-20 (_type_) none 20)
)
(:states
part-spawner-active
)
)
@ -91,6 +97,9 @@
:method-count-assert 14
:size-assert #xf8
:flag-assert #xe009000f8
(:states
part-tracker-process
)
)
@ -123,6 +132,9 @@
(:methods
(dummy-14 (_type_ pair) process 14)
)
(:states
camera-tracker-process
)
)
@ -139,6 +151,9 @@
:method-count-assert 20
:size-assert #xd0
:flag-assert #x14006000d0
(:states
touch-tracker-idle
)
)
@ -152,6 +167,10 @@
:method-count-assert 14
:size-assert #x98
:flag-assert #xe00300098
(:states
swingpole-active
swingpole-stance
)
)
@ -192,6 +211,9 @@
:method-count-assert 14
:size-assert #xc4
:flag-assert #xe006000c4
(:states
othercam-running
)
)

View File

@ -6,8 +6,6 @@
;; dgos: GAME, ENGINE
(declare-type swingpole process)
(define-extern swingpole-stance (state swingpole))
(define-extern swingpole-active (state swingpole))
(define-extern convert-to-hud-object (function process-drawable hud none :behavior hud))
@ -22,15 +20,12 @@
(define-extern line-in-view-frustum? (function vector vector symbol))
(declare-type beach-part part-spawner)
(define-extern beach-part-grotto-1 (state beach-part))
(declare-type launcher process-drawable)
(define-extern launcher-active (state launcher))
(define-extern launcher-idle (state launcher))
(define-extern launcher-deactivated (state launcher))
(define-extern command-get-camera (function object state object)) ;; ret - (state camera) | string | symbol
(define-extern beach-part-grotto-1 (state beach-part))
;; DECOMP BEGINS
(defbehavior clone-anim-once process-drawable ((arg0 handle) (arg1 int) (arg2 symbol) (arg3 string))
@ -1280,6 +1275,9 @@
:method-count-assert 20
:size-assert #xbc
:flag-assert #x14005000bc
(:states
med-res-level-idle
)
)
@ -1529,6 +1527,11 @@
:method-count-assert 20
:size-assert #xe4
:flag-assert #x14008000e4
(:states
launcher-active
launcher-deactivated
launcher-idle
)
)

View File

@ -7,7 +7,6 @@
(define-extern *voicebox-sg* skeleton-group)
(define-extern empty-state (state process))
;; DECOMP BEGINS
@ -17,6 +16,9 @@
:method-count-assert 14
:size-assert #xa04
:flag-assert #xe09a00a04
(:states
cam-voicebox
)
)
@ -57,92 +59,57 @@
(let ((gp-0 (new 'stack-no-clear 'vector))
(s5-0 (new 'stack-no-clear 'vector))
)
(set! (-> gp-0 quad) (-> self parent-override 0 trans quad))
(set! (-> s5-0 quad) (-> (target-pos 68) quad))
(when *target*
(let
((a2-0
(vector-z-quaternion!
(new-stack-vector0)
(-> *target* control unknown-quaternion00)
(set! (-> gp-0 quad) (-> self parent-override 0 trans quad))
(set! (-> s5-0 quad) (-> (target-pos 68) quad))
(when *target*
(let ((a2-0 (vector-z-quaternion! (new-stack-vector0) (-> *target* control unknown-quaternion00))))
(vector+float*! s5-0 s5-0 a2-0 (* -16384.0 (- 1.0 (-> self blend))))
)
)
)
(vector+float*! s5-0 s5-0 a2-0 (* -16384.0 (- 1.0 (-> self blend))))
)
(vector-lerp! (-> self root trans) gp-0 s5-0 (-> self blend))
)
(vector-lerp! (-> self root trans) gp-0 s5-0 (-> self blend))
)
(+!
(-> self root trans y)
(*
1638.4
(sin (* 54.613335 (the float (mod (-> *display* base-frame-counter) 1200))))
(-> self root trans y)
(* 1638.4 (sin (* 54.613335 (the float (mod (-> *display* base-frame-counter) 1200)))))
)
)
(let ((gp-1 (new 'stack-no-clear 'quaternion)))
(forward-up->quaternion
gp-1
(vector-normalize!
(vector-!
(new 'stack-no-clear 'vector)
(target-pos 37)
(-> self root trans)
(forward-up->quaternion
gp-1
(vector-normalize! (vector-! (new 'stack-no-clear 'vector) (target-pos 37) (-> self root trans)) 1.0)
(new 'static 'vector :y 1.0 :w 1.0)
)
1.0
)
(new 'static 'vector :y 1.0 :w 1.0)
(rotate-toward-orientation! (-> self root) gp-1 65536.0 5461.3335)
)
(rotate-toward-orientation! (-> self root) gp-1 65536.0 5461.3335)
)
(when *target*
(let* ((gp-2 (-> *target* control))
(s4-2 (-> self root trans))
(f0-8
(deg-diff
(y-angle gp-2)
(vector-y-angle
(vector-! (new 'stack-no-clear 'vector) s4-2 (-> gp-2 trans))
(let* ((gp-2 (-> *target* control))
(s4-2 (-> self root trans))
(f0-8
(deg-diff (y-angle gp-2) (vector-y-angle (vector-! (new 'stack-no-clear 'vector) s4-2 (-> gp-2 trans))))
)
)
)
(if (< 0.0 f0-8)
(set! (-> self twist) (seek (-> self twist) -0.4 (* 0.3 (-> *display* seconds-per-frame))))
(set! (-> self twist) (seek (-> self twist) 0.4 (* 0.3 (-> *display* seconds-per-frame))))
)
(if (< 0.0 f0-8)
(set!
(-> self twist)
(seek (-> self twist) -0.4 (* 0.3 (-> *display* seconds-per-frame)))
)
(set!
(-> self twist)
(seek (-> self twist) 0.4 (* 0.3 (-> *display* seconds-per-frame)))
(let ((a1-9 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-9 from) self)
(set! (-> a1-9 num-params) 0)
(set! (-> a1-9 message) 'blocked-side?)
(case (send-event-function (ppointer->process (-> self parent-override)) a1-9)
((1)
(set! (-> self twist) 0.5)
)
((2)
(set! (-> self twist) -0.5)
)
((3)
(set! (-> self twist) 0.0)
)
)
)
)
(send-event (ppointer->process (-> self parent-override)) 'joystick (-> self twist) -1.0)
)
(let ((a1-9 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-9 from) self)
(set! (-> a1-9 num-params) 0)
(set! (-> a1-9 message) 'blocked-side?)
(case
(send-event-function (ppointer->process (-> self parent-override)) a1-9)
((1)
(set! (-> self twist) 0.5)
)
((2)
(set! (-> self twist) -0.5)
)
((3)
(set! (-> self twist) 0.0)
)
)
)
(send-event
(ppointer->process (-> self parent-override))
'joystick
(-> self twist)
-1.0
)
)
(set! (-> self root scale x) (lerp-scale 1.0 0.0 (-> self blend) 0.8 1.0))
(set! (-> self root scale y) (-> self root scale x))
(set! (-> self root scale z) (-> self root scale x))
@ -153,53 +120,48 @@
(defstate enter (voicebox)
:virtual #t
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('die)
(go-virtual exit)
)
)
)
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (case arg2
(('die)
(go-virtual exit)
)
)
)
:trans
(behavior ()
(voicebox-track)
(if (< 0.1 (-> self blend))
(point-toward-point-clear-roll-pitch! (-> self root) (target-pos 0))
(voicebox-track)
(if (< 0.1 (-> self blend))
(point-toward-point-clear-roll-pitch! (-> self root) (target-pos 0))
)
(none)
)
(none)
)
:code
(behavior ()
(set-setting! *setting-control* self 'sound-flava #f 20.0 6)
(if
(and
*target*
(logtest? (-> *target* control root-prim prim-core action) 512)
)
(send-event
(ppointer->process (-> self parent-override))
'set-dist
(new 'static 'vector :z 8192.0 :w 1.0)
(new 'static 'vector :y 20480.0 :z 12288.0 :w 1.0)
)
(send-event
(ppointer->process (-> self parent-override))
'set-dist
(new 'static 'vector :z 16384.0 :w 1.0)
(new 'static 'vector :y 20480.0 :z 40960.0 :w 1.0)
)
(set-setting! *setting-control* self 'sound-flava #f 20.0 6)
(if (and *target* (logtest? (-> *target* control root-prim prim-core action) 512))
(send-event
(ppointer->process (-> self parent-override))
'set-dist
(new 'static 'vector :z 8192.0 :w 1.0)
(new 'static 'vector :y 20480.0 :z 12288.0 :w 1.0)
)
(send-event
(ppointer->process (-> self parent-override))
'set-dist
(new 'static 'vector :z 16384.0 :w 1.0)
(new 'static 'vector :y 20480.0 :z 40960.0 :w 1.0)
)
)
(init-cam-float-seeker (-> self seeker) 1.0 0.01 0.022222223 0.1)
(set! (-> self seeker target) 0.0)
(while (< 0.0001 (-> self blend))
(update! (-> self seeker) 0.0)
(set! (-> self blend) (-> self seeker value))
(suspend)
)
(set! (-> self blend) 0.0)
(go-virtual idle)
(none)
)
(init-cam-float-seeker (-> self seeker) 1.0 0.01 0.022222223 0.1)
(set! (-> self seeker target) 0.0)
(while (< 0.0001 (-> self blend))
(update! (-> self seeker) 0.0)
(set! (-> self blend) (-> self seeker value))
(suspend)
)
(set! (-> self blend) 0.0)
(go-virtual idle)
(none)
)
:post
(the-as (function none :behavior voicebox) ja-post)
)
@ -212,19 +174,15 @@
voicebox-track
:code
(behavior ()
(while #t
(suspend)
(let ((a0-0 (-> self skel root-channel 0)))
(set! (-> a0-0 param 0) 1.0)
(joint-control-channel-group-eval!
a0-0
(the-as art-joint-anim #f)
num-func-loop!
(while #t
(suspend)
(let ((a0-0 (-> self skel root-channel 0)))
(set! (-> a0-0 param 0) 1.0)
(joint-control-channel-group-eval! a0-0 (the-as art-joint-anim #f) num-func-loop!)
)
)
)
(none)
)
(none)
)
:post
(the-as (function none :behavior voicebox) ja-post)
)
@ -235,30 +193,26 @@
voicebox-track
:code
(behavior ()
(clear-pending-settings-from-process *setting-control* self 'sound-flava)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self seeker target) 1.0)
(while
(and
(< (-> self blend) 0.9999)
(not
(and
(not (handle->process (-> self hint)))
(>= (- (-> *display* base-frame-counter) (-> self state-time)) 15)
(-> *setting-control* current hint)
)
(clear-pending-settings-from-process *setting-control* self 'sound-flava)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self seeker target) 1.0)
(while (and (< (-> self blend) 0.9999) (not (and
(not (handle->process (-> self hint)))
(>= (- (-> *display* base-frame-counter) (-> self state-time)) 15)
(-> *setting-control* current hint)
)
)
)
(update! (-> self seeker) 0.0)
(set! (-> self blend) (-> self seeker value))
(suspend)
)
)
(update! (-> self seeker) 0.0)
(set! (-> self blend) (-> self seeker value))
(set! (-> self blend) 1.0)
(send-event (ppointer->process (-> self parent-override)) 'go empty-state)
(suspend)
0
(none)
)
(set! (-> self blend) 1.0)
(send-event (ppointer->process (-> self parent-override)) 'go empty-state)
(suspend)
0
(none)
)
:post
(the-as (function none :behavior voicebox) ja-post)
)
@ -281,55 +235,40 @@
(-> cam-string enter)
:trans
(behavior ()
(if (zero? (logand (-> *camera* master-options) 2))
(deactivate self)
(if (zero? (logand (-> *camera* master-options) 2))
(deactivate self)
)
(none)
)
(none)
)
:code
(-> cam-string code)
)
(defun voicebox-spawn ((arg0 process) (arg1 vector))
(with-pp
(let* ((s3-0 (get-process *camera-dead-pool* camera-voicebox #x4000))
(s4-0 (when s3-0
(let ((t9-1 (method-of-type camera-voicebox activate)))
(t9-1
(the-as camera-voicebox s3-0)
arg0
'camera-voicebox
(the-as pointer #x70004000)
(let* ((s3-0 (get-process *camera-dead-pool* camera-voicebox #x4000))
(s4-0 (when s3-0
(let ((t9-1 (method-of-type camera-voicebox activate)))
(t9-1 (the-as camera-voicebox s3-0) arg0 'camera-voicebox (the-as pointer #x70004000))
)
(run-now-in-process s3-0 cam-slave-init cam-voicebox #f)
(-> s3-0 ppointer)
)
)
(run-now-in-process s3-0 cam-slave-init cam-voicebox #f)
(-> s3-0 ppointer)
)
)
(when s4-0
(let ((s5-1 (get-process *default-dead-pool* voicebox #x4000)))
(when s5-1
(let ((t9-4 (method-of-type voicebox activate)))
(t9-4 (the-as voicebox s5-1) (ppointer->process s4-0) 'voicebox (the-as pointer #x70004000))
)
(run-now-in-process s5-1 voicebox-init-by-other arg1 (process->handle pp))
(-> s5-1 ppointer)
)
)
(when s4-0
(let ((s5-1 (get-process *default-dead-pool* voicebox #x4000)))
(when s5-1
(let ((t9-4 (method-of-type voicebox activate)))
(t9-4
(the-as voicebox s5-1)
(ppointer->process s4-0)
'voicebox
(the-as pointer #x70004000)
)
)
(run-now-in-process
s5-1
voicebox-init-by-other
arg1
(process->handle pp)
)
(-> s5-1 ppointer)
)
)
)
)
)
)

View File

@ -5,101 +5,116 @@
;; name in dgo: time-of-day-h
;; dgos: GAME, ENGINE
;; TODO for mood
(declare-type time-of-day-proc process)
(declare-type time-of-day-palette basic)
(define-extern *time-of-day-proc* (pointer time-of-day-proc))
(define-extern time-of-day-interp-colors (function (pointer rgba) uint mood-context none))
(define-extern time-of-day-interp-colors-scratch (function (pointer rgba) time-of-day-palette mood-context none))
(declare-type sparticle-launch-control basic)
;; DECOMP BEGINS
(deftype palette-fade-control (structure)
((trans vector :inline :offset-assert 0)
(fade float :offset-assert 16)
(actor-dist float :offset-assert 20)
((trans vector :inline :offset-assert 0)
(fade float :offset-assert 16)
(actor-dist float :offset-assert 20)
)
:method-count-assert 9
:size-assert #x18
:flag-assert #x900000018
)
(deftype palette-fade-controls (basic)
((control palette-fade-control 8 :inline :offset-assert 16)
((control palette-fade-control 8 :inline :offset-assert 16)
)
:method-count-assert 11
:size-assert #x110
:flag-assert #xb00000110
(:methods
(reset! (_type_) symbol 9)
(set-fade! (_type_ int float float vector) object 10) ; returns float or error string
(set-fade! (_type_ int float float vector) object 10)
)
)
(define-perm *palette-fade-controls* palette-fade-controls
(new 'global 'palette-fade-controls)
)
(declare-type sparticle-launch-control basic)
(define-perm *palette-fade-controls* palette-fade-controls (new 'global 'palette-fade-controls))
(deftype time-of-day-proc (process)
((year int32 :offset-assert 112)
(month int32 :offset-assert 116)
(week int32 :offset-assert 120)
(day int32 :offset-assert 124)
(hour int32 :offset-assert 128)
(minute int32 :offset-assert 132)
(second int32 :offset-assert 136)
(frame int32 :offset-assert 140)
(time-of-day float :offset-assert 144)
(time-ratio float :offset-assert 148)
(star-count int32 :offset-assert 152)
((year int32 :offset-assert 112)
(month int32 :offset-assert 116)
(week int32 :offset-assert 120)
(day int32 :offset-assert 124)
(hour int32 :offset-assert 128)
(minute int32 :offset-assert 132)
(second int32 :offset-assert 136)
(frame int32 :offset-assert 140)
(time-of-day float :offset-assert 144)
(time-ratio float :offset-assert 148)
(star-count int32 :offset-assert 152)
(stars sparticle-launch-control :offset-assert 156)
(sun-count int32 :offset-assert 160)
(sun-count int32 :offset-assert 160)
(sun sparticle-launch-control :offset-assert 164)
(green-sun-count int32 :offset-assert 168)
(green-sun-count int32 :offset-assert 168)
(green-sun sparticle-launch-control :offset-assert 172)
(moon-count int32 :offset-assert 176)
(moon-count int32 :offset-assert 176)
(moon sparticle-launch-control :offset-assert 180)
)
:heap-base #x50
:method-count-assert 14
:size-assert #xb8
:flag-assert #xe005000b8
(:states
time-of-day-tick
)
)
(deftype time-of-day-palette (basic)
((width int32 :offset-assert 4)
(height int32 :offset-assert 8)
(pad int32 :offset-assert 12)
(data int32 1 :offset-assert 16)
((width int32 :offset-assert 4)
(height int32 :offset-assert 8)
(pad int32 :offset-assert 12)
(data int32 1 :offset-assert 16)
)
:method-count-assert 9
:size-assert #x14
:flag-assert #x900000014
)
(deftype time-of-day-context (basic)
((active-count uint32 :offset-assert 4)
(interp float :offset-assert 8)
(current-interp float :offset-assert 12)
(moods mood-context 2 :offset-assert 16)
(current-fog mood-fog :inline :offset-assert 32)
(current-sun mood-sun :inline :offset-assert 80)
(current-prt-color vector :inline :offset-assert 112)
(current-shadow vector :inline :offset-assert 128)
(current-shadow-color vector :inline :offset-assert 144)
(light-group light-group 9 :inline :offset-assert 160)
(title-light-group light-group :inline :offset-assert 1888)
(time float :offset-assert 2080)
(target-interp float :offset-assert 2084)
(erase-color rgba :offset-assert 2088)
(num-stars float :offset-assert 2092)
(light-masks-0 uint8 2 :offset-assert 2096)
(light-masks-1 uint8 2 :offset-assert 2098)
(light-interp float 2 :offset-assert 2100)
(sky symbol :offset-assert 2108)
(sun-fade float :offset-assert 2112)
(title-updated symbol :offset-assert 2116)
((active-count uint32 :offset-assert 4)
(interp float :offset-assert 8)
(current-interp float :offset-assert 12)
(moods mood-context 2 :offset-assert 16)
(current-fog mood-fog :inline :offset-assert 32)
(current-sun mood-sun :inline :offset-assert 80)
(current-prt-color vector :inline :offset-assert 112)
(current-shadow vector :inline :offset-assert 128)
(current-shadow-color vector :inline :offset-assert 144)
(light-group light-group 9 :inline :offset-assert 160)
(title-light-group light-group :inline :offset-assert 1888)
(time float :offset-assert 2080)
(target-interp float :offset-assert 2084)
(erase-color rgba :offset-assert 2088)
(num-stars float :offset-assert 2092)
(light-masks-0 uint8 2 :offset-assert 2096)
(light-masks-1 uint8 2 :offset-assert 2098)
(light-interp float 2 :offset-assert 2100)
(sky symbol :offset-assert 2108)
(sun-fade float :offset-assert 2112)
(title-updated symbol :offset-assert 2116)
)
:method-count-assert 9
:size-assert #x848
:flag-assert #x900000848
)
(deftype time-of-day-dma (structure)
((outa uint32 256 :offset-assert 0)
((outa uint32 256 :offset-assert 0)
(outb uint32 256 :offset-assert 1024)
(banka uint32 256 :offset-assert 2048)
(bankb uint32 256 :offset-assert 3072)
@ -109,10 +124,7 @@
:flag-assert #x900001000
)
(define *time-of-day-mode* 8) ;; flags? enum?
(define *time-of-day-context* (new 'static 'time-of-day-context))
;; TODO for mood
(define-extern *time-of-day-proc* (pointer time-of-day-proc))
(define-extern time-of-day-interp-colors (function (pointer rgba) uint mood-context none))
(define-extern time-of-day-interp-colors-scratch (function (pointer rgba) time-of-day-palette mood-context none))
(define *time-of-day-mode* 8)
(define *time-of-day-context* (new 'static 'time-of-day-context))

View File

@ -6,7 +6,6 @@
;; dgos: GAME, ENGINE
(define-extern *sidekick-sg* skeleton-group)
(define-extern sidekick-clone (state sidekick))
;; DECOMP BEGINS

View File

@ -22,13 +22,9 @@
(declare-type sidekick process-drawable)
(define-extern init-sidekick (function none :behavior sidekick))
;; TODO - for logic-target - defined in target-death
(define-extern target-continue (state continue-point target))
(define-extern target-periscope (state handle target)) ;; unknown type
(define-extern mod-var-jump (function symbol symbol symbol vector vector :behavior target))
(define-extern init-var-jump (function float float vector vector vector vector :behavior target)) ;; 1st and 2nd vectors may be symbols instead?
;; TODO - for target-util
(define-extern target-falling (state symbol target))
(define-extern target-slide-down (state target))
;; 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
@ -88,10 +84,67 @@
(dummy-20 (_type_ collide-cache) object 20)
)
(:states
target-attack
(target-attack-air symbol)
(target-attack-uppercut float float)
(target-attack-uppercut-jump float float)
target-billy-game
(target-clone-anim handle)
(target-continue continue-point)
(target-death symbol)
target-demo
(target-double-jump float float)
(target-duck-high-jump float float symbol)
(target-duck-high-jump-jump float float symbol)
target-duck-stance
target-duck-walk
(target-eco-powerup object float)
target-edge-grab
(target-edge-grab-jump float float)
target-edge-grab-off
(target-falling symbol)
(target-final-door basic handle)
(target-fishing handle)
(target-flop float float float)
(target-flop-hit-ground symbol)
(target-flut-air-attack float)
target-flut-air-attack-hit-ground
(target-flut-clone-anim handle)
(target-flut-death symbol)
(target-flut-double-jump float float)
target-flut-falling
(target-flut-get-off handle)
(target-flut-get-off-hit-ground symbol)
(target-flut-get-off-jump handle)
(target-flut-get-on handle)
target-flut-grab
(target-flut-hit symbol attack-info)
target-flut-hit-ground
(target-flut-jump float float)
target-flut-running-attack
target-flut-stance
(target-flut-start handle)
target-flut-walk
target-grab
(target-high-jump float float basic)
(target-hit symbol attack-info)
(target-hit-ground symbol)
(target-hit-ground-hard float)
target-ice-stance
target-ice-walk
(target-jump float float surface)
(target-jump-forward float float)
(target-launch float symbol vector int)
target-load-wait
target-look-around
(target-periscope handle)
(target-play-anim string handle)
(target-pole-cycle handle)
(target-pole-flip-forward float float float)
(target-pole-flip-forward-jump float float)
(target-pole-flip-up object object float)
(target-pole-flip-up-jump float float)
target-racing
(target-racing-bounce float float symbol)
(target-racing-clone-anim handle)
(target-racing-death symbol)
@ -103,10 +156,40 @@
target-racing-grab
(target-racing-hit handle attack-info)
(target-racing-jump float float symbol)
(target-racing-smack float symbol)
(target-racing-start handle)
target-running-attack
target-slide-down
target-snowball
(target-snowball-start handle)
target-stance
target-stance-ambient
target-stance-look-around
target-startup
target-swim-down
(target-swim-jump float float)
(target-swim-jump-jump float float surface)
target-swim-stance
target-swim-up
target-swim-walk
target-title
target-title-play
target-title-wait
target-tube
(target-tube-death symbol)
(target-tube-hit handle attack-info)
(target-tube-jump float float)
(target-tube-start handle)
target-turn-around
target-wade-stance
target-wade-walk
target-walk
(target-warp-in vector vector)
(target-warp-out vector vector)
target-wheel
(target-wheel-flip float float)
target-yellow-blast
target-yellow-jump-blast
)
)
@ -123,6 +206,9 @@
:method-count-assert 20
:size-assert #xcc
:flag-assert #x14006000cc
(:states
sidekick-clone
)
)

View File

@ -7,48 +7,17 @@
;; TODO - almost all of these are in target-handler or target2, temporary
(define-extern target-attack-air (state symbol target)) ;; unknown type
(define-extern target-jump (state float float surface target)) ;; unknown type
(define-extern target-hit-ground (state symbol target)) ;; unknown type
(define-extern target-high-jump (state float float basic target)) ;; unknown type
(define-extern target-stance (state target)) ;; unknown type
(define-extern target-state-hook-exit (function none :behavior target))
(define-extern target-wade-stance (state target)) ;; unknown type
(define-extern target-ice-stance (state target)) ;; unknown type
(define-extern target-walk (state target)) ;; unknown type
(define-extern target-duck-stance (state target)) ;; unknown type
(define-extern target-attack (state target)) ;; unknown type
(define-extern target-running-attack (state target)) ;; unknown type
(define-extern target-stance-ambient (state target)) ;; unknown type
(define-extern target-effect-exit (function none :behavior target))
(define-extern target-ice-walk (state target)) ;; unknown type
(define-extern target-wheel (state target)) ;; unknown type
(define-extern target-duck-walk (state target)) ;; unknown type
(define-extern target-turn-around (state target)) ;; unknown type
(define-extern target-post (function none))
(define-extern target-walk-event-handler (function process int symbol event-message-block object :behavior target))
(define-extern target-attack-uppercut (state float float target)) ;; unknown type
(define-extern target-double-jump (state float float target)) ;; unknown type
(define-extern target-flop (state float float float target)) ;; unknown type
(define-extern target-launch (state float symbol vector int target)) ;; unknown type
(define-extern target-duck-high-jump (state float float symbol target)) ;; unknown type
(define-extern target-duck-high-jump-jump (state float float symbol target)) ;; unknown type
(define-extern target-wade-walk (state target)) ;; unknown type
(define-extern target-hit-ground-hard (state float target)) ;; unknown type
(define-extern target-land-effect (function none :behavior target))
(define-extern target-dangerous-event-handler (function process int symbol event-message-block object :behavior target))
(define-extern target-standard-event-handler (function process int symbol event-message-block object :behavior target))
(define-extern target-jump-event-handler (function process int symbol event-message-block object :behavior target))
(define-extern target-hit (state symbol attack-info target)) ;; unknown type
(define-extern target-shoved (function meters meters process (state target) object :behavior target))
(define-extern target-send-attack (function process uint uint int int symbol :behavior target)) ;; i suspect the uints are actually structures/basics
(define-extern target-yellow-blast (state target)) ;; unknown type
(define-extern target-bonk-event-handler (function process int symbol event-message-block object :behavior target))
(define-extern target-attack-uppercut-jump (state float float target)) ;; unknown type
(define-extern target-flop-hit-ground (state symbol target)) ;; unknown type
(define-extern target-swim-down (state target)) ;; unknown type
(define-extern target-yellow-jump-blast (state target)) ;; unknown type
(define-extern target-wheel-flip (state float float target)) ;; unknown type
;; DECOMP BEGINS

File diff suppressed because it is too large Load Diff

View File

@ -107,6 +107,12 @@
(inc-value (_type_) float 25)
(dec-value (_type_) float 26)
)
(:states
hud-arriving
hud-hidden
hud-in
(hud-leaving int)
)
)
@ -128,20 +134,18 @@
)
(define
*hud-parts*
(new 'static 'hud-parts
:pickups #f
:money #f
:fuel-cell #f
:health #f
:buzzers #f
:power #f
:bike-speed #f
:bike-heat #f
:money-all #f
)
)
(define *hud-parts* (new 'static 'hud-parts
:pickups #f
:money #f
:fuel-cell #f
:health #f
:buzzers #f
:power #f
:bike-speed #f
:bike-heat #f
:money-all #f
)
)
0

View File

@ -8,10 +8,6 @@
;; TODO - for hud-classes
(define-extern hud-init-by-other (function int none :behavior hud))
(define-extern hud-collecting (state handle collectable))
(define-extern hud-leaving (state int hud))
(define-extern hud-in (state hud))
(define-extern hud-arriving (state hud))
;; DECOMP BEGINS

View File

@ -6,61 +6,6 @@
;; dgos: GAME, ENGINE
(deftype count-info (structure)
((money-count int32 :offset-assert 0)
(buzzer-count int32 :offset-assert 4)
)
:pack-me
:method-count-assert 9
:size-assert #x8
:flag-assert #x900000008
)
(deftype game-count-info (basic)
((length int32 :offset-assert 4)
(data count-info :inline :dynamic :offset-assert 8)
)
:method-count-assert 9
:size-assert #x8
:flag-assert #x900000008
)
(deftype task-info-data (basic)
((task-id game-task :offset-assert 4)
(task-name game-text-id 4 :offset-assert 8)
(text-index-when-resolved int32 :offset-assert 24)
)
:method-count-assert 9
:size-assert #x1c
:flag-assert #x90000001c
)
(deftype level-tasks-info (basic)
((level-name-id game-text-id :offset-assert 4)
(text-group-index int32 :offset-assert 8)
(nb-of-tasks int32 :offset-assert 12)
(buzzer-task-index int32 :offset-assert 16)
(task-info task-info-data 8 :offset-assert 20)
)
:method-count-assert 9
:size-assert #x34
:flag-assert #x900000034
)
(deftype game-option (basic)
((option-type uint64 :offset-assert 8)
(name game-text-id :offset-assert 16)
(scale basic :offset-assert 20)
(param1 float :offset-assert 24)
(param2 float :offset-assert 28)
(param3 int32 :offset-assert 32)
(value-to-modify pointer :offset-assert 36)
)
:method-count-assert 9
:size-assert #x28
:flag-assert #x900000028
)
(defenum progress-screen
:type int64
(invalid -1)
@ -100,6 +45,90 @@
(bad-disc 33)
(quit 34)
)
(defun-extern activate-progress process progress-screen none)
(defun-extern hide-progress-screen none)
(defun-extern hide-progress-icons none)
(declare-type level-tasks-info basic)
(define-extern *level-task-data* (array level-tasks-info))
(define-extern *level-task-data-remap* (array int32))
(declare-type count-info structure)
(defun-extern get-game-count int count-info)
(defun-extern progress-allowed? symbol)
(defun-extern pause-allowed? symbol)
(declare-type progress process)
(defun-extern deactivate-progress none)
(defun-extern calculate-completion progress float)
(defun-extern make-current-level-available-to-progress none)
;; DECOMP BEGINS
(deftype count-info (structure)
((money-count int32 :offset-assert 0)
(buzzer-count int32 :offset-assert 4)
)
:pack-me
:method-count-assert 9
:size-assert #x8
:flag-assert #x900000008
)
(deftype game-count-info (basic)
((length int32 :offset-assert 4)
(data count-info :inline :dynamic :offset-assert 8)
)
:method-count-assert 9
:size-assert #x8
:flag-assert #x900000008
)
(deftype task-info-data (basic)
((task-id game-task :offset-assert 4)
(task-name game-text-id 4 :offset-assert 8)
(text-index-when-resolved int32 :offset-assert 24)
)
:method-count-assert 9
:size-assert #x1c
:flag-assert #x90000001c
)
(deftype level-tasks-info (basic)
((level-name-id game-text-id :offset-assert 4)
(text-group-index int32 :offset-assert 8)
(nb-of-tasks int32 :offset-assert 12)
(buzzer-task-index int32 :offset-assert 16)
(task-info task-info-data 8 :offset-assert 20)
)
:method-count-assert 9
:size-assert #x34
:flag-assert #x900000034
)
(deftype game-option (basic)
((option-type uint64 :offset-assert 8)
(name game-text-id :offset-assert 16)
(scale basic :offset-assert 20)
(param1 float :offset-assert 24)
(param2 float :offset-assert 28)
(param3 int32 :offset-assert 32)
(value-to-modify pointer :offset-assert 36)
)
:method-count-assert 9
:size-assert #x28
:flag-assert #x900000028
)
(deftype progress (process)
((current-debug-string int32 :offset-assert 112)
(current-debug-language int32 :offset-assert 116)
@ -147,18 +176,18 @@
(last-option-index-change int64 :offset-assert 296)
(video-mode-timeout int64 :offset-assert 304)
(display-state-stack progress-screen 5 :offset-assert 312)
(option-index-stack int32 5 :offset-assert 352)
(display-state-pos int32 :offset-assert 372)
(nb-of-icons int32 :offset-assert 376)
(icons hud-icon 6 :offset-assert 380)
(max-nb-of-particles int32 :offset-assert 404)
(nb-of-particles int32 :offset-assert 408)
(particles hud-particle 40 :offset-assert 412)
(particle-state int32 40 :offset-assert 572)
(option-index-stack int32 5 :offset-assert 352)
(display-state-pos int32 :offset-assert 372)
(nb-of-icons int32 :offset-assert 376)
(icons hud-icon 6 :offset-assert 380)
(max-nb-of-particles int32 :offset-assert 404)
(nb-of-particles int32 :offset-assert 408)
(particles hud-particle 40 :offset-assert 412)
(particle-state int32 40 :offset-assert 572)
)
:heap-base #x270
:method-count-assert 59
:size-assert #x2dc
:heap-base #x270
:flag-assert #x3b027002dc
(:methods
(dummy-14 (_type_) none 14)
@ -208,25 +237,16 @@
(draw-quit (_type_ font-context) none 58)
)
(:states
progress-gone
progress-coming-in
progress-debug
progress-going-out
progress-gone
progress-normal
progress-waiting
)
)
(define *progress-process* (the (pointer progress) #f))
(define *progress-process* (the-as (pointer progress) #f))
(define *progress-last-task-index* 0)
(defun-extern activate-progress process progress-screen none)
(defun-extern hide-progress-screen none)
(defun-extern hide-progress-icons none)
(define-extern *level-task-data* (array level-tasks-info))
(define-extern *level-task-data-remap* (array int32))
(defun-extern get-game-count int count-info)
(defun-extern progress-allowed? symbol)
(defun-extern pause-allowed? symbol)
(defun-extern deactivate-progress none)
(defun-extern calculate-completion progress float)
(defun-extern make-current-level-available-to-progress none)

View File

@ -193,7 +193,7 @@
(jungleb-eco-vents-opened #x289)
(sidekick-speech-crate-steel-break2 #x28e)
(sidekick-speech-hint-crate-darkeco2 #x28f)
(daxter-screaming-jump #x290)
(daxter-wahoo-jump #x291)
(daxter-get-some #x292)
@ -201,12 +201,12 @@
(collectables-scout-flies-red-boxes #x295)
(found-all-scout-flies #x296)
(yakow-owed-powercell #x297)
(jungle-mirrors-tutorial #x29c)
(jungle-mirrors-break-the-mirror-jak #x29d)
(jungle-mirrors-go-to-the-next-tower #x29f)
(jungle-mirrors-follow-the-beam #x2a0)
(misty-teetertotter-bonk-dax-tutorial #x2a4)
(sidekick-hint-misty-get-red-eco #x2a5)
@ -439,7 +439,7 @@
(sage-voicebox-hint-crate-iron #x917)
(training-warp-gate-blocked #x919)
(training-warp-gate-reminder #x91a)
(training-gimmie-task-name #x91b)
(training-buzzer-task-name #x91c)
(training-door-task-name #x91d)

View File

@ -260,6 +260,9 @@
(:methods
(new (symbol type basic int) _type_ 0)
)
(:states
dead-state
empty-state)
:size-assert #x70
:method-count-assert 14
:no-runtime-type ;; already defined by kscheme. Don't do it again.

File diff suppressed because it is too large Load Diff

View File

@ -41,20 +41,6 @@
(declare-type citb-hose process-drawable)
(declare-type citb-generator process-drawable)
(define-extern citadelcam-idle (state citadelcam)) ;; unknown type
(define-extern citadelcam-stair-plats (state citadelcam)) ;; unknown type
(define-extern citb-generator-broken (state citb-generator)) ;; unknown type
(define-extern citb-generator-idle (state citb-generator)) ;; unknown type
(define-extern citb-disc-idle (state citb-disc)) ;; unknown type
(define-extern citb-robotboss-die (state citb-robotboss)) ;; unknown type
(define-extern citb-robotboss-idle (state citb-robotboss)) ;; unknown type
(define-extern citb-coil-broken (state citb-coil)) ;; unknown type
(define-extern citb-coil-idle (state citb-coil)) ;; unknown type
(define-extern citb-coil-break (state citb-coil)) ;; unknown type
(define-extern citb-hose-die (state citb-hose)) ;; unknown type
(define-extern citb-hose-idle (state citb-hose)) ;; unknown type
(define-extern citb-hose-spawn (state citb-hose)) ;; unknown type
(define-extern citb-generator-break (state citb-generator)) ;; unknown type
;; DECOMP BEGINS
@ -420,6 +406,9 @@
(init! (_type_) none 20)
(dummy-21 (_type_) none 21)
)
(:states
citb-disc-idle
)
)
@ -843,6 +832,10 @@
:method-count-assert 20
:size-assert #xb4
:flag-assert #x14005000b4
(:states
citb-robotboss-die
citb-robotboss-idle
)
)
@ -1144,6 +1137,11 @@
:method-count-assert 20
:size-assert #xb4
:flag-assert #x14005000b4
(:states
citb-coil-break
citb-coil-broken
citb-coil-idle
)
)
@ -1305,6 +1303,11 @@
:method-count-assert 20
:size-assert #xb0
:flag-assert #x14004000b0
(:states
citb-hose-die
citb-hose-idle
citb-hose-spawn
)
)
@ -1469,6 +1472,11 @@
(init! (_type_) none 20)
(dummy-21 (_type_) none 21)
)
(:states
citb-generator-break
citb-generator-broken
citb-generator-idle
)
)
@ -1816,6 +1824,10 @@
:method-count-assert 20
:size-assert #xb0
:flag-assert #x14004000b0
(:states
citadelcam-idle
citadelcam-stair-plats
)
)

View File

@ -7,13 +7,6 @@
(declare-type drop-plat process)
(declare-type citb-drop-plat process)
(define-extern drop-plat-die (state drop-plat)) ;; unknown type
(define-extern drop-plat-idle (state drop-plat)) ;; unknown type
(define-extern drop-plat-drop (state drop-plat)) ;; unknown type
(define-extern drop-plat-rise (state draw-control drop-plat)) ;; unknown type
(define-extern citb-drop-plat-idle (state citb-drop-plat)) ;; unknown type
(define-extern citb-drop-plat-active (state citb-drop-plat)) ;; unknown type
(define-extern drop-plat-spawn (state drop-plat)) ;; unknown type
;; DECOMP BEGINS
@ -75,6 +68,13 @@
(TODO-RENAME-20 (_type_) none 20)
(dummy-21 (_type_) none 21)
)
(:states
drop-plat-die
drop-plat-drop
drop-plat-idle
(drop-plat-rise draw-control)
drop-plat-spawn
)
)
@ -368,6 +368,10 @@
:method-count-assert 20
:size-assert #x120
:flag-assert #x1400b00120
(:states
citb-drop-plat-active
citb-drop-plat-idle
)
)

View File

@ -19,12 +19,6 @@
(declare-type citb-firehose process-drawable)
(declare-type citb-chain-plat rigid-body-platform)
(define-extern citb-exit-plat-idle (state citb-exit-plat)) ;; unknown type
(define-extern citb-exit-plat-rise (state citb-exit-plat)) ;; unknown type
(define-extern citb-firehose-idle (state citb-firehose)) ;; unknown type
(define-extern citb-firehose-active (state citb-firehose)) ;; unknown type
(define-extern citb-firehose-blast (state citb-firehose)) ;; unknown type
(define-extern citb-chain-plat-settle (state citb-chain-plat)) ;; unknown type
;; DECOMP BEGINS
@ -454,6 +448,9 @@
:method-count-assert 35
:size-assert #x318
:flag-assert #x2302b00318
(:states
citb-chain-plat-settle
)
)
@ -938,6 +935,11 @@
:method-count-assert 20
:size-assert #xd0
:flag-assert #x14006000d0
(:states
citb-firehose-active
citb-firehose-blast
citb-firehose-idle
)
)
@ -1180,6 +1182,10 @@
:method-count-assert 33
:size-assert #xfc
:flag-assert #x21009000fc
(:states
citb-exit-plat-idle
citb-exit-plat-rise
)
)

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,6 @@
;; name in dgo: basebutton
;; dgos: GAME, COMMON, L1
(define-extern target-warp-out (state vector vector target))
;; DECOMP BEGINS

View File

@ -13,6 +13,9 @@
:method-count-assert 20
:size-assert #xb0
:flag-assert #x14004000b0
(:states
blocking-plane-idle
)
)
@ -27,139 +30,107 @@
(defstate blocking-plane-idle (blocking-plane)
:code
(behavior ()
(transform-post)
(while #t
(logior! (-> self mask) (process-mask sleep))
(suspend)
(transform-post)
(while #t
(logior! (-> self mask) (process-mask sleep))
(suspend)
)
(none)
)
(none)
)
)
(defbehavior
blocking-plane-init-by-other blocking-plane
((arg0 curve-control) (arg1 int))
(defbehavior blocking-plane-init-by-other blocking-plane ((arg0 curve-control) (arg1 int))
(if (or (not arg0) (logtest? (-> arg0 flags) (path-control-flag not-found)))
(deactivate self)
)
(deactivate self)
)
(let ((s5-0 (new 'static 'vector))
(gp-0 (new 'static 'vector))
)
0.0
(eval-path-curve-div! arg0 s5-0 (the float arg1) 'exact)
(eval-path-curve-div! arg0 gp-0 (+ 1.0 (the float arg1)) 'exact)
(let ((f30-1 (* 0.5 (vector-vector-distance s5-0 gp-0)))
(s4-1
(new
'process
'collide-shape
self
(collide-list-enum usually-hit-by-player)
)
0.0
(eval-path-curve-div! arg0 s5-0 (the float arg1) 'exact)
(eval-path-curve-div! arg0 gp-0 (+ 1.0 (the float arg1)) 'exact)
(let ((f30-1 (* 0.5 (vector-vector-distance s5-0 gp-0)))
(s4-1 (new 'process 'collide-shape self (collide-list-enum usually-hit-by-player)))
)
)
(let
((s3-1
(new
'process
'collide-shape-prim-mesh
s4-1
(the-as uint 0)
(the-as uint 0)
(let ((s3-1 (new 'process 'collide-shape-prim-mesh s4-1 (the-as uint 0) (the-as uint 0))))
(set! (-> s3-1 prim-core collide-as) (the-as uint 512))
(set! (-> s3-1 collide-with) (the-as uint 16))
(set! (-> s3-1 prim-core action) (the-as uint 1))
(set! (-> s3-1 prim-core offense) 4)
(set! (-> s3-1 transform-index) 3)
(set-vector! (-> s3-1 local-sphere) 0.0 0.0 0.0 (fmax 122880.0 f30-1))
(set-root-prim! s4-1 s3-1)
)
)
(set! (-> s4-1 nav-radius) (* 0.75 (-> s4-1 root-prim local-sphere w)))
(backup-collide-with-as s4-1)
(set! (-> self root) s4-1)
)
(set! (-> s3-1 prim-core collide-as) (the-as uint 512))
(set! (-> s3-1 collide-with) (the-as uint 16))
(set! (-> s3-1 prim-core action) (the-as uint 1))
(set! (-> s3-1 prim-core offense) 4)
(set! (-> s3-1 transform-index) 3)
(set-vector! (-> s3-1 local-sphere) 0.0 0.0 0.0 (fmax 122880.0 f30-1))
(set-root-prim! s4-1 s3-1)
)
(set! (-> s4-1 nav-radius) (* 0.75 (-> s4-1 root-prim local-sphere w)))
(backup-collide-with-as s4-1)
(set! (-> self root) s4-1)
)
(let ((s4-2 (new-stack-matrix0)))
(vector+! (-> self root trans) s5-0 gp-0)
(vector-float*! (-> self root trans) (-> self root trans) 0.5)
(set! (-> self root trans y) (+ 61440.0 (-> self root trans y)))
(vector-! (the-as vector (-> s4-2 vector)) gp-0 s5-0)
(set!
(-> self root scale x)
(*
0.00024414062
(vector-normalize-ret-len! (the-as vector (-> s4-2 vector)) 1.0)
(let ((s4-2 (new-stack-matrix0)))
(vector+! (-> self root trans) s5-0 gp-0)
(vector-float*! (-> self root trans) (-> self root trans) 0.5)
(set! (-> self root trans y) (+ 61440.0 (-> self root trans y)))
(vector-! (the-as vector (-> s4-2 vector)) gp-0 s5-0)
(set! (-> self root scale x)
(* 0.00024414062 (vector-normalize-ret-len! (the-as vector (-> s4-2 vector)) 1.0))
)
(set! (-> self root scale y) 30.0)
(set! (-> self root scale z) 0.0)
(set! (-> s4-2 vector 1 quad) (-> (new 'static 'vector :y 1.0 :w 1.0) quad))
(vector-cross! (-> s4-2 vector 2) (the-as vector (-> s4-2 vector)) (-> s4-2 vector 1))
(vector-normalize! (-> s4-2 vector 2) 1.0)
(matrix->quaternion (-> self root quat) s4-2)
)
)
(set! (-> self root scale y) 30.0)
(set! (-> self root scale z) 0.0)
(set! (-> s4-2 vector 1 quad) (-> (new 'static 'vector :y 1.0 :w 1.0) quad))
(vector-cross!
(-> s4-2 vector 2)
(the-as vector (-> s4-2 vector))
(-> s4-2 vector 1)
)
(vector-normalize! (-> s4-2 vector 2) 1.0)
(matrix->quaternion (-> self root quat) s4-2)
)
)
(initialize-skeleton self *ef-plane-sg* '())
(logior! (-> self draw status) 32)
(logior! (-> self draw status) (draw-status drwf05))
(go blocking-plane-idle)
(none)
)
(defun blocking-plane-spawn ((arg0 curve-control))
(with-pp
(cond
((or (not arg0) (logtest? (-> arg0 flags) (path-control-flag not-found)))
)
(else
(let ((s5-0 (the int (the float (+ (-> arg0 curve num-cverts) -1))))
(s4-0 0)
)
(while (< s4-0 s5-0)
(let ((s3-0 (get-process *default-dead-pool* blocking-plane #x4000)))
(when s3-0
(let ((t9-1 (method-of-type blocking-plane activate)))
(t9-1
(the-as blocking-plane s3-0)
pp
'blocking-plane
(the-as pointer #x70004000)
)
)
(run-now-in-process s3-0 blocking-plane-init-by-other arg0 s4-0)
(-> s3-0 ppointer)
)
)
(+! s4-0 2)
(cond
((or (not arg0) (logtest? (-> arg0 flags) (path-control-flag not-found)))
)
(else
(let ((s5-0 (the int (the float (+ (-> arg0 curve num-cverts) -1))))
(s4-0 0)
)
(while (< s4-0 s5-0)
(let ((s3-0 (get-process *default-dead-pool* blocking-plane #x4000)))
(when s3-0
(let ((t9-1 (method-of-type blocking-plane activate)))
(t9-1 (the-as blocking-plane s3-0) pp 'blocking-plane (the-as pointer #x70004000))
)
(run-now-in-process s3-0 blocking-plane-init-by-other arg0 s4-0)
(-> s3-0 ppointer)
)
)
(+! s4-0 2)
)
)
)
)
)
0
(none)
)
0
(none)
)
)
(defun blocking-plane-destroy ()
(with-pp
(let ((gp-0 (-> pp child)))
(while gp-0
(let ((s5-0 (ppointer->process gp-0)))
(set! gp-0 (-> gp-0 0 brother))
(if (type-type? (-> s5-0 type) blocking-plane)
(deactivate s5-0)
)
(let ((gp-0 (-> pp child)))
(while gp-0
(let ((s5-0 (ppointer->process gp-0)))
(set! gp-0 (-> gp-0 0 brother))
(if (type-type? (-> s5-0 type) blocking-plane)
(deactivate s5-0)
)
)
)
)
)
0
(none)
)
0
(none)
)
)

View File

@ -115,6 +115,9 @@
(TODO-RENAME-27 (_type_ joint-exploder-list int) joint-exploder-list 27)
(TODO-RENAME-28 (_type_ joint-exploder-list) none 28)
)
(:states
joint-exploder-shatter
)
)

View File

@ -10,8 +10,6 @@
(declare-type launcherdoor process-drawable)
(define-extern launcherdoor-open (state symbol launcherdoor)) ;; unknown type
(define-extern launcherdoor-closed (state symbol launcherdoor)) ;; unknown type
;; DECOMP BEGINS
@ -27,6 +25,10 @@
:method-count-assert 20
:size-assert #xc4
:flag-assert #x14006000c4
(:states
(launcherdoor-closed symbol)
(launcherdoor-open symbol)
)
)
@ -49,91 +51,75 @@
(defstate launcherdoor-closed (launcherdoor)
:code
(behavior ((arg0 symbol))
(if (not arg0)
(sound-play-by-name
(static-sound-name "ldoor-close")
(new-sound-id)
1024
0
0
1
#t
)
)
(when *target*
(case (-> *target* current-level name)
(('jungle 'jungleb)
(send-event *target* 'no-load-wait 6000)
)
)
)
(restore-collide-with-as (-> self root-override))
(let ((a0-7 (-> self skel root-channel 0)))
(set! (-> a0-7 param 0) 0.0)
(set! (-> a0-7 param 1) 1.0)
(joint-control-channel-group!
a0-7
(the-as art-joint-anim #f)
num-func-seek!
)
)
(when arg0
(let ((v1-22 (-> self skel root-channel 0)))
(set! (-> v1-22 num-func) num-func-identity)
(set! (-> v1-22 frame-num) 0.0)
)
(set! (-> self draw force-lod) 1)
)
(suspend)
(while #t
(if
(and
*target*
(= (-> *target* control unknown-surface00 name) 'launch-jump)
(< (-> *target* control trans y) (-> self thresh-y))
)
(go launcherdoor-open #f)
)
(let ((a0-13 (-> self skel root-channel 0)))
(set! (-> a0-13 param 0) 0.0)
(set! (-> a0-13 param 1) (-> self close-speed))
(joint-control-channel-group-eval!
a0-13
(the-as art-joint-anim #f)
num-func-seek!
)
)
(suspend)
(when (ja-done? 0)
(set! (-> self draw force-lod) 1)
(when (-> self notify-player-passed-thru?)
(set! (-> self notify-player-passed-thru?) #f)
(let* ((gp-1 (-> self entity))
(s5-1 (entity-actor-count gp-1 'alt-actor))
)
(dotimes (s4-1 s5-1)
(let ((v1-43 (entity-actor-lookup gp-1 'alt-actor s4-1)))
(if v1-43
(send-event (if v1-43
(-> v1-43 extra process)
)
'notify
)
)
(if (not arg0)
(sound-play-by-name (static-sound-name "ldoor-close") (new-sound-id) 1024 0 0 1 #t)
)
(when *target*
(case (-> *target* current-level name)
(('jungle 'jungleb)
(send-event *target* 'no-load-wait 6000)
)
)
)
(case (-> self load-mode)
(('jungle)
(load-state-want-levels 'village1 'jungle)
(load-state-want-display-level 'village1 'display)
)
)
)
)
(restore-collide-with-as (-> self root-override))
(let ((a0-7 (-> self skel root-channel 0)))
(set! (-> a0-7 param 0) 0.0)
(set! (-> a0-7 param 1) 1.0)
(joint-control-channel-group! a0-7 (the-as art-joint-anim #f) num-func-seek!)
)
(when arg0
(let ((v1-22 (-> self skel root-channel 0)))
(set! (-> v1-22 num-func) num-func-identity)
(set! (-> v1-22 frame-num) 0.0)
)
(set! (-> self draw force-lod) 1)
)
(suspend)
(while #t
(if (and
*target*
(= (-> *target* control unknown-surface00 name) 'launch-jump)
(< (-> *target* control trans y) (-> self thresh-y))
)
(go launcherdoor-open #f)
)
(let ((a0-13 (-> self skel root-channel 0)))
(set! (-> a0-13 param 0) 0.0)
(set! (-> a0-13 param 1) (-> self close-speed))
(joint-control-channel-group-eval! a0-13 (the-as art-joint-anim #f) num-func-seek!)
)
(suspend)
(when (ja-done? 0)
(set! (-> self draw force-lod) 1)
(when (-> self notify-player-passed-thru?)
(set! (-> self notify-player-passed-thru?) #f)
(let* ((gp-1 (-> self entity))
(s5-1 (entity-actor-count gp-1 'alt-actor))
)
(dotimes (s4-1 s5-1)
(let ((v1-43 (entity-actor-lookup gp-1 'alt-actor s4-1)))
(if v1-43
(send-event
(if v1-43
(-> v1-43 extra process)
)
'notify
)
)
)
)
)
(case (-> self load-mode)
(('jungle)
(load-state-want-levels 'village1 'jungle)
(load-state-want-display-level 'village1 'display)
)
)
)
)
)
(none)
)
(none)
)
:post
(the-as (function none :behavior launcherdoor) ja-post)
)
@ -141,168 +127,124 @@
(defstate launcherdoor-open (launcherdoor)
:code
(behavior ((arg0 symbol))
(if (not arg0)
(sound-play-by-name
(static-sound-name "ldoor-open")
(new-sound-id)
1024
0
0
1
#t
)
)
(set! (-> self draw force-lod) 0)
(clear-collide-with-as (-> self root-override))
(let ((a0-4 (-> self skel root-channel 0)))
(set!
(-> a0-4 param 0)
(the float (+ (-> a0-4 frame-group data 0 length) -1))
)
(set! (-> a0-4 param 1) 1.0)
(joint-control-channel-group!
a0-4
(the-as art-joint-anim #f)
num-func-seek!
)
)
(when arg0
(let ((v1-16 (-> self skel root-channel 0)))
(set! (-> v1-16 num-func) num-func-identity)
(set!
(-> v1-16 frame-num)
(the float (+ (-> v1-16 frame-group data 0 length) -1))
)
)
)
(while #t
(when
(or
(not *target*)
(!= (-> *target* control unknown-surface00 name) 'launch-jump)
(<
(+ 4096.0 (-> self root-override trans y))
(-> *target* control trans y)
)
)
(when (and *target* (< (-> self thresh-y) (-> *target* control trans y)))
(let ((a1-3 (res-lump-struct (-> self entity) 'continue-name structure)))
(when a1-3
(let ((v1-36 (set-continue! *game-info* (the-as basic a1-3))))
(load-commands-set! *level* (-> v1-36 load-commands))
)
(if (not arg0)
(sound-play-by-name (static-sound-name "ldoor-open") (new-sound-id) 1024 0 0 1 #t)
)
)
(set! (-> self notify-player-passed-thru?) #t)
(set! (-> self draw force-lod) 0)
(clear-collide-with-as (-> self root-override))
(let ((a0-4 (-> self skel root-channel 0)))
(set! (-> a0-4 param 0) (the float (+ (-> a0-4 frame-group data 0 length) -1)))
(set! (-> a0-4 param 1) 1.0)
(joint-control-channel-group! a0-4 (the-as art-joint-anim #f) num-func-seek!)
)
(go launcherdoor-closed #f)
)
(let ((a0-16 (-> self skel root-channel 0)))
(set!
(-> a0-16 param 0)
(the float (+ (-> a0-16 frame-group data 0 length) -1))
(when arg0
(let ((v1-16 (-> self skel root-channel 0)))
(set! (-> v1-16 num-func) num-func-identity)
(set! (-> v1-16 frame-num) (the float (+ (-> v1-16 frame-group data 0 length) -1)))
)
)
(set! (-> a0-16 param 1) (-> self open-speed))
(joint-control-channel-group-eval!
a0-16
(the-as art-joint-anim #f)
num-func-seek!
(while #t
(when (or
(not *target*)
(!= (-> *target* control unknown-surface00 name) 'launch-jump)
(< (+ 4096.0 (-> self root-override trans y)) (-> *target* control trans y))
)
(when (and *target* (< (-> self thresh-y) (-> *target* control trans y)))
(let ((a1-3 (res-lump-struct (-> self entity) 'continue-name structure)))
(when a1-3
(let ((v1-36 (set-continue! *game-info* (the-as basic a1-3))))
(load-commands-set! *level* (-> v1-36 load-commands))
)
)
)
(set! (-> self notify-player-passed-thru?) #t)
)
(go launcherdoor-closed #f)
)
(let ((a0-16 (-> self skel root-channel 0)))
(set! (-> a0-16 param 0) (the float (+ (-> a0-16 frame-group data 0 length) -1)))
(set! (-> a0-16 param 1) (-> self open-speed))
(joint-control-channel-group-eval! a0-16 (the-as art-joint-anim #f) num-func-seek!)
)
(suspend)
)
)
(suspend)
(none)
)
(none)
)
:post
(the-as (function none :behavior launcherdoor) ja-post)
)
(defmethod
init-from-entity!
launcherdoor
((obj launcherdoor) (arg0 entity-actor))
(defmethod init-from-entity! launcherdoor ((obj launcherdoor) (arg0 entity-actor))
(set! (-> obj notify-player-passed-thru?) #f)
(set! (-> obj open-speed) 4.0)
(set! (-> obj close-speed) 2.0)
(let
((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player))))
(let
((s3-0
(new
'process
'collide-shape-prim-mesh
s4-0
(the-as uint 0)
(the-as uint 0)
)
(let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player))))
(let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
(set! (-> s3-0 prim-core collide-as) (the-as uint 256))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 1))
(set! (-> s3-0 prim-core offense) 4)
(set! (-> s3-0 transform-index) 0)
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 14336.0)
(set-root-prim! s4-0 s3-0)
)
)
(set! (-> s3-0 prim-core collide-as) (the-as uint 256))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 1))
(set! (-> s3-0 prim-core offense) 4)
(set! (-> s3-0 transform-index) 0)
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 14336.0)
(set-root-prim! s4-0 s3-0)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(backup-collide-with-as s4-0)
(set! (-> obj root-override) s4-0)
)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(backup-collide-with-as s4-0)
(set! (-> obj root-override) s4-0)
)
(process-drawable-from-entity! obj arg0)
(cond
((= (-> (if (-> obj entity)
(-> obj entity extra level)
(-> *level* level-default)
)
name
((= (-> (if (-> obj entity)
(-> obj entity extra level)
(-> *level* level-default)
)
name
)
'maincave
)
'maincave
(set! (-> obj close-speed) 4.0)
(initialize-skeleton obj *launcherdoor-maincave-sg* '())
(ja-channel-set! 1)
(let ((s5-1 (-> obj skel root-channel 0)))
(joint-control-channel-group-eval!
s5-1
(the-as art-joint-anim (-> obj draw art-group data 3))
num-func-identity
)
(set! (-> s5-1 frame-num) 0.0)
)
)
(set! (-> obj close-speed) 4.0)
(initialize-skeleton obj *launcherdoor-maincave-sg* '())
(ja-channel-set! 1)
(let ((s5-1 (-> obj skel root-channel 0)))
(joint-control-channel-group-eval!
s5-1
(the-as art-joint-anim (-> obj draw art-group data 3))
num-func-identity
(else
(initialize-skeleton obj *launcherdoor-sg* '())
(ja-channel-set! 1)
(let ((s5-2 (-> obj skel root-channel 0)))
(joint-control-channel-group-eval!
s5-2
(the-as art-joint-anim (-> obj draw art-group data 3))
num-func-identity
)
(set! (-> s5-2 frame-num) 0.0)
)
)
(set! (-> s5-1 frame-num) 0.0)
)
)
(else
(initialize-skeleton obj *launcherdoor-sg* '())
(ja-channel-set! 1)
(let ((s5-2 (-> obj skel root-channel 0)))
(joint-control-channel-group-eval!
s5-2
(the-as art-joint-anim (-> obj draw art-group data 3))
num-func-identity
)
(set! (-> s5-2 frame-num) 0.0)
)
)
)
(transform-post)
(case (-> obj entity extra level name)
(('jungle)
(case (-> obj entity extra level name)
(('jungle)
(set! (-> obj draw shadow-mask) (the-as uint 28))
)
)
)
(set! (-> obj load-mode) (-> (if (-> obj entity)
(-> obj entity extra level)
(-> *level* level-default)
)
name
)
)
(-> obj entity extra level)
(-> *level* level-default)
)
name
)
)
(set! (-> obj thresh-y) (+ -81920.0 (-> obj root-override trans y)))
(if
(and *target* (= (-> *target* control unknown-surface00 name) 'launch-jump))
(go launcherdoor-open #t)
(go launcherdoor-closed #t)
)
(if (and *target* (= (-> *target* control unknown-surface00 name) 'launch-jump))
(go launcherdoor-open #t)
(go launcherdoor-closed #t)
)
(none)
)

View File

@ -29,6 +29,7 @@
(:states
(orb-cache-top-activate symbol)
(orb-cache-top-complete symbol)
(orb-cache-top-idle symbol)
)
)
@ -44,93 +45,75 @@
(defstate orb-cache-top-idle (orb-cache-top)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('eco-blue)
(process-entity-status! self (entity-perm-status complete) #t)
(dotimes (gp-0 5)
(spawn-projectile-blue *target*)
(case arg2
(('eco-blue)
(process-entity-status! self (entity-perm-status complete) #t)
(dotimes (gp-0 5)
(spawn-projectile-blue *target*)
)
(increment-success-for-hint (game-text-id sidekick-hint-orb-cache-top))
(go orb-cache-top-activate #f)
)
(increment-success-for-hint (game-text-id sidekick-hint-orb-cache-top))
(go orb-cache-top-activate #f)
(else
(plat-event arg0 arg1 arg2 arg3)
)
)
(else
(plat-event arg0 arg1 arg2 arg3)
)
)
)
:trans
(behavior ()
(if
(and
(and
*target*
(>=
20480.0
(vector-vector-distance
(-> self root-override trans)
(-> *target* control trans)
(if (and
(and *target* (>= 20480.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))))
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-1 from) self)
(set! (-> a1-1 num-params) 2)
(set! (-> a1-1 message) 'query)
(set! (-> a1-1 param 0) (the-as uint 'powerup))
(set! (-> a1-1 param 1) (the-as uint 3))
(not (send-event-function *target* a1-1))
)
)
(level-hint-spawn
(game-text-id sidekick-hint-orb-cache-top)
"sksp0009"
(the-as entity #f)
*entity-pool*
(game-task none)
)
)
)
)
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-1 from) self)
(set! (-> a1-1 num-params) 2)
(set! (-> a1-1 message) 'query)
(set! (-> a1-1 param 0) (the-as uint 'powerup))
(set! (-> a1-1 param 1) (the-as uint 3))
(not (send-event-function *target* a1-1))
)
)
(level-hint-spawn
(game-text-id sidekick-hint-orb-cache-top)
"sksp0009"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(none)
)
(none)
)
:code
(behavior ((arg0 symbol))
(if (and (not arg0) (-> self child))
(sound-play-by-name
(static-sound-name "close-orb-cash")
(new-sound-id)
1024
0
0
1
#t
)
)
(dotimes (gp-1 (-> self money))
(let ((a0-4 (handle->process (-> self money-list gp-1))))
(if a0-4
(deactivate a0-4)
(if (and (not arg0) (-> self child))
(sound-play-by-name (static-sound-name "close-orb-cash") (new-sound-id) 1024 0 0 1 #t)
)
(dotimes (gp-1 (-> self money))
(let ((a0-4 (handle->process (-> self money-list gp-1))))
(if a0-4
(deactivate a0-4)
)
)
)
)
(process-entity-status! self (entity-perm-status complete) #f)
(let ((gp-2 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-2
(the-as art-joint-anim (-> self draw art-group data 3))
num-func-identity
)
(set! (-> gp-2 frame-num) (ja-aframe 0.0 0))
)
(transform-post)
(anim-loop)
(none)
)
(process-entity-status! self (entity-perm-status complete) #f)
(let ((gp-2 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-2
(the-as art-joint-anim (-> self draw art-group data 3))
num-func-identity
)
(set! (-> gp-2 frame-num) (ja-aframe 0.0 0))
)
(transform-post)
(anim-loop)
(none)
)
)
(defmethod dummy-22 orb-cache-top ((obj orb-cache-top))
(if (< 4096.0 (- (-> obj basetrans y) (-> obj root-pos)))
(activate! (-> obj smush) -1.0 60 150 1.0 1.0)
(activate! (-> obj smush) -0.5 60 150 1.0 1.0)
)
(activate! (-> obj smush) -1.0 60 150 1.0 1.0)
(activate! (-> obj smush) -0.5 60 150 1.0 1.0)
)
(set! (-> obj bouncing) #t)
(logclear! (-> obj mask) (process-mask sleep))
0
@ -139,417 +122,287 @@
(defmethod calculate-pos orb-cache-top ((obj orb-cache-top) (arg0 symbol))
(let ((f0-0 0.0))
(when arg0
(set! f0-0 (+ 10240.0 (* 6144.0 (the float (+ (-> obj money) -1)))))
(if (< f0-0 2048.0)
(set! f0-0 2048.0)
)
(when arg0
(set! f0-0 (+ 10240.0 (* 6144.0 (the float (+ (-> obj money) -1)))))
(if (< f0-0 2048.0)
(set! f0-0 2048.0)
)
)
(set! (-> obj platform-pos) (+ (-> obj root-pos) f0-0))
(let ((f0-2 (+ -6144.0 f0-0)))
(dotimes (v1-5 (-> obj money))
(set! (-> obj money-pos-list v1-5) (+ (-> obj root-pos) f0-2))
(set! f0-2 (+ -6144.0 f0-2))
)
)
)
(set! (-> obj platform-pos) (+ (-> obj root-pos) f0-0))
(let ((f0-2 (+ -6144.0 f0-0)))
(dotimes (v1-5 (-> obj money))
(set! (-> obj money-pos-list v1-5) (+ (-> obj root-pos) f0-2))
(set! f0-2 (+ -6144.0 f0-2))
)
)
)
0
(none)
)
(defmethod pos-logic orb-cache-top ((obj orb-cache-top) (arg0 symbol))
(dotimes (s4-0 (-> obj money))
(when (not (handle->process (-> obj money-list s4-0)))
(dotimes (v1-6 (-> obj money))
(when (< s4-0 v1-6)
(set! (-> obj money-list (+ v1-6 -1)) (-> obj money-list v1-6))
(set!
(-> obj money-pos-actual (+ v1-6 -1))
(-> obj money-pos-actual v1-6)
)
(when (not (handle->process (-> obj money-list s4-0)))
(dotimes (v1-6 (-> obj money))
(when (< s4-0 v1-6)
(set! (-> obj money-list (+ v1-6 -1)) (-> obj money-list v1-6))
(set! (-> obj money-pos-actual (+ v1-6 -1)) (-> obj money-pos-actual v1-6))
)
)
(+! (-> obj money) -1)
(calculate-pos obj arg0)
(+! s4-0 -1)
(let ((v1-15 (-> obj entity extra perm)))
(logior! (-> v1-15 status) (entity-perm-status user-set-from-cstage))
(+! (-> v1-15 user-int16 0) 1)
)
)
)
(+! (-> obj money) -1)
(calculate-pos obj arg0)
(+! s4-0 -1)
(let ((v1-15 (-> obj entity extra perm)))
(logior! (-> v1-15 status) (entity-perm-status user-set-from-cstage))
(+! (-> v1-15 user-int16 0) 1)
)
)
)
(let ((s4-1 (new 'stack-no-clear 'vector))
(s5-1 #t)
)
(let ((s3-0 #f))
(let ((f28-0 (- (-> obj basetrans y) (-> obj root-pos)))
(f30-0 (- (-> obj platform-pos) (-> obj root-pos)))
(let ((s3-0 #f))
(let ((f28-0 (- (-> obj basetrans y) (-> obj root-pos)))
(f30-0 (- (-> obj platform-pos) (-> obj root-pos)))
)
(when (zero? (-> obj money))
(set! f30-0 2048.0)
(set! s3-0 #t)
)
(when (zero? (-> obj money))
(set! f30-0 2048.0)
(set! s3-0 #t)
)
(when
(and
(< f30-0 15155.2)
(and
*target*
(>=
16384.0
(vector-vector-distance
(-> obj root-override trans)
(-> *target* control trans)
(when (and
(< f30-0 15155.2)
(and *target* (>= 16384.0 (vector-vector-distance (-> obj root-override trans) (-> *target* control trans))))
(< (-> (target-pos 0) y) (-> obj basetrans y))
)
(set! f30-0 (if (< 14131.2 f28-0)
15155.2
f28-0
)
)
(set! s3-0 #f)
)
)
(set! (-> obj basetrans y)
(seek (-> obj basetrans y) (+ (-> obj root-pos) f30-0) (* 40960.0 (-> *display* seconds-per-frame)))
)
(if (not (= (-> obj basetrans y) (+ (-> obj root-pos) f30-0)))
(set! s5-1 #f)
)
)
(< (-> (target-pos 0) y) (-> obj basetrans y))
)
(set! f30-0 (if (< 14131.2 f28-0)
15155.2
f28-0
)
)
(set! s3-0 #f)
(dotimes (s2-0 (-> obj money))
(set! (-> s4-1 quad)
(-> (the-as process-drawable (handle->process (-> obj money-list s2-0))) root trans quad)
)
(set! (-> obj money-pos-actual s2-0) (seek
(-> obj money-pos-actual s2-0)
(-> obj money-pos-list s2-0)
(* 40960.0 (-> *display* seconds-per-frame))
)
)
(if (not (= (-> obj money-pos-actual s2-0) (-> obj money-pos-list s2-0)))
(set! s5-1 #f)
)
(if (>= (-> obj money-pos-actual s2-0) (+ -8192.0 (-> obj root-pos)))
(set! (-> s4-1 y) (-> obj money-pos-actual s2-0))
(set! (-> s4-1 y) (+ -8192.0 (-> obj root-pos)))
)
(send-event (handle->process (-> obj money-list s2-0)) 'trans s4-1)
)
(set! s3-0 (and s5-1 s3-0))
(if s3-0
(go orb-cache-top-complete #f)
)
)
(set!
(-> obj basetrans y)
(seek
(-> obj basetrans y)
(+ (-> obj root-pos) f30-0)
(* 40960.0 (-> *display* seconds-per-frame))
)
)
(if (not (= (-> obj basetrans y) (+ (-> obj root-pos) f30-0)))
(set! s5-1 #f)
)
)
(dotimes (s2-0 (-> obj money))
(set!
(-> s4-1 quad)
(->
(the-as process-drawable (handle->process (-> obj money-list s2-0)))
root
trans
quad
)
)
(set!
(-> obj money-pos-actual s2-0)
(seek
(-> obj money-pos-actual s2-0)
(-> obj money-pos-list s2-0)
(* 40960.0 (-> *display* seconds-per-frame))
)
)
(if (not (= (-> obj money-pos-actual s2-0) (-> obj money-pos-list s2-0)))
(set! s5-1 #f)
)
(if (>= (-> obj money-pos-actual s2-0) (+ -8192.0 (-> obj root-pos)))
(set! (-> s4-1 y) (-> obj money-pos-actual s2-0))
(set! (-> s4-1 y) (+ -8192.0 (-> obj root-pos)))
)
(send-event (handle->process (-> obj money-list s2-0)) 'trans s4-1)
)
(set! s3-0 (and s5-1 s3-0))
(if s3-0
(go orb-cache-top-complete #f)
)
s5-1
)
s5-1
)
)
(defstate orb-cache-top-activate (orb-cache-top)
:event
(the-as
(function process int symbol event-message-block object :behavior orb-cache-top)
plat-event
)
(the-as (function process int symbol event-message-block object :behavior orb-cache-top) plat-event)
:exit
(behavior ()
(process-entity-status! self (entity-perm-status bit-3) #f)
(none)
)
(behavior () (process-entity-status! self (entity-perm-status bit-3) #f) (none))
:trans
(the-as (function none :behavior orb-cache-top) plat-trans)
:code
(behavior ((arg0 symbol))
(process-entity-status! self (entity-perm-status bit-3) #t)
(calculate-pos self arg0)
(if arg0
(set! (-> self basetrans y) (-> self platform-pos))
(sound-play-by-name
(static-sound-name "open-orb-cash")
(new-sound-id)
1024
0
0
1
#t
)
)
(dotimes (s5-1 (-> self money))
(let ((s4-1 (new 'stack-no-clear 'vector)))
(set! (-> s4-1 quad) (-> self basetrans quad))
(set! (-> s4-1 y) (-> self money-pos-list s5-1))
(set! (-> self money-pos-actual s5-1) (-> s4-1 y))
(let ((s3-0 (get-process *default-dead-pool* money #x4000)))
(set! (-> self money-list s5-1) (ppointer->handle (when s3-0
(let
((t9-5
(method-of-type
money
activate
)
)
)
(t9-5
(the-as money s3-0)
self
'money
(the-as
pointer
#x70004000
)
)
)
(run-now-in-process
s3-0
money-init-by-other-no-bob
s4-1
*null-vector*
5
1.0
(-> self entity)
)
(-> s3-0 ppointer)
)
)
)
)
)
)
(while #t
(calculate-pos self #t)
(while
(not
(or
(not *target*)
(<
(-> self inactive-distance)
(vector-vector-xz-distance
(-> self root-override trans)
(-> *target* control trans)
)
(process-entity-status! self (entity-perm-status bit-3) #t)
(calculate-pos self arg0)
(if arg0
(set! (-> self basetrans y) (-> self platform-pos))
(sound-play-by-name (static-sound-name "open-orb-cash") (new-sound-id) 1024 0 0 1 #t)
)
)
)
(pos-logic self #t)
(suspend)
)
(calculate-pos self #f)
(while
(and
(not
(and
(and
*target*
(>=
(-> self active-distance)
(vector-vector-xz-distance
(-> self root-override trans)
(-> *target* control trans)
)
(dotimes (s5-1 (-> self money))
(let ((s4-1 (new 'stack-no-clear 'vector)))
(set! (-> s4-1 quad) (-> self basetrans quad))
(set! (-> s4-1 y) (-> self money-pos-list s5-1))
(set! (-> self money-pos-actual s5-1) (-> s4-1 y))
(let ((s3-0 (get-process *default-dead-pool* money #x4000)))
(set! (-> self money-list s5-1)
(ppointer->handle
(when s3-0
(let ((t9-5 (method-of-type money activate)))
(t9-5 (the-as money s3-0) self 'money (the-as pointer #x70004000))
)
(run-now-in-process s3-0 money-init-by-other-no-bob s4-1 *null-vector* 5 1.0 (-> self entity))
(-> s3-0 ppointer)
)
)
)
)
)
(let ((a1-11 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-11 from) self)
(set! (-> a1-11 num-params) 2)
(set! (-> a1-11 message) 'query)
(set! (-> a1-11 param 0) (the-as uint 'powerup))
(set! (-> a1-11 param 1) (the-as uint 3))
(or (send-event-function *target* a1-11) (-> self activated))
)
)
)
(not (pos-logic self #f))
)
(suspend)
)
(if
(not
(and
(and
*target*
(>=
(-> self active-distance)
(vector-vector-xz-distance
(-> self root-override trans)
(-> *target* control trans)
(while #t
(calculate-pos self #t)
(while (not
(or (not *target*) (< (-> self inactive-distance)
(vector-vector-xz-distance (-> self root-override trans) (-> *target* control trans))
)
)
)
(pos-logic self #t)
(suspend)
)
(calculate-pos self #f)
(while (and
(not
(and
(and *target* (>= (-> self active-distance)
(vector-vector-xz-distance (-> self root-override trans) (-> *target* control trans))
)
)
(let ((a1-11 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-11 from) self)
(set! (-> a1-11 num-params) 2)
(set! (-> a1-11 message) 'query)
(set! (-> a1-11 param 0) (the-as uint 'powerup))
(set! (-> a1-11 param 1) (the-as uint 3))
(or (send-event-function *target* a1-11) (-> self activated))
)
)
)
(not (pos-logic self #f))
)
(suspend)
)
(if (not
(and
(and *target* (>= (-> self active-distance)
(vector-vector-xz-distance (-> self root-override trans) (-> *target* control trans))
)
)
(let ((a1-14 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-14 from) self)
(set! (-> a1-14 num-params) 2)
(set! (-> a1-14 message) 'query)
(set! (-> a1-14 param 0) (the-as uint 'powerup))
(set! (-> a1-14 param 1) (the-as uint 3))
(or (send-event-function *target* a1-14) (-> self activated))
)
)
)
(go orb-cache-top-idle arg0)
)
)
)
(let ((a1-14 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-14 from) self)
(set! (-> a1-14 num-params) 2)
(set! (-> a1-14 message) 'query)
(set! (-> a1-14 param 0) (the-as uint 'powerup))
(set! (-> a1-14 param 1) (the-as uint 3))
(or (send-event-function *target* a1-14) (-> self activated))
)
)
)
(go orb-cache-top-idle arg0)
)
(none)
)
(none)
)
:post
(the-as (function none :behavior orb-cache-top) plat-post)
)
(defstate orb-cache-top-complete (orb-cache-top)
:event
(the-as
(function process int symbol event-message-block object :behavior orb-cache-top)
plat-event
)
(the-as (function process int symbol event-message-block object :behavior orb-cache-top) plat-event)
:trans
(the-as (function none :behavior orb-cache-top) plat-trans)
:code
(behavior ((arg0 symbol))
(if (not arg0)
(sound-play-by-name
(static-sound-name "close-orb-cash")
(new-sound-id)
1024
0
0
1
#t
)
(if (not arg0)
(sound-play-by-name (static-sound-name "close-orb-cash") (new-sound-id) 1024 0 0 1 #t)
)
(let ((gp-1 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-1
(the-as art-joint-anim (-> self draw art-group data 3))
num-func-identity
)
(set! (-> gp-1 frame-num) (ja-aframe 0.0 0))
)
(new 'stack-no-clear 'vector)
(set! (-> self basetrans y) (+ 2048.0 (-> self root-pos)))
(anim-loop)
(none)
)
(let ((gp-1 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-1
(the-as art-joint-anim (-> self draw art-group data 3))
num-func-identity
)
(set! (-> gp-1 frame-num) (ja-aframe 0.0 0))
)
(new 'stack-no-clear 'vector)
(set! (-> self basetrans y) (+ 2048.0 (-> self root-pos)))
(anim-loop)
(none)
)
:post
(the-as (function none :behavior orb-cache-top) plat-post)
)
(defmethod
init-from-entity!
orb-cache-top
((obj orb-cache-top) (arg0 entity-actor))
(defmethod init-from-entity! orb-cache-top ((obj orb-cache-top) (arg0 entity-actor))
(let ((a0-1 (-> obj entity)))
(if (when a0-1
(let ((a0-2 (-> a0-1 extra perm task)))
(if a0-2
(= a0-2 (game-task none))
)
)
(if (when a0-1
(let ((a0-2 (-> a0-1 extra perm task)))
(if a0-2
(= a0-2 (game-task none))
)
)
)
(set! (-> obj entity extra perm task) (game-task complete))
)
(set! (-> obj entity extra perm task) (game-task complete))
)
)
(let
((s4-0
(new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))
)
)
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set!
(-> s4-0 no-reaction)
(the-as
(function collide-shape-moving collide-shape-intersect vector vector none)
nothing
)
)
(dummy-29 s4-0 1)
(let
((s3-0
(new
'process
'collide-shape-prim-mesh
s4-0
(the-as uint 0)
(the-as uint 0)
)
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set! (-> s4-0 no-reaction)
(the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing)
)
(dummy-29 s4-0 1)
(let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
(set! (-> s3-0 prim-core collide-as) (the-as uint #x8800))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 3))
(set! (-> s3-0 prim-core offense) 4)
(set! (-> s3-0 transform-index) 0)
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 11468.8)
(set-root-prim! s4-0 s3-0)
)
)
(set! (-> s3-0 prim-core collide-as) (the-as uint #x8800))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 3))
(set! (-> s3-0 prim-core offense) 4)
(set! (-> s3-0 transform-index) 0)
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 11468.8)
(set-root-prim! s4-0 s3-0)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(backup-collide-with-as s4-0)
(set! (-> obj root-override) s4-0)
)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(backup-collide-with-as s4-0)
(set! (-> obj root-override) s4-0)
)
(process-drawable-from-entity! obj arg0)
(logclear! (-> obj mask) (process-mask actor-pause))
(initialize-skeleton obj *orb-cache-top-sg* '())
(logior! (-> obj skel status) 1)
(dummy-47 (-> obj root-override))
(dummy-21 obj)
(set!
(-> obj money)
(res-lump-value
(-> obj entity)
'orb-cache-count
int
:default
(the-as uint128 20)
)
)
(set! (-> obj money) (res-lump-value (-> obj entity) 'orb-cache-count int :default (the-as uint128 20)))
(set! (-> obj active-distance) 61440.0)
(set! (-> obj inactive-distance) 245760.0)
(set! (-> obj root-pos) (-> obj basetrans y))
(set! (-> obj platform-pos) (-> obj root-pos))
(set!
(-> obj activated)
(the-as
symbol
(and
(-> obj entity)
(logtest? (-> obj entity extra perm status) (entity-perm-status complete))
)
)
)
(set! (-> obj activated)
(the-as
symbol
(and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status complete)))
)
)
(let ((v1-39 (-> obj entity extra perm)))
(logior! (-> v1-39 status) (entity-perm-status user-set-from-cstage))
(set! (-> obj money) (- (-> obj money) (-> v1-39 user-int16 0)))
)
(logior! (-> v1-39 status) (entity-perm-status user-set-from-cstage))
(set! (-> obj money) (- (-> obj money) (-> v1-39 user-int16 0)))
)
(dotimes (v1-42 (-> obj money))
(set! (-> obj money-list v1-42) (the-as handle #f))
)
(set! (-> obj money-list v1-42) (the-as handle #f))
)
(cond
((zero? (-> obj money))
(go orb-cache-top-complete #t)
)
((and
(-> obj entity)
(logtest? (-> obj entity extra perm status) (entity-perm-status complete))
((zero? (-> obj money))
(go orb-cache-top-complete #t)
)
(go orb-cache-top-activate #t)
((and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status complete)))
(go orb-cache-top-activate #t)
)
(else
(go orb-cache-top-idle #f)
)
)
(else
(go orb-cache-top-idle #f)
)
)
(none)
)

View File

@ -23,6 +23,8 @@
(:states
green-eco-lurker-appear
green-eco-lurker-appear-land
green-eco-lurker-tune-spheres
green-eco-lurker-wait-to-appear
)
)
@ -36,6 +38,9 @@
:method-count-assert 20
:size-assert #xbc
:flag-assert #x14005000bc
(:states
spawn-minions
)
)

View File

@ -25,6 +25,7 @@
(common-trans (_type_) none 20)
)
(:states
light-eco-child-appear
light-eco-child-die
light-eco-child-grabbed
light-eco-child-hit-ground
@ -51,6 +52,7 @@
)
(:states
light-eco-mother-active
light-eco-mother-appear
light-eco-mother-discipate
)
)

View File

@ -66,63 +66,77 @@
(:methods
(ease-loc-t (_type_) float 20)
)
(:states
robotboss-blue-dark-bomb
robotboss-blue-dark-bomb-wait
robotboss-blue-wait
robotboss-daxter-sacrifice-movie
robotboss-green
robotboss-green-dark-bomb
robotboss-green-dark-bomb-wait
robotboss-green-wait
robotboss-red
robotboss-red-dark-bomb
robotboss-red-dark-bomb-wait
robotboss-red-wait
robotboss-white-eco-movie
robotboss-yellow
robotboss-yellow-dark-bomb
robotboss-yellow-dark-bomb-wait
robotboss-yellow-wait
)
)
(defmethod relocate robotboss ((obj robotboss) (arg0 int))
(dotimes (v1-0 7)
(if (nonzero? (-> obj particle v1-0))
(&+! (-> obj particle v1-0) arg0)
(if (nonzero? (-> obj particle v1-0))
(&+! (-> obj particle v1-0) arg0)
)
)
)
(dotimes (v1-3 4)
(if (nonzero? (-> obj looping-sound v1-3))
(&+! (-> obj looping-sound v1-3) arg0)
(if (nonzero? (-> obj looping-sound v1-3))
(&+! (-> obj looping-sound v1-3) arg0)
)
)
)
(if (nonzero? (-> obj yellow-gun))
(&+! (-> obj yellow-gun) arg0)
)
(&+! (-> obj yellow-gun) arg0)
)
(the-as robotboss ((method-of-type process-drawable relocate) obj arg0))
)
(defmethod deactivate robotboss ((obj robotboss))
(dotimes (s5-0 7)
(let ((a0-1 (-> obj particle s5-0)))
(if (nonzero? a0-1)
(kill-and-free-particles a0-1)
)
(let ((a0-1 (-> obj particle s5-0)))
(if (nonzero? a0-1)
(kill-and-free-particles a0-1)
)
)
)
)
(dotimes (s5-1 4)
(let ((a0-2 (-> obj looping-sound s5-1)))
(if (nonzero? a0-2)
(stop! a0-2)
)
(let ((a0-2 (-> obj looping-sound s5-1)))
(if (nonzero? a0-2)
(stop! a0-2)
)
)
)
)
((method-of-type process-drawable deactivate) obj)
(none)
)
(defun target-has-all-the-cells? ()
(with-pp
(the-as
symbol
(and *target* (let ((a1-0 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-0 from) pp)
(set! (-> a1-0 num-params) 2)
(set! (-> a1-0 message) 'query)
(set! (-> a1-0 param 0) (the-as uint 'pickup))
(set! (-> a1-0 param 1) (the-as uint 6))
(>=
(the int (the-as float (send-event-function *target* a1-0)))
100
)
)
)
(the-as symbol (and *target* (let ((a1-0 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-0 from) pp)
(set! (-> a1-0 num-params) 2)
(set! (-> a1-0 message) 'query)
(set! (-> a1-0 param 0) (the-as uint 'pickup))
(set! (-> a1-0 param 1) (the-as uint 6))
(>= (the int (the-as float (send-event-function *target* a1-0))) 100)
)
)
)
)
)
)
(defskelgroup *robotboss-sg* robotboss

View File

@ -8,8 +8,6 @@
(declare-type ecoclaw process-drawable)
(define-extern *ecoclaw* (pointer ecoclaw))
(define-extern ecoclaw-idle (state ecoclaw)) ;; unknown type
(define-extern ecoclaw-activate (state ecoclaw)) ;; unknown type
;; DECOMP BEGINS
@ -114,6 +112,10 @@
:method-count-assert 20
:size-assert #x110
:flag-assert #x1400a00110
(:states
ecoclaw-activate
ecoclaw-idle
)
)

View File

@ -156,6 +156,9 @@
:method-count-assert 20
:size-assert #xe0
:flag-assert #x14007000e0
(:states
arcing-shot-debug-trajectory
)
)
@ -227,6 +230,12 @@
:method-count-assert 20
:size-assert #xf4
:flag-assert #x14009000f4
(:states
darkecobomb-countdown
(darkecobomb-explode symbol)
darkecobomb-idle
darkecobomb-land
)
)
@ -588,6 +597,9 @@
:method-count-assert 20
:size-assert #xe8
:flag-assert #x14008000e8
(:states
greenshot-idle
)
)
@ -700,6 +712,11 @@
:method-count-assert 20
:size-assert #x130
:flag-assert #x1400c00130
(:states
redshot-explode
redshot-idle
redshot-wait
)
)
@ -964,6 +981,9 @@
:method-count-assert 20
:size-assert #xe8
:flag-assert #x14008000e8
(:states
yellowshot-idle
)
)

View File

@ -216,6 +216,9 @@
:method-count-assert 53
:size-assert #x270
:flag-assert #x3502000270
(:states
sage-finalboss-credits
)
)

File diff suppressed because it is too large Load Diff

View File

@ -5,23 +5,6 @@
;; name in dgo: target-flut
;; dgos: L1, SNO, SWA
(define-extern target-flut-stance (state target)) ;; unknown type
(define-extern target-flut-grab (state target)) ;; unknown type
(define-extern target-flut-clone-anim (state handle target)) ;; unknown type
(define-extern target-flut-get-off-hit-ground (state symbol target)) ;; unknown type
(define-extern target-flut-get-off-jump (state handle target)) ;; unknown type
(define-extern target-flut-death (state symbol target)) ;; unknown type
(define-extern target-flut-hit-ground (state target)) ;; unknown type
(define-extern target-flut-air-attack-hit-ground (state target)) ;; unknown type
(define-extern target-flut-jump (state float float target)) ;; unknown type
(define-extern target-flut-falling (state target)) ;; unknown type
(define-extern target-flut-hit (state symbol attack-info target)) ;; unknown type
(define-extern target-flut-walk (state target)) ;; unknown type
(define-extern target-flut-air-attack (state float target)) ;; unknown type
(define-extern target-flut-double-jump (state float float target)) ;; unknown type
(define-extern target-flut-running-attack (state target)) ;; unknown type
(define-extern target-flut-get-on (state handle target)) ;; unknown type
(define-extern target-flut-get-off (state handle target)) ;; unknown type
(define-extern target-flut-falling-anim-trans (function none :behavior target))

View File

@ -6,9 +6,6 @@
;; dgos: JUN, JUNGLE, L1
(declare-type springbox process-drawable)
(define-extern bouncer-wait (state springbox)) ;; unknown type
(define-extern bouncer-fire (state springbox)) ;; unknown type
(define-extern bouncer-smush (state springbox)) ;; unknown type
;; DECOMP BEGINS
@ -20,6 +17,11 @@
:method-count-assert 20
:size-assert #xb8
:flag-assert #x14005000b8
(:states
bouncer-fire
bouncer-smush
bouncer-wait
)
)
@ -36,135 +38,101 @@
(defstate bouncer-wait (springbox)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('bonk)
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-3 from) self)
(set! (-> a1-3 num-params) 3)
(set! (-> a1-3 message) 'jump)
(set! (-> a1-3 param 0) (the-as uint (-> self spring-height)))
(set! (-> a1-3 param 1) (the-as uint (-> self spring-height)))
(set! (-> a1-3 param 2) (the-as uint #f))
(when (send-event-function arg0 a1-3)
(sound-play-by-name
(static-sound-name "trampoline")
(new-sound-id)
1024
0
0
1
#t
(case arg2
(('bonk)
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-3 from) self)
(set! (-> a1-3 num-params) 3)
(set! (-> a1-3 message) 'jump)
(set! (-> a1-3 param 0) (the-as uint (-> self spring-height)))
(set! (-> a1-3 param 1) (the-as uint (-> self spring-height)))
(set! (-> a1-3 param 2) (the-as uint #f))
(when (send-event-function arg0 a1-3)
(sound-play-by-name (static-sound-name "trampoline") (new-sound-id) 1024 0 0 1 #t)
(go bouncer-fire)
)
)
)
(('touch)
(if (not (or (= (-> self next-state name) 'bouncer-smush) (= (-> self next-state name) 'bouncer-fire)))
(go bouncer-smush)
)
)
(('attack)
(when (and (= (-> arg3 param 1) 'flop) (send-event arg0 'jump (-> self spring-height) (-> self spring-height) #f))
(go bouncer-fire)
#f
)
(go bouncer-fire)
)
)
)
(('touch)
(if
(not
(or
(= (-> self next-state name) 'bouncer-smush)
(= (-> self next-state name) 'bouncer-fire)
)
)
(go bouncer-smush)
)
)
(('attack)
(when
(and
(= (-> arg3 param 1) 'flop)
(send-event
arg0
'jump
(-> self spring-height)
(-> self spring-height)
#f
)
)
(go bouncer-fire)
#f
)
)
)
)
:code
(behavior ()
(let ((gp-0 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-0
(the-as art-joint-anim (-> self draw art-group data 2))
num-func-identity
)
(set! (-> gp-0 frame-num) 0.0)
(let ((gp-0 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-0
(the-as art-joint-anim (-> self draw art-group data 2))
num-func-identity
)
(set! (-> gp-0 frame-num) 0.0)
)
(transform-post)
(while #t
(logior! (-> self mask) (process-mask sleep))
(suspend)
)
(none)
)
(transform-post)
(while #t
(logior! (-> self mask) (process-mask sleep))
(suspend)
)
(none)
)
)
(defstate bouncer-smush (springbox)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('touch)
(set! (-> self state-time) (-> *display* base-frame-counter))
#f
(case arg2
(('touch)
(set! (-> self state-time) (-> *display* base-frame-counter))
#f
)
(else
((-> bouncer-wait event) arg0 arg1 arg2 arg3)
)
)
(else
((-> bouncer-wait event) arg0 arg1 arg2 arg3)
)
)
)
:code
(behavior ()
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self smush) 0.0)
(while #t
(cond
((>= (- (-> *display* base-frame-counter) (-> self state-time)) 60)
(let ((a0-1 (-> self skel root-channel 0)))
(set! (-> a0-1 param 0) 0.0)
(set! (-> a0-1 param 1) 0.1)
(joint-control-channel-group-eval!
a0-1
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
(else
(let ((gp-0 (-> self skel root-channel 0)))
(set!
(-> gp-0 param 0)
(lerp-scale
(ja-aframe 6.0 0)
(ja-aframe 2.0 0)
(vector-vector-xz-distance (target-pos 0) (-> self root trans))
0.0
4096.0
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self smush) 0.0)
(while #t
(cond
((>= (- (-> *display* base-frame-counter) (-> self state-time)) 60)
(let ((a0-1 (-> self skel root-channel 0)))
(set! (-> a0-1 param 0) 0.0)
(set! (-> a0-1 param 1) 0.1)
(joint-control-channel-group-eval! a0-1 (the-as art-joint-anim #f) num-func-seek!)
)
)
(else
(let ((gp-0 (-> self skel root-channel 0)))
(set! (-> gp-0 param 0) (lerp-scale
(ja-aframe 6.0 0)
(ja-aframe 2.0 0)
(vector-vector-xz-distance (target-pos 0) (-> self root trans))
0.0
4096.0
)
)
(set! (-> gp-0 param 1) 0.2)
(joint-control-channel-group-eval! gp-0 (the-as art-joint-anim #f) num-func-seek!)
)
)
)
(set! (-> gp-0 param 1) 0.2)
(joint-control-channel-group-eval!
gp-0
(the-as art-joint-anim #f)
num-func-seek!
)
)
(suspend)
(if (ja-min? 0)
(go bouncer-wait)
)
)
)
(suspend)
(if (ja-min? 0)
(go bouncer-wait)
)
(none)
)
(none)
)
:post
(the-as (function none :behavior springbox) transform-post)
)
@ -172,102 +140,55 @@
(defstate bouncer-fire (springbox)
:code
(behavior ()
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 30)
(let ((gp-0 (-> self skel root-channel 0)))
(set!
(-> gp-0 frame-group)
(the-as art-joint-anim (-> self draw art-group data 2))
)
(set!
(-> gp-0 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 2))
data
0
length
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 178 30)
(let ((gp-0 (-> self skel root-channel 0)))
(set! (-> gp-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 2)))
(set! (-> gp-0 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) data 0 length) -1))
)
(set! (-> gp-0 param 1) 1.0)
(set! (-> gp-0 frame-num) (ja-aframe 6.0 0))
(joint-control-channel-group! gp-0 (the-as art-joint-anim (-> self draw art-group data 2)) num-func-seek!)
)
(until (ja-done? 0)
(suspend)
(let ((a0-3 (-> self skel root-channel 0)))
(set! (-> a0-3 param 0) (the float (+ (-> a0-3 frame-group data 0 length) -1)))
(set! (-> a0-3 param 1) 1.0)
(joint-control-channel-group-eval! a0-3 (the-as art-joint-anim #f) num-func-seek!)
)
-1
)
)
)
(set! (-> gp-0 param 1) 1.0)
(set! (-> gp-0 frame-num) (ja-aframe 6.0 0))
(joint-control-channel-group!
gp-0
(the-as art-joint-anim (-> self draw art-group data 2))
num-func-seek!
)
(go bouncer-wait)
(none)
)
(until (ja-done? 0)
(suspend)
(let ((a0-3 (-> self skel root-channel 0)))
(set!
(-> a0-3 param 0)
(the float (+ (-> a0-3 frame-group data 0 length) -1))
)
(set! (-> a0-3 param 1) 1.0)
(joint-control-channel-group-eval!
a0-3
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
(go bouncer-wait)
(none)
)
:post
(the-as (function none :behavior springbox) transform-post)
)
(defmethod init-from-entity! springbox ((obj springbox) (arg0 entity-actor))
(let
((s4-0
(new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))
)
)
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set!
(-> s4-0 no-reaction)
(the-as
(function collide-shape-moving collide-shape-intersect vector vector none)
nothing
)
)
(let
((s3-0
(new
'process
'collide-shape-prim-mesh
s4-0
(the-as uint 0)
(the-as uint 0)
)
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set! (-> s4-0 no-reaction)
(the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing)
)
(let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
(set! (-> s3-0 prim-core collide-as) (the-as uint 128))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 1))
(set! (-> s3-0 prim-core offense) 4)
(set! (-> s3-0 transform-index) 0)
(set-vector! (-> s3-0 local-sphere) 0.0 3072.0 0.0 6963.2)
(set-root-prim! s4-0 s3-0)
)
)
(set! (-> s3-0 prim-core collide-as) (the-as uint 128))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 1))
(set! (-> s3-0 prim-core offense) 4)
(set! (-> s3-0 transform-index) 0)
(set-vector! (-> s3-0 local-sphere) 0.0 3072.0 0.0 6963.2)
(set-root-prim! s4-0 s3-0)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(backup-collide-with-as s4-0)
(set! (-> obj root) s4-0)
)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(backup-collide-with-as s4-0)
(set! (-> obj root) s4-0)
)
(process-drawable-from-entity! obj arg0)
(initialize-skeleton obj *bouncer-sg* '())
(nav-mesh-connect obj (-> obj root) (the-as nav-control #f))
(set!
(-> obj spring-height)
(res-lump-float arg0 'spring-height :default 45056.0)
)
(set! (-> obj spring-height) (res-lump-float arg0 'spring-height :default 45056.0))
(go bouncer-wait)
(none)
)

View File

@ -9,9 +9,6 @@
(declare-type darkvine process-drawable)
(define-extern darkvine-die (state symbol darkvine)) ;; unknown type
(define-extern darkvine-idle (state darkvine)) ;; unknown type
(define-extern darkvine-retreat (state darkvine)) ;; unknown type
;; DECOMP BEGINS
@ -29,31 +26,29 @@
:method-count-assert 20
:size-assert #xd4
:flag-assert #x14007000d4
(:states
(darkvine-die symbol)
darkvine-idle
darkvine-retreat
)
)
(defmethod run-logic? darkvine ((obj darkvine))
(or
(zero? (logand (-> obj mask) (process-mask actor-pause)))
(or
(and
(nonzero? (-> obj draw))
(logtest? (-> obj draw status) 8)
(>=
(+
(-> *ACTOR-bank* pause-dist)
(-> obj root-override pause-adjust-distance)
)
(vector-vector-distance (-> obj root-override trans) (math-camera-pos))
(zero? (logand (-> obj mask) (process-mask actor-pause)))
(or
(and
(nonzero? (-> obj draw))
(logtest? (-> obj draw status) (draw-status drwf03))
(>= (+ (-> *ACTOR-bank* pause-dist) (-> obj root-override pause-adjust-distance))
(vector-vector-distance (-> obj root-override trans) (math-camera-pos))
)
)
(and (nonzero? (-> obj skel)) (!= (-> obj skel root-channel 0) (-> obj skel channel)))
(and (nonzero? (-> obj draw)) (logtest? (-> obj draw status) (draw-status drwf04)))
)
)
(and
(nonzero? (-> obj skel))
(!= (-> obj skel root-channel 0) (-> obj skel channel))
)
(and (nonzero? (-> obj draw)) (logtest? (-> obj draw status) 16))
)
)
)
(defskelgroup *darkvine-sg* darkvine
@ -64,151 +59,135 @@
:longest-edge (meters 0)
)
(set!
(-> *part-group-id-table* 175)
(new 'static 'sparticle-launch-group
:length 3
:duration #x96
:linger-duration #x5dc
:flags (sp-group-flag use-local-clock)
:name "group-darkvine-puffs"
:launcher
(new 'static 'inline-array sparticle-group-item 3
(sp-item 800)
(sp-item 801)
(sp-item 802)
)
:bounds
(new 'static 'sphere :y 8192.0 :w 12288.0)
)
)
(set! (-> *part-group-id-table* 175)
(new 'static 'sparticle-launch-group
:length 3
:duration #x96
:linger-duration #x5dc
:flags (sp-group-flag use-local-clock)
:name "group-darkvine-puffs"
:launcher
(new 'static 'inline-array sparticle-group-item 3 (sp-item 800) (sp-item 801) (sp-item 802))
:bounds
(new 'static 'sphere :y 8192.0 :w 12288.0)
)
)
(set!
(-> *part-id-table* 800)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 19
(sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2))
(sp-flt spt-num 0.8)
(sp-rnd-flt spt-x (meters 0.0) (meters 0.5) 1.0)
(sp-rnd-flt spt-scale-x (meters 1.0) (meters 1.0) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 30.0 20.0 1.0)
(sp-rnd-flt spt-g 25.0 10.0 1.0)
(sp-rnd-flt spt-b 10.0 5.0 1.0)
(sp-rnd-flt spt-a 0.0 32.0 1.0)
(sp-rnd-flt spt-vel-x (meters 0.0016666667) (meters 0.0033333334) 1.0)
(sp-flt spt-vel-y (meters 0.013333334))
(sp-rnd-int-flt spt-rotvel-z (degrees -0.3) 1 109.22667)
(sp-flt spt-fade-a 0.1882353)
(sp-flt spt-accel-y -2.048)
(sp-int spt-timer 255)
(sp-cpuinfo-flags bit2 bit12)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(set! (-> *part-id-table* 800) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 19
(sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2))
(sp-flt spt-num 0.8)
(sp-rnd-flt spt-x (meters 0.0) (meters 0.5) 1.0)
(sp-rnd-flt spt-scale-x (meters 1.0) (meters 1.0) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 30.0 20.0 1.0)
(sp-rnd-flt spt-g 25.0 10.0 1.0)
(sp-rnd-flt spt-b 10.0 5.0 1.0)
(sp-rnd-flt spt-a 0.0 32.0 1.0)
(sp-rnd-flt spt-vel-x (meters 0.0016666667) (meters 0.0033333334) 1.0)
(sp-flt spt-vel-y (meters 0.013333334))
(sp-rnd-int-flt spt-rotvel-z (degrees -0.3) 1 109.22667)
(sp-flt spt-fade-a 0.1882353)
(sp-flt spt-accel-y -2.048)
(sp-int spt-timer 255)
(sp-cpuinfo-flags bit2 bit12)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 802)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 18
(sp-tex spt-texture (new 'static 'texture-id :index #x1d :page #x2))
(sp-flt spt-num 0.25)
(sp-rnd-flt spt-x (meters 0.0) (meters 0.6) 1.0)
(sp-rnd-flt spt-scale-x (meters 0.025) (meters 0.2) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 45.0 45.0 1.0)
(sp-rnd-flt spt-g 45.0 10.0 1.0)
(sp-rnd-flt spt-b 20.0 6.0 1.0)
(sp-flt spt-a 96.0)
(sp-rnd-flt spt-vel-x (meters 0.0016666667) (meters 0.0033333334) 1.0)
(sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.013333334) 1.0)
(sp-rnd-int-flt spt-rotvel-z (degrees -0.3) 1 109.22667)
(sp-flt spt-accel-y -2.7306666)
(sp-int spt-timer 375)
(sp-cpuinfo-flags bit2 bit12)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(set! (-> *part-id-table* 802) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 18
(sp-tex spt-texture (new 'static 'texture-id :index #x1d :page #x2))
(sp-flt spt-num 0.25)
(sp-rnd-flt spt-x (meters 0.0) (meters 0.6) 1.0)
(sp-rnd-flt spt-scale-x (meters 0.025) (meters 0.2) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 45.0 45.0 1.0)
(sp-rnd-flt spt-g 45.0 10.0 1.0)
(sp-rnd-flt spt-b 20.0 6.0 1.0)
(sp-flt spt-a 96.0)
(sp-rnd-flt spt-vel-x (meters 0.0016666667) (meters 0.0033333334) 1.0)
(sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.013333334) 1.0)
(sp-rnd-int-flt spt-rotvel-z (degrees -0.3) 1 109.22667)
(sp-flt spt-accel-y -2.7306666)
(sp-int spt-timer 375)
(sp-cpuinfo-flags bit2 bit12)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 801)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 18
(sp-tex spt-texture (new 'static 'texture-id :index #x17 :page #x2))
(sp-flt spt-num 0.5)
(sp-rnd-flt spt-x (meters 0.0) (meters 0.6) 1.0)
(sp-rnd-flt spt-scale-x (meters 0.3) (meters 0.4) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.1) (meters 0.1) 1.0)
(sp-rnd-flt spt-r 10.0 6.0 1.0)
(sp-rnd-flt spt-g 40.0 90.0 1.0)
(sp-rnd-flt spt-b 10.0 6.0 1.0)
(sp-flt spt-a 96.0)
(sp-rnd-flt spt-vel-x (meters 0.0016666667) (meters 0.0033333334) 1.0)
(sp-rnd-flt spt-vel-y (meters 0.01) (meters 0.013333334) 1.0)
(sp-rnd-int-flt spt-rotvel-z (degrees -1.2) 1 436.90668)
(sp-flt spt-accel-y -1.3653333)
(sp-int spt-timer 600)
(sp-cpuinfo-flags bit2 bit12)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(set! (-> *part-id-table* 801) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 18
(sp-tex spt-texture (new 'static 'texture-id :index #x17 :page #x2))
(sp-flt spt-num 0.5)
(sp-rnd-flt spt-x (meters 0.0) (meters 0.6) 1.0)
(sp-rnd-flt spt-scale-x (meters 0.3) (meters 0.4) 1.0)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.1) (meters 0.1) 1.0)
(sp-rnd-flt spt-r 10.0 6.0 1.0)
(sp-rnd-flt spt-g 40.0 90.0 1.0)
(sp-rnd-flt spt-b 10.0 6.0 1.0)
(sp-flt spt-a 96.0)
(sp-rnd-flt spt-vel-x (meters 0.0016666667) (meters 0.0033333334) 1.0)
(sp-rnd-flt spt-vel-y (meters 0.01) (meters 0.013333334) 1.0)
(sp-rnd-int-flt spt-rotvel-z (degrees -1.2) 1 436.90668)
(sp-flt spt-accel-y -1.3653333)
(sp-int spt-timer 600)
(sp-cpuinfo-flags bit2 bit12)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 50]
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 52]
(defbehavior
darkvine-event-handler darkvine
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(defbehavior darkvine-event-handler darkvine ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (cond
((= v1-0 'touch)
(dummy-45 (-> self root-override))
(when (-> self dangerous)
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-1 from) self)
(set! (-> a1-1 num-params) 2)
(set! (-> a1-1 message) 'attack)
(set! (-> a1-1 param 0) (-> arg3 param 0))
(set!
(-> a1-1 param 1)
(the-as uint (new 'static 'attack-info))
)
(if (send-event-function arg0 a1-1)
(dummy-54 (-> self root-override) 2 0)
)
)
)
)
((= v1-0 'attack)
(let ((v1-10 (-> arg3 param 2)))
(cond
((!= v1-10 (-> self player-attack-id))
(set! (-> self player-attack-id) (the-as int v1-10))
(when (-> self vulnerable)
(dummy-45 (-> self root-override))
(go darkvine-retreat)
(the-as object (cond
((= v1-0 'touch)
(dummy-45 (-> self root-override))
(when (-> self dangerous)
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-1 from) self)
(set! (-> a1-1 num-params) 2)
(set! (-> a1-1 message) 'attack)
(set! (-> a1-1 param 0) (-> arg3 param 0))
(set! (-> a1-1 param 1) (the-as uint (new 'static 'attack-info)))
(if (send-event-function arg0 a1-1)
(dummy-54 (-> self root-override) 2 0)
)
)
)
)
((= v1-0 'attack)
(let ((v1-10 (-> arg3 param 2)))
(cond
((!= v1-10 (-> self player-attack-id))
(set! (-> self player-attack-id) (the-as int v1-10))
(when (-> self vulnerable)
(dummy-45 (-> self root-override))
(go darkvine-retreat)
)
)
(else
'push
)
)
)
)
(else
'push
)
)
)
)
)
)
)
)
)
(defstate darkvine-idle (darkvine)
@ -216,99 +195,62 @@
darkvine-event-handler
:code
(behavior ()
(set! (-> self dangerous) #t)
(set! (-> self vulnerable) #t)
(let ((f30-0 0.0))
(while #t
(if
(logtest? (get-reminder (get-task-control (game-task jungle-plant)) 0) 1)
(go darkvine-die #f)
)
(let ((a0-3 (-> self skel root-channel 0)))
(set!
(-> a0-3 frame-group)
(the-as art-joint-anim (-> self draw art-group data 3))
)
(set!
(-> a0-3 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 3))
data
0
length
(set! (-> self dangerous) #t)
(set! (-> self vulnerable) #t)
(let ((f30-0 0.0))
(while #t
(if (logtest? (get-reminder (get-task-control (game-task jungle-plant)) 0) 1)
(go darkvine-die #f)
)
(let ((a0-3 (-> self skel root-channel 0)))
(set! (-> a0-3 frame-group) (the-as art-joint-anim (-> self draw art-group data 3)))
(set! (-> a0-3 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 3)) data 0 length) -1))
)
(set! (-> a0-3 param 1) (-> self speed))
(set! (-> a0-3 frame-num) 0.0)
(joint-control-channel-group! a0-3 (the-as art-joint-anim (-> self draw art-group data 3)) num-func-seek!)
)
-1
)
(until (ja-done? 0)
(if (and (>= (ja-aframe-num 0) 120.0) (>= 180.0 (ja-aframe-num 0)))
(seek-toward-yaw-angle! (-> self root-override) f30-0 32768.0 150)
)
(suspend)
(let ((a0-7 (-> self skel root-channel 0)))
(set! (-> a0-7 param 0) (the float (+ (-> a0-7 frame-group data 0 length) -1)))
(set! (-> a0-7 param 1) (-> self speed))
(joint-control-channel-group-eval! a0-7 (the-as art-joint-anim #f) num-func-seek!)
)
)
(set! f30-0 (if (rand-vu-percent? 0.5)
(+ 16384.0 f30-0)
(+ -16384.0 f30-0)
)
)
)
)
(set! (-> a0-3 param 1) (-> self speed))
(set! (-> a0-3 frame-num) 0.0)
(joint-control-channel-group!
a0-3
(the-as art-joint-anim (-> self draw art-group data 3))
num-func-seek!
)
)
(until (ja-done? 0)
(if (and (>= (ja-aframe-num 0) 120.0) (>= 180.0 (ja-aframe-num 0)))
(seek-toward-yaw-angle! (-> self root-override) f30-0 32768.0 150)
)
(suspend)
(let ((a0-7 (-> self skel root-channel 0)))
(set!
(-> a0-7 param 0)
(the float (+ (-> a0-7 frame-group data 0 length) -1))
)
(set! (-> a0-7 param 1) (-> self speed))
(joint-control-channel-group-eval!
a0-7
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
(set! f30-0 (if (rand-vu-percent? 0.5)
(+ 16384.0 f30-0)
(+ -16384.0 f30-0)
)
)
)
(none)
)
(none)
)
:post
(behavior ()
(when
(and
(-> self hit-player)
(or
(not *target*)
(>=
(- (-> *display* base-frame-counter) (the-as int (-> self touch-time)))
15
)
(when (and
(-> self hit-player)
(or (not *target*) (>= (- (-> *display* base-frame-counter) (the-as int (-> self touch-time))) 15))
)
(dummy-54 (-> self root-override) 2 4)
(set! (-> self hit-player) #f)
)
)
(dummy-54 (-> self root-override) 2 4)
(set! (-> self hit-player) #f)
(transform-post)
(if *target*
(look-at-enemy!
(-> *target* neck)
(vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data (-> self tip-index)))
'nothing
self
)
)
(none)
)
(transform-post)
(if *target*
(look-at-enemy!
(-> *target* neck)
(vector<-cspace!
(new 'stack-no-clear 'vector)
(-> self node-list data (-> self tip-index))
)
'nothing
self
)
)
(none)
)
)
(defstate darkvine-retreat (darkvine)
@ -316,145 +258,88 @@
darkvine-event-handler
:code
(behavior ()
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self dangerous) #f)
(set! (-> self vulnerable) #f)
(logclear! (-> self mask) (process-mask actor-pause))
(ja-channel-push! 1 45)
(let ((a0-2 (-> self skel root-channel 0)))
(set!
(-> a0-2 frame-group)
(the-as art-joint-anim (-> self draw art-group data 4))
)
(set!
(-> a0-2 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 4))
data
0
length
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self dangerous) #f)
(set! (-> self vulnerable) #f)
(logclear! (-> self mask) (process-mask actor-pause))
(ja-channel-push! 1 45)
(let ((a0-2 (-> self skel root-channel 0)))
(set! (-> a0-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 4)))
(set! (-> a0-2 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 4)) data 0 length) -1))
)
(set! (-> a0-2 param 1) 1.0)
(set! (-> a0-2 frame-num) 0.0)
(joint-control-channel-group! a0-2 (the-as art-joint-anim (-> self draw art-group data 4)) num-func-seek!)
)
(until (ja-done? 0)
(sp-launch-particles-var
*sp-particle-system-2d*
(-> *part-id-table* 800)
(-> self root-override trans)
(the-as sparticle-launch-state #f)
(the-as sparticle-launch-control #f)
1.0
)
-1
)
)
)
(set! (-> a0-2 param 1) 1.0)
(set! (-> a0-2 frame-num) 0.0)
(joint-control-channel-group!
a0-2
(the-as art-joint-anim (-> self draw art-group data 4))
num-func-seek!
)
)
(until (ja-done? 0)
(sp-launch-particles-var
*sp-particle-system-2d*
(-> *part-id-table* 800)
(-> self root-override trans)
(the-as sparticle-launch-state #f)
(the-as sparticle-launch-control #f)
1.0
)
(suspend)
(let ((a0-4 (-> self skel root-channel 0)))
(set!
(-> a0-4 param 0)
(the float (+ (-> a0-4 frame-group data 0 length) -1))
)
(set! (-> a0-4 param 1) 1.0)
(joint-control-channel-group-eval!
a0-4
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
(ja-channel-set! 0)
(let ((gp-0 (-> *display* base-frame-counter)))
(until (>= (- (-> *display* base-frame-counter) gp-0) 600)
(suspend)
)
)
(let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000)))
(when gp-1
(let ((t9-7 (method-of-type part-tracker activate)))
(t9-7
(the-as part-tracker gp-1)
*entity-pool*
'part-tracker
(the-as pointer #x70004000)
)
)
(run-now-in-process
gp-1
part-tracker-init
(-> *part-group-id-table* 175)
-1
#f
#f
#f
(-> self root-override trans)
)
(-> gp-1 ppointer)
)
)
(let ((gp-2 (-> *display* base-frame-counter)))
(until (>= (- (-> *display* base-frame-counter) gp-2) 150)
(suspend)
)
)
(set! (-> self dangerous) #t)
(logior! (-> self mask) (process-mask actor-pause))
(ja-channel-set! 1)
(let ((a0-11 (-> self skel root-channel 0)))
(set!
(-> a0-11 frame-group)
(the-as art-joint-anim (-> self draw art-group data 5))
)
(set!
(-> a0-11 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 5))
data
0
length
(suspend)
(let ((a0-4 (-> self skel root-channel 0)))
(set! (-> a0-4 param 0) (the float (+ (-> a0-4 frame-group data 0 length) -1)))
(set! (-> a0-4 param 1) 1.0)
(joint-control-channel-group-eval! a0-4 (the-as art-joint-anim #f) num-func-seek!)
)
-1
)
)
)
(set! (-> a0-11 param 1) 1.0)
(set! (-> a0-11 frame-num) 0.0)
(joint-control-channel-group!
a0-11
(the-as art-joint-anim (-> self draw art-group data 5))
num-func-seek!
)
(ja-channel-set! 0)
(let ((gp-0 (-> *display* base-frame-counter)))
(until (>= (- (-> *display* base-frame-counter) gp-0) 600)
(suspend)
)
)
(let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000)))
(when gp-1
(let ((t9-7 (method-of-type part-tracker activate)))
(t9-7 (the-as part-tracker gp-1) *entity-pool* 'part-tracker (the-as pointer #x70004000))
)
(run-now-in-process
gp-1
part-tracker-init
(-> *part-group-id-table* 175)
-1
#f
#f
#f
(-> self root-override trans)
)
(-> gp-1 ppointer)
)
)
(let ((gp-2 (-> *display* base-frame-counter)))
(until (>= (- (-> *display* base-frame-counter) gp-2) 150)
(suspend)
)
)
(set! (-> self dangerous) #t)
(logior! (-> self mask) (process-mask actor-pause))
(ja-channel-set! 1)
(let ((a0-11 (-> self skel root-channel 0)))
(set! (-> a0-11 frame-group) (the-as art-joint-anim (-> self draw art-group data 5)))
(set! (-> a0-11 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) data 0 length) -1))
)
(set! (-> a0-11 param 1) 1.0)
(set! (-> a0-11 frame-num) 0.0)
(joint-control-channel-group! a0-11 (the-as art-joint-anim (-> self draw art-group data 5)) num-func-seek!)
)
(until (ja-done? 0)
(suspend)
(let ((a0-12 (-> self skel root-channel 0)))
(set! (-> a0-12 param 0) (the float (+ (-> a0-12 frame-group data 0 length) -1)))
(set! (-> a0-12 param 1) 1.0)
(joint-control-channel-group-eval! a0-12 (the-as art-joint-anim #f) num-func-seek!)
)
)
(go darkvine-idle)
(none)
)
(until (ja-done? 0)
(suspend)
(let ((a0-12 (-> self skel root-channel 0)))
(set!
(-> a0-12 param 0)
(the float (+ (-> a0-12 frame-group data 0 length) -1))
)
(set! (-> a0-12 param 1) 1.0)
(joint-control-channel-group-eval!
a0-12
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
(go darkvine-idle)
(none)
)
:post
(-> darkvine-idle post)
)
@ -462,82 +347,81 @@
(defstate darkvine-die (darkvine)
:code
(behavior ((arg0 symbol))
(logclear! (-> self mask) (process-mask actor-pause))
(if arg0
(ja-channel-set! 1)
(ja-channel-push! 1 150)
(logclear! (-> self mask) (process-mask actor-pause))
(if arg0
(ja-channel-set! 1)
(ja-channel-push! 1 150)
)
(clear-collide-with-as (-> self root-override))
(let ((gp-0 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-0
(the-as art-joint-anim (-> self draw art-group data 6))
num-func-identity
)
(set! (-> gp-0 frame-num) 0.0)
)
(while (!= (-> self skel root-channel 0) (-> self skel channel))
(suspend)
)
(logior! (-> self mask) (process-mask sleep))
(anim-loop)
(none)
)
(clear-collide-with-as (-> self root-override))
(let ((gp-0 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-0
(the-as art-joint-anim (-> self draw art-group data 6))
num-func-identity
)
(set! (-> gp-0 frame-num) 0.0)
)
(while (!= (-> self skel root-channel 0) (-> self skel channel))
(suspend)
)
(logior! (-> self mask) (process-mask sleep))
(anim-loop)
(none)
)
:post
(-> darkvine-idle post)
)
(defmethod init-from-entity! darkvine ((obj darkvine) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
(let
((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player))))
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 4) 0)))
(set! (-> s3-0 prim-core collide-as) (the-as uint 256))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 3072))
(set-vector! (-> s3-0 local-sphere) 0.0 8192.0 0.0 16384.0)
(set-root-prim! s4-0 s3-0)
(let ((s2-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2))))
(set! (-> s2-0 prim-core collide-as) (the-as uint 256))
(set! (-> s2-0 collide-with) (the-as uint 16))
(set! (-> s2-0 prim-core action) (the-as uint 3073))
(set! (-> s2-0 prim-core offense) 4)
(set! (-> s2-0 transform-index) 5)
(set-vector! (-> s2-0 local-sphere) 0.0 0.0 0.0 3276.8)
(append-prim s3-0 s2-0)
)
(let ((s2-1 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2))))
(set! (-> s2-1 prim-core collide-as) (the-as uint 256))
(set! (-> s2-1 collide-with) (the-as uint 16))
(set! (-> s2-1 prim-core action) (the-as uint 3073))
(set! (-> s2-1 prim-core offense) 4)
(set! (-> s2-1 transform-index) 6)
(set-vector! (-> s2-1 local-sphere) 0.0 0.0 0.0 2867.2)
(append-prim s3-0 s2-1)
)
(let ((s2-2 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2))))
(set! (-> s2-2 prim-core collide-as) (the-as uint 256))
(set! (-> s2-2 collide-with) (the-as uint 16))
(set! (-> s2-2 prim-core action) (the-as uint 3073))
(set! (-> s2-2 prim-core offense) 4)
(set! (-> s2-2 transform-index) 7)
(set-vector! (-> s2-2 local-sphere) 0.0 0.0 0.0 2457.6)
(append-prim s3-0 s2-2)
)
(let ((s2-3 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2))))
(set! (-> s2-3 prim-core collide-as) (the-as uint 256))
(set! (-> s2-3 collide-with) (the-as uint 16))
(set! (-> s2-3 prim-core action) (the-as uint 3073))
(set! (-> s2-3 prim-core offense) 4)
(set! (-> s2-3 transform-index) 8)
(set-vector! (-> s2-3 local-sphere) 0.0 0.0 0.0 2048.0)
(append-prim s3-0 s2-3)
)
(let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player))))
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 4) 0)))
(set! (-> s3-0 prim-core collide-as) (the-as uint 256))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 3072))
(set-vector! (-> s3-0 local-sphere) 0.0 8192.0 0.0 16384.0)
(set-root-prim! s4-0 s3-0)
(let ((s2-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2))))
(set! (-> s2-0 prim-core collide-as) (the-as uint 256))
(set! (-> s2-0 collide-with) (the-as uint 16))
(set! (-> s2-0 prim-core action) (the-as uint 3073))
(set! (-> s2-0 prim-core offense) 4)
(set! (-> s2-0 transform-index) 5)
(set-vector! (-> s2-0 local-sphere) 0.0 0.0 0.0 3276.8)
(append-prim s3-0 s2-0)
)
(let ((s2-1 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2))))
(set! (-> s2-1 prim-core collide-as) (the-as uint 256))
(set! (-> s2-1 collide-with) (the-as uint 16))
(set! (-> s2-1 prim-core action) (the-as uint 3073))
(set! (-> s2-1 prim-core offense) 4)
(set! (-> s2-1 transform-index) 6)
(set-vector! (-> s2-1 local-sphere) 0.0 0.0 0.0 2867.2)
(append-prim s3-0 s2-1)
)
(let ((s2-2 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2))))
(set! (-> s2-2 prim-core collide-as) (the-as uint 256))
(set! (-> s2-2 collide-with) (the-as uint 16))
(set! (-> s2-2 prim-core action) (the-as uint 3073))
(set! (-> s2-2 prim-core offense) 4)
(set! (-> s2-2 transform-index) 7)
(set-vector! (-> s2-2 local-sphere) 0.0 0.0 0.0 2457.6)
(append-prim s3-0 s2-2)
)
(let ((s2-3 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 2))))
(set! (-> s2-3 prim-core collide-as) (the-as uint 256))
(set! (-> s2-3 collide-with) (the-as uint 16))
(set! (-> s2-3 prim-core action) (the-as uint 3073))
(set! (-> s2-3 prim-core offense) 4)
(set! (-> s2-3 transform-index) 8)
(set-vector! (-> s2-3 local-sphere) 0.0 0.0 0.0 2048.0)
(append-prim s3-0 s2-3)
)
)
(set! (-> s4-0 nav-radius) 2048.0)
(backup-collide-with-as s4-0)
(set! (-> obj root-override) s4-0)
)
(set! (-> s4-0 nav-radius) 2048.0)
(backup-collide-with-as s4-0)
(set! (-> obj root-override) s4-0)
)
(set! (-> obj tip-index) 8)
(process-drawable-from-entity! obj arg0)
(initialize-skeleton obj *darkvine-sg* '())
@ -545,8 +429,8 @@
(set! (-> obj hit-player) #f)
(set! (-> obj speed) (rand-vu-float-range 0.95 1.05))
(if (logtest? (get-reminder (get-task-control (game-task jungle-plant)) 0) 1)
(go darkvine-die #t)
)
(go darkvine-die #t)
)
(go darkvine-idle)
(none)
)

File diff suppressed because it is too large Load Diff

View File

@ -29,17 +29,6 @@
(declare-type maindoor process-drawable)
(declare-type jngpusher process-drawable)
(define-extern towertop-idle (state towertop)) ;; unknown type
(define-extern lurkerm-tall-sail-idle (state lurkerm-tall-sail)) ;; unknown type
(define-extern lurkerm-short-sail-idle (state lurkerm-short-sail)) ;; unknown type
(define-extern lurkerm-piston-idle (state lurkerm-piston)) ;; unknown type
(define-extern accordian-idle (state accordian)) ;; unknown type
(define-extern precurbridge-activate (state precurbridge)) ;; unknown type
(define-extern precurbridge-active (state symbol precurbridge)) ;; unknown type
(define-extern precurbridge-idle (state precurbridge)) ;; unknown type
(define-extern maindoor-open (state symbol maindoor)) ;; unknown type
(define-extern maindoor-closed (state symbol maindoor)) ;; unknown type
(define-extern jngpusher-idle (state jngpusher)) ;; unknown type
;; DECOMP BEGINS
@ -164,6 +153,9 @@
:method-count-assert 20
:size-assert #xb0
:flag-assert #x14004000b0
(:states
towertop-idle
)
)
@ -222,6 +214,9 @@
:method-count-assert 20
:size-assert #xb8
:flag-assert #x14005000b8
(:states
lurkerm-tall-sail-idle
)
)
@ -333,6 +328,9 @@
:method-count-assert 20
:size-assert #xb8
:flag-assert #x14005000b8
(:states
lurkerm-short-sail-idle
)
)
@ -464,6 +462,9 @@
:method-count-assert 20
:size-assert #xe8
:flag-assert #x14008000e8
(:states
lurkerm-piston-idle
)
)
@ -594,6 +595,9 @@
:method-count-assert 20
:size-assert #xb8
:flag-assert #x14005000b8
(:states
accordian-idle
)
)
@ -737,6 +741,11 @@
:method-count-assert 20
:size-assert #x110
:flag-assert #x1400a00110
(:states
precurbridge-activate
(precurbridge-active symbol)
precurbridge-idle
)
)
@ -1165,6 +1174,10 @@
:method-count-assert 20
:size-assert #xc0
:flag-assert #x14005000c0
(:states
(maindoor-closed symbol)
(maindoor-open symbol)
)
)
@ -1364,6 +1377,9 @@
:method-count-assert 20
:size-assert #xbc
:flag-assert #x14005000bc
(:states
jngpusher-idle
)
)

File diff suppressed because it is too large Load Diff

View File

@ -23,6 +23,9 @@
:method-count-assert 20
:size-assert #x100
:flag-assert #x1400900100
(:states
plat-flip-idle
)
)
@ -37,168 +40,102 @@
(defstate plat-flip-idle (plat-flip)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (cond
((= v1-0 'bonk)
(activate! (-> self smush) -1.0 90 300 1.0 1.0)
)
((= v1-0 'touch)
(send-event arg0 'no-look-around 450)
(the-as smush-control #f)
)
)
)
(let ((v1-0 arg2))
(the-as object (cond
((= v1-0 'bonk)
(activate! (-> self smush) -1.0 90 300 1.0 1.0)
)
((= v1-0 'touch)
(send-event arg0 'no-look-around 450)
(the-as smush-control #f)
)
)
)
)
)
)
:trans
(the-as (function none :behavior plat-flip) rider-trans)
:code
(behavior ()
(local-vars (f30-0 float) (f30-1 float))
(let ((gp-0 #f))
(while #t
(let ((f0-1 (get-current-value (-> self sync) (-> self total-time))))
(cond
((< f0-1 (-> self before-turn-down-time))
(let ((gp-1 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-1
(the-as art-joint-anim (-> self draw art-group data 2))
num-func-identity
)
(set! (-> gp-1 frame-num) 0.0)
)
(set! gp-0 #f)
)
((begin
(set! f30-0 (- f0-1 (-> self before-turn-down-time)))
(< f30-0 (-> self turn-down-time))
)
(when (not gp-0)
(set! gp-0 #t)
(sound-play-by-name
(static-sound-name "plat-flip")
(new-sound-id)
1024
0
0
1
#t
)
)
(let ((s5-1 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
s5-1
(the-as art-joint-anim (-> self draw art-group data 2))
num-func-identity
)
(set!
(-> s5-1 frame-num)
(/
(*
f30-0
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 2))
data
0
length
(local-vars (f30-0 float) (f30-1 float))
(let ((gp-0 #f))
(while #t
(let ((f0-1 (get-current-value (-> self sync) (-> self total-time))))
(cond
((< f0-1 (-> self before-turn-down-time))
(let ((gp-1 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-1
(the-as art-joint-anim (-> self draw art-group data 2))
num-func-identity
)
(set! (-> gp-1 frame-num) 0.0)
)
-1
)
(set! gp-0 #f)
)
)
(-> self turn-down-time)
)
)
)
)
((begin
(set! f30-1 (- f30-0 (-> self turn-down-time)))
(< f30-1 (-> self before-turn-up-time))
)
(set! gp-0 #f)
(let ((s5-2 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
s5-2
(the-as art-joint-anim (-> self draw art-group data 2))
num-func-identity
)
(set!
(-> s5-2 frame-num)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 2))
data
0
length
)
-1
)
)
)
)
)
(else
(when (not gp-0)
(set! gp-0 #t)
(sound-play-by-name
(static-sound-name "plat-flip")
(new-sound-id)
1024
0
0
1
#t
)
)
(let ((f30-2 (- f30-1 (-> self before-turn-up-time)))
(s5-4 (-> self skel root-channel 0))
)
(joint-control-channel-group-eval!
s5-4
(the-as art-joint-anim (-> self draw art-group data 3))
num-func-identity
)
(set!
(-> s5-4 frame-num)
(/
(*
f30-2
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 3))
data
0
length
((begin (set! f30-0 (- f0-1 (-> self before-turn-down-time))) (< f30-0 (-> self turn-down-time)))
(when (not gp-0)
(set! gp-0 #t)
(sound-play-by-name (static-sound-name "plat-flip") (new-sound-id) 1024 0 0 1 #t)
)
(let ((s5-1 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
s5-1
(the-as art-joint-anim (-> self draw art-group data 2))
num-func-identity
)
(set! (-> s5-1 frame-num)
(/ (* f30-0 (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) data 0 length) -1)))
(-> self turn-down-time)
)
)
)
-1
)
)
((begin (set! f30-1 (- f30-0 (-> self turn-down-time))) (< f30-1 (-> self before-turn-up-time)))
(set! gp-0 #f)
(let ((s5-2 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
s5-2
(the-as art-joint-anim (-> self draw art-group data 2))
num-func-identity
)
(set! (-> s5-2 frame-num)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) data 0 length) -1))
)
)
)
(else
(when (not gp-0)
(set! gp-0 #t)
(sound-play-by-name (static-sound-name "plat-flip") (new-sound-id) 1024 0 0 1 #t)
)
(let ((f30-2 (- f30-1 (-> self before-turn-up-time)))
(s5-4 (-> self skel root-channel 0))
)
(joint-control-channel-group-eval!
s5-4
(the-as art-joint-anim (-> self draw art-group data 3))
num-func-identity
)
(set! (-> s5-4 frame-num)
(/ (* f30-2 (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 3)) data 0 length) -1)))
(-> self turn-up-time)
)
)
)
)
)
(-> self turn-up-time)
)
)
)
(let ((s5-5 (new 'stack-no-clear 'vector)))
(set! (-> s5-5 quad) (-> self base-pos quad))
(+! (-> s5-5 y) (* 1638.4 (update! (-> self smush))))
(TODO-RENAME-30 (-> self root-override) s5-5)
)
(suspend)
)
)
)
(let ((s5-5 (new 'stack-no-clear 'vector)))
(set! (-> s5-5 quad) (-> self base-pos quad))
(+! (-> s5-5 y) (* 1638.4 (update! (-> self smush))))
(TODO-RENAME-30 (-> self root-override) s5-5)
)
(suspend)
)
(none)
)
(none)
)
:post
(the-as (function none :behavior plat-flip) rider-post)
)
@ -206,103 +143,75 @@
(defmethod init-from-entity! plat-flip ((obj plat-flip) (arg0 entity-actor))
(local-vars (sv-16 res-tag) (sv-32 res-tag) (sv-48 res-tag))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(let
((s4-0
(new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))
)
)
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set!
(-> s4-0 no-reaction)
(the-as
(function collide-shape-moving collide-shape-intersect vector vector none)
nothing
)
)
(dummy-29 s4-0 1)
(let
((s3-0
(new
'process
'collide-shape-prim-mesh
s4-0
(the-as uint 0)
(the-as uint 0)
)
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set! (-> s4-0 no-reaction)
(the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing)
)
(dummy-29 s4-0 1)
(let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 3))
(set! (-> s3-0 prim-core offense) 4)
(set! (-> s3-0 transform-index) 3)
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 11468.8)
(set-root-prim! s4-0 s3-0)
)
)
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 3))
(set! (-> s3-0 prim-core offense) 4)
(set! (-> s3-0 transform-index) 3)
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 11468.8)
(set-root-prim! s4-0 s3-0)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(backup-collide-with-as s4-0)
(set! (-> obj root-override) s4-0)
)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(backup-collide-with-as s4-0)
(set! (-> obj root-override) s4-0)
)
(process-drawable-from-entity! obj arg0)
(set! (-> obj base-pos quad) (-> obj root-override trans quad))
(initialize-skeleton obj *plat-flip-sg* '())
(logior! (-> obj skel status) 1)
(let ((f30-0 300.0))
(set! sv-16 (new 'static 'res-tag))
(let ((v1-28 (res-lump-data arg0 'delay pointer :tag-ptr (& sv-16))))
(set!
(-> obj before-turn-down-time)
(* f30-0 (if (and v1-28 (> (the-as int (-> sv-16 elt-count)) 0))
(-> (the-as (pointer float) v1-28))
2.0
)
(set! sv-16 (new 'static 'res-tag))
(let ((v1-28 (res-lump-data arg0 'delay pointer :tag-ptr (& sv-16))))
(set! (-> obj before-turn-down-time) (* f30-0 (if (and v1-28 (> (the-as int (-> sv-16 elt-count)) 0))
(-> (the-as (pointer float) v1-28))
2.0
)
)
)
)
)
)
)
(let ((f30-1 300.0))
(set! sv-32 (new 'static 'res-tag))
(let ((v1-31 (res-lump-data arg0 'delay pointer :tag-ptr (& sv-32))))
(set!
(-> obj before-turn-up-time)
(* f30-1 (if (and v1-31 (< 1 (the-as int (-> sv-32 elt-count))))
(-> (the-as (pointer float) v1-31) 1)
0.2
)
(set! sv-32 (new 'static 'res-tag))
(let ((v1-31 (res-lump-data arg0 'delay pointer :tag-ptr (& sv-32))))
(set! (-> obj before-turn-up-time) (* f30-1 (if (and v1-31 (< 1 (the-as int (-> sv-32 elt-count))))
(-> (the-as (pointer float) v1-31) 1)
0.2
)
)
)
)
)
)
)
(set! (-> obj turn-down-time) 300.0)
(set! (-> obj turn-up-time) 300.0)
(set!
(-> obj total-time)
(+
(-> obj before-turn-down-time)
(-> obj turn-down-time)
(-> obj before-turn-up-time)
(-> obj turn-up-time)
)
)
(set! (-> obj total-time)
(+ (-> obj before-turn-down-time) (-> obj turn-down-time) (-> obj before-turn-up-time) (-> obj turn-up-time))
)
(let ((s4-1 (-> obj sync))
(s3-1 (method-of-type sync-info setup-params!))
(s2-0 (the int (-> obj total-time)))
)
(set! sv-48 (new 'static 'res-tag))
(let ((v1-35 (res-lump-data arg0 'sync-percent pointer :tag-ptr (& sv-48))))
(s3-1
s4-1
(the-as uint s2-0)
(if (and v1-35 (> (the-as int (-> sv-48 elt-count)) 0))
(-> (the-as (pointer float) v1-35) 0)
0.0
(set! sv-48 (new 'static 'res-tag))
(let ((v1-35 (res-lump-data arg0 'sync-percent pointer :tag-ptr (& sv-48))))
(s3-1
s4-1
(the-as uint s2-0)
(if (and v1-35 (> (the-as int (-> sv-48 elt-count)) 0))
(-> (the-as (pointer float) v1-35) 0)
0.0
)
0.15
0.15
)
)
0.15
0.15
)
)
)
(dummy-47 (-> obj root-override))
(go plat-flip-idle)
(none)

View File

@ -13,6 +13,9 @@
:method-count-assert 20
:size-assert #xb0
:flag-assert #x14004000b0
(:states
lavabase-idle
)
)
@ -83,6 +86,9 @@
:method-count-assert 20
:size-assert #xb0
:flag-assert #x14004000b0
(:states
lavafall-idle
)
)
@ -153,6 +159,9 @@
:method-count-assert 20
:size-assert #xb0
:flag-assert #x14004000b0
(:states
lavashortcut-idle
)
)
@ -508,6 +517,10 @@
:method-count-assert 20
:size-assert #x1b0
:flag-assert #x14014001b0
(:states
darkecobarrel-mover-die
darkecobarrel-mover-move
)
)
@ -520,6 +533,9 @@
:method-count-assert 20
:size-assert #xc8
:flag-assert #x14006000c8
(:states
darkecobarrel-spawner
)
)
@ -987,6 +1003,9 @@
:method-count-assert 20
:size-assert #xb0
:flag-assert #x14004000b0
(:states
lavafallsewera-idle
)
)
@ -1057,6 +1076,9 @@
:method-count-assert 20
:size-assert #xb0
:flag-assert #x14004000b0
(:states
lavafallsewerb-idle
)
)
@ -1739,6 +1761,9 @@
:method-count-assert 20
:size-assert #xb0
:flag-assert #x14004000b0
(:states
lavayellowtarp-idle
)
)

View File

@ -10,10 +10,6 @@
(declare-type dark-crystal process-drawable)
(define-extern dark-crystal-spawn-fuel-cell (state dark-crystal)) ;; unknown type
(define-extern dark-crystal-idle (state dark-crystal)) ;; unknown type
(define-extern dark-crystal-explode (state dark-crystal)) ;; unknown type
(define-extern dark-crystal-activate (state dark-crystal)) ;; unknown type
;; DECOMP BEGINS
@ -35,6 +31,12 @@
(dummy-20 (_type_) none 20)
(dummy-21 (_type_) symbol 21)
)
(:states
dark-crystal-activate
dark-crystal-explode
dark-crystal-idle
dark-crystal-spawn-fuel-cell
)
)
@ -581,7 +583,7 @@
(suspend)
(ja-channel-set! 0)
(ja-post)
(logior! (-> self draw status) 2)
(logior! (-> self draw status) (draw-status drwf01))
(dummy-20 self)
(if (-> self underwater?)
(sound-play-by-name (static-sound-name "water-explosion") (new-sound-id) 1024 0 0 1 #t)
@ -644,7 +646,7 @@
)
(ja-channel-set! 0)
(ja-post)
(logior! (-> self draw status) 2)
(logior! (-> self draw status) (draw-status drwf01))
(if (not (task-complete? *game-info* (-> self entity extra perm task)))
(birth-pickup-at-point
(-> self root-override trans)

File diff suppressed because it is too large Load Diff

View File

@ -10,14 +10,6 @@
(declare-type gnawer process-drawable)
(define-extern gnawer-put-items-at-dest (state gnawer)) ;; unknown type
(define-extern gnawer-chewing-on-post (state gnawer)) ;; unknown type
(define-extern gnawer-give-fuel-cell (state gnawer)) ;; unknown type
(define-extern gnawer-dying-give-pickups (state gnawer)) ;; unknown type
(define-extern gnawer-wait-to-run (state gnawer)) ;; unknown type
(define-extern gnawer-die (state gnawer)) ;; unknown type
(define-extern gnawer-run (state gnawer)) ;; unknown type
(define-extern gnawer-retreat-into-post (state gnawer)) ;; unknown type
(define-extern gnawer-joint-callback (function gnawer none))
@ -116,6 +108,16 @@
(dummy-29 (_type_ int vector vector) float 29)
(dummy-30 (_type_ process-drawable) uint 30)
)
(:states
gnawer-chewing-on-post
gnawer-die
gnawer-dying-give-pickups
gnawer-give-fuel-cell
gnawer-put-items-at-dest
gnawer-retreat-into-post
gnawer-run
gnawer-wait-to-run
)
)

View File

@ -10,12 +10,6 @@
(declare-type mother-spider-egg process-drawable)
(define-extern mother-spider-egg-falling (state mother-spider-egg)) ;; unknown type
(define-extern mother-spider-egg-die-exit (state mother-spider-egg)) ;; unknown type
(define-extern mother-spider-egg-hatch (state mother-spider-egg)) ;; unknown type
(define-extern mother-spider-egg-die (state mother-spider-egg)) ;; unknown type
(define-extern mother-spider-egg-on-ground (state mother-spider-egg)) ;; unknown type
(define-extern mother-spider-egg-die-while-falling (state mother-spider-egg)) ;; unknown type
;; DECOMP BEGINS

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -6,9 +6,6 @@
;; dgos: L1, MIS
(declare-type teetertotter process-drawable)
(define-extern teetertotter-idle (state teetertotter))
(define-extern teetertotter-launch (state teetertotter))
(define-extern teetertotter-bend (state teetertotter))
;; DECOMP BEGINS
@ -21,6 +18,11 @@
:method-count-assert 20
:size-assert #xbc
:flag-assert #x14005000bc
(:states
teetertotter-bend
teetertotter-idle
teetertotter-launch
)
)
@ -33,74 +35,57 @@
)
(defun target-on-end-of-teetertotter? ((arg0 teetertotter))
(let
((gp-1
(vector-!
(new-stack-vector0)
(-> *target* control trans)
(-> arg0 root trans)
)
)
(let ((gp-1 (vector-! (new-stack-vector0) (-> *target* control trans) (-> arg0 root trans))))
(if (< (vector-dot (vector-x-quaternion! (new-stack-vector0) (-> arg0 root quat)) gp-1) -8192.0)
#t
)
)
(if
(<
(vector-dot
(vector-x-quaternion! (new-stack-vector0) (-> arg0 root quat))
gp-1
)
-8192.0
)
#t
)
)
)
(defstate teetertotter-idle (teetertotter)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('attack)
(case (-> arg3 param 1)
(('flop)
(when (target-on-end-of-teetertotter? self)
(set! (-> self in-launch-window) #f)
(increment-success-for-hint
(game-text-id misty-teetertotter-bonk-dax-tutorial)
)
(go teetertotter-launch)
(case arg2
(('attack)
(case (-> arg3 param 1)
(('flop)
(when (target-on-end-of-teetertotter? self)
(set! (-> self in-launch-window) #f)
(increment-success-for-hint (game-text-id misty-teetertotter-bonk-dax-tutorial))
(go teetertotter-launch)
)
)
)
)
)
(('bonk)
(when (target-on-end-of-teetertotter? self)
(level-hint-spawn
(game-text-id misty-teetertotter-bonk-dax-tutorial)
"sksp0070"
(the-as entity #f)
*entity-pool*
(game-task none)
(('bonk)
(when (target-on-end-of-teetertotter? self)
(level-hint-spawn
(game-text-id misty-teetertotter-bonk-dax-tutorial)
"sksp0070"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(go teetertotter-bend)
)
)
(go teetertotter-bend)
)
)
)
)
:code
(behavior ()
(let ((gp-0 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-0
(the-as art-joint-anim (-> self draw art-group data 4))
num-func-identity
)
(set! (-> gp-0 frame-num) 0.0)
(let ((gp-0 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-0
(the-as art-joint-anim (-> self draw art-group data 4))
num-func-identity
)
(set! (-> gp-0 frame-num) 0.0)
)
(while #t
(suspend)
)
(none)
)
(while #t
(suspend)
)
(none)
)
:post
(the-as (function none :behavior teetertotter) transform-post)
)
@ -108,117 +93,89 @@
(defstate teetertotter-launch (teetertotter)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(the-as object (when (= arg2 'touch)
(when
(and
((method-of-type touching-shapes-entry prims-touching?)
(the-as touching-shapes-entry (-> arg3 param 0))
(the-as collide-shape-moving (-> self root))
(the-as uint 1)
)
(-> self rock-is-dangerous)
)
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-2 from) self)
(set! (-> a1-2 num-params) 2)
(set! (-> a1-2 message) 'attack)
(set! (-> a1-2 param 0) (-> arg3 param 0))
(let ((a0-2 (new 'static 'attack-info :mask #x20)))
(set! (-> a0-2 mode) 'deadly)
(set! (-> a1-2 param 1) (the-as uint a0-2))
)
(send-event-function arg0 a1-2)
)
)
(when
(and
((method-of-type touching-shapes-entry prims-touching?)
(the-as touching-shapes-entry (-> arg3 param 0))
(the-as collide-shape-moving (-> self root))
(the-as uint 2)
)
(target-on-end-of-teetertotter? self)
(not (-> self launched-player))
(-> self in-launch-window)
)
(let ((a1-4 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-4 from) self)
(set! (-> a1-4 num-params) 2)
(set! (-> a1-4 message) 'shove)
(set! (-> a1-4 param 0) (the-as uint #f))
(let ((v1-16 (new 'static 'attack-info :mask #xcc0)))
(set! (-> v1-16 shove-back) 0.0)
(set! (-> v1-16 shove-up) 53248.0)
(set! (-> v1-16 angle) 'jump)
(set! (-> v1-16 control) 1.0)
(set! (-> a1-4 param 1) (the-as uint v1-16))
)
(when (send-event-function arg0 a1-4)
(let ((v0-0 #t))
(set! (-> self launched-player) v0-0)
v0-0
(the-as object (when (= arg2 'touch)
(when (and
((method-of-type touching-shapes-entry prims-touching?)
(the-as touching-shapes-entry (-> arg3 param 0))
(the-as collide-shape-moving (-> self root))
(the-as uint 1)
)
(-> self rock-is-dangerous)
)
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-2 from) self)
(set! (-> a1-2 num-params) 2)
(set! (-> a1-2 message) 'attack)
(set! (-> a1-2 param 0) (-> arg3 param 0))
(let ((a0-2 (new 'static 'attack-info :mask #x20)))
(set! (-> a0-2 mode) 'deadly)
(set! (-> a1-2 param 1) (the-as uint a0-2))
)
(send-event-function arg0 a1-2)
)
)
(when (and
((method-of-type touching-shapes-entry prims-touching?)
(the-as touching-shapes-entry (-> arg3 param 0))
(the-as collide-shape-moving (-> self root))
(the-as uint 2)
)
(target-on-end-of-teetertotter? self)
(not (-> self launched-player))
(-> self in-launch-window)
)
(let ((a1-4 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-4 from) self)
(set! (-> a1-4 num-params) 2)
(set! (-> a1-4 message) 'shove)
(set! (-> a1-4 param 0) (the-as uint #f))
(let ((v1-16 (new 'static 'attack-info :mask #xcc0)))
(set! (-> v1-16 shove-back) 0.0)
(set! (-> v1-16 shove-up) 53248.0)
(set! (-> v1-16 angle) 'jump)
(set! (-> v1-16 control) 1.0)
(set! (-> a1-4 param 1) (the-as uint v1-16))
)
(when (send-event-function arg0 a1-4)
(let ((v0-0 #t))
(set! (-> self launched-player) v0-0)
v0-0
)
)
)
)
)
)
)
)
)
)
)
:code
(behavior ()
(set! (-> self launched-player) #f)
(let ((a0-0 (-> self skel root-channel 0)))
(set!
(-> a0-0 frame-group)
(the-as art-joint-anim (-> self draw art-group data 4))
)
(set!
(-> a0-0 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 4))
data
0
length
(set! (-> self launched-player) #f)
(let ((a0-0 (-> self skel root-channel 0)))
(set! (-> a0-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 4)))
(set! (-> a0-0 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 4)) data 0 length) -1))
)
(set! (-> a0-0 param 1) 1.0)
(set! (-> a0-0 frame-num) 0.0)
(joint-control-channel-group! a0-0 (the-as art-joint-anim (-> self draw art-group data 4)) num-func-seek!)
)
(until (ja-done? 0)
(let ((f0-4 (ja-aframe-num 0)))
(set! (-> self in-launch-window) (and (>= f0-4 76.0) (>= 82.0 f0-4)))
(let ((v1-16 (>= f0-4 12.0)))
(set! (-> self rock-is-dangerous) (and v1-16 (>= 76.0 f0-4)))
)
)
(suspend)
(let ((a0-2 (-> self skel root-channel 0)))
(set! (-> a0-2 param 0) (the float (+ (-> a0-2 frame-group data 0 length) -1)))
(set! (-> a0-2 param 1) 1.0)
(joint-control-channel-group-eval! a0-2 (the-as art-joint-anim #f) num-func-seek!)
)
-1
)
)
)
(set! (-> a0-0 param 1) 1.0)
(set! (-> a0-0 frame-num) 0.0)
(joint-control-channel-group!
a0-0
(the-as art-joint-anim (-> self draw art-group data 4))
num-func-seek!
)
(go teetertotter-idle)
(none)
)
(until (ja-done? 0)
(let ((f0-4 (ja-aframe-num 0)))
(set! (-> self in-launch-window) (and (>= f0-4 76.0) (>= 82.0 f0-4)))
(let ((v1-16 (>= f0-4 12.0)))
(set! (-> self rock-is-dangerous) (and v1-16 (>= 76.0 f0-4)))
)
)
(suspend)
(let ((a0-2 (-> self skel root-channel 0)))
(set!
(-> a0-2 param 0)
(the float (+ (-> a0-2 frame-group data 0 length) -1))
)
(set! (-> a0-2 param 1) 1.0)
(joint-control-channel-group-eval!
a0-2
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
(go teetertotter-idle)
(none)
)
:post
(the-as (function none :behavior teetertotter) rider-post)
)
@ -226,171 +183,94 @@
(defstate teetertotter-bend (teetertotter)
:code
(behavior ()
(let ((a0-0 (-> self skel root-channel 0)))
(set!
(-> a0-0 frame-group)
(the-as art-joint-anim (-> self draw art-group data 5))
)
(set!
(-> a0-0 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 5))
data
0
length
(let ((a0-0 (-> self skel root-channel 0)))
(set! (-> a0-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 5)))
(set! (-> a0-0 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) data 0 length) -1))
)
(set! (-> a0-0 param 1) 1.0)
(set! (-> a0-0 frame-num) 0.0)
(joint-control-channel-group! a0-0 (the-as art-joint-anim (-> self draw art-group data 5)) num-func-seek!)
)
(until (ja-done? 0)
(suspend)
(let ((a0-1 (-> self skel root-channel 0)))
(set! (-> a0-1 param 0) (the float (+ (-> a0-1 frame-group data 0 length) -1)))
(set! (-> a0-1 param 1) 1.0)
(joint-control-channel-group-eval! a0-1 (the-as art-joint-anim #f) num-func-seek!)
)
-1
)
)
)
(set! (-> a0-0 param 1) 1.0)
(set! (-> a0-0 frame-num) 0.0)
(joint-control-channel-group!
a0-0
(the-as art-joint-anim (-> self draw art-group data 5))
num-func-seek!
)
(go teetertotter-idle)
(none)
)
(until (ja-done? 0)
(suspend)
(let ((a0-1 (-> self skel root-channel 0)))
(set!
(-> a0-1 param 0)
(the float (+ (-> a0-1 frame-group data 0 length) -1))
)
(set! (-> a0-1 param 1) 1.0)
(joint-control-channel-group-eval!
a0-1
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
(go teetertotter-idle)
(none)
)
:post
(the-as (function none :behavior teetertotter) rider-post)
)
(defmethod
init-from-entity!
teetertotter
((obj teetertotter) (arg0 entity-actor))
(let
((s4-0
(new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))
)
(defmethod init-from-entity! teetertotter ((obj teetertotter) (arg0 entity-actor))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set! (-> s4-0 no-reaction)
(the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing)
)
(dummy-29 s4-0 1)
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 5) 0)))
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 1))
(set-vector! (-> s3-0 local-sphere) 0.0 12288.0 0.0 36864.0)
(set-root-prim! s4-0 s3-0)
(let ((s2-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 1))))
(set! (-> s2-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s2-0 collide-with) (the-as uint 16))
(set! (-> s2-0 prim-core action) (the-as uint 1))
(set! (-> s2-0 prim-core offense) 4)
(set! (-> s2-0 transform-index) 5)
(set-vector! (-> s2-0 local-sphere) -4096.0 2048.0 0.0 5120.0)
(append-prim s3-0 s2-0)
)
(let ((s2-1 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 2))))
(set! (-> s2-1 prim-core collide-as) (the-as uint 2048))
(set! (-> s2-1 collide-with) (the-as uint 16))
(set! (-> s2-1 prim-core action) (the-as uint 3))
(set! (-> s2-1 prim-core offense) 4)
(set! (-> s2-1 transform-index) 7)
(set-vector! (-> s2-1 local-sphere) 0.0 0.0 0.0 32768.0)
(append-prim s3-0 s2-1)
)
(let ((s2-2 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 1) (the-as uint 0))))
(set! (-> s2-2 prim-core collide-as) (the-as uint 2048))
(set! (-> s2-2 collide-with) (the-as uint 16))
(set! (-> s2-2 prim-core action) (the-as uint 1))
(set! (-> s2-2 prim-core offense) 4)
(set! (-> s2-2 transform-index) 4)
(set-vector! (-> s2-2 local-sphere) 0.0 0.0 0.0 32768.0)
(append-prim s3-0 s2-2)
)
(let ((s2-3 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 2) (the-as uint 0))))
(set! (-> s2-3 prim-core collide-as) (the-as uint 2048))
(set! (-> s2-3 collide-with) (the-as uint 16))
(set! (-> s2-3 prim-core action) (the-as uint 1))
(set! (-> s2-3 prim-core offense) 4)
(set! (-> s2-3 transform-index) 3)
(set-vector! (-> s2-3 local-sphere) 0.0 0.0 0.0 32768.0)
(append-prim s3-0 s2-3)
)
(let ((s2-4 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 3) (the-as uint 2))))
(set! (-> s2-4 prim-core collide-as) (the-as uint 2048))
(set! (-> s2-4 collide-with) (the-as uint 16))
(set! (-> s2-4 prim-core action) (the-as uint 3))
(set! (-> s2-4 prim-core offense) 4)
(set! (-> s2-4 transform-index) 3)
(set-vector! (-> s2-4 local-sphere) 0.0 0.0 0.0 32768.0)
(append-prim s3-0 s2-4)
)
)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(backup-collide-with-as s4-0)
(set! (-> obj root) s4-0)
)
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set!
(-> s4-0 no-reaction)
(the-as
(function collide-shape-moving collide-shape-intersect vector vector none)
nothing
)
)
(dummy-29 s4-0 1)
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 5) 0)))
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 1))
(set-vector! (-> s3-0 local-sphere) 0.0 12288.0 0.0 36864.0)
(set-root-prim! s4-0 s3-0)
(let ((s2-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 1))))
(set! (-> s2-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s2-0 collide-with) (the-as uint 16))
(set! (-> s2-0 prim-core action) (the-as uint 1))
(set! (-> s2-0 prim-core offense) 4)
(set! (-> s2-0 transform-index) 5)
(set-vector! (-> s2-0 local-sphere) -4096.0 2048.0 0.0 5120.0)
(append-prim s3-0 s2-0)
)
(let
((s2-1
(new
'process
'collide-shape-prim-mesh
s4-0
(the-as uint 0)
(the-as uint 2)
)
)
)
(set! (-> s2-1 prim-core collide-as) (the-as uint 2048))
(set! (-> s2-1 collide-with) (the-as uint 16))
(set! (-> s2-1 prim-core action) (the-as uint 3))
(set! (-> s2-1 prim-core offense) 4)
(set! (-> s2-1 transform-index) 7)
(set-vector! (-> s2-1 local-sphere) 0.0 0.0 0.0 32768.0)
(append-prim s3-0 s2-1)
)
(let
((s2-2
(new
'process
'collide-shape-prim-mesh
s4-0
(the-as uint 1)
(the-as uint 0)
)
)
)
(set! (-> s2-2 prim-core collide-as) (the-as uint 2048))
(set! (-> s2-2 collide-with) (the-as uint 16))
(set! (-> s2-2 prim-core action) (the-as uint 1))
(set! (-> s2-2 prim-core offense) 4)
(set! (-> s2-2 transform-index) 4)
(set-vector! (-> s2-2 local-sphere) 0.0 0.0 0.0 32768.0)
(append-prim s3-0 s2-2)
)
(let
((s2-3
(new
'process
'collide-shape-prim-mesh
s4-0
(the-as uint 2)
(the-as uint 0)
)
)
)
(set! (-> s2-3 prim-core collide-as) (the-as uint 2048))
(set! (-> s2-3 collide-with) (the-as uint 16))
(set! (-> s2-3 prim-core action) (the-as uint 1))
(set! (-> s2-3 prim-core offense) 4)
(set! (-> s2-3 transform-index) 3)
(set-vector! (-> s2-3 local-sphere) 0.0 0.0 0.0 32768.0)
(append-prim s3-0 s2-3)
)
(let
((s2-4
(new
'process
'collide-shape-prim-mesh
s4-0
(the-as uint 3)
(the-as uint 2)
)
)
)
(set! (-> s2-4 prim-core collide-as) (the-as uint 2048))
(set! (-> s2-4 collide-with) (the-as uint 16))
(set! (-> s2-4 prim-core action) (the-as uint 3))
(set! (-> s2-4 prim-core offense) 4)
(set! (-> s2-4 transform-index) 3)
(set-vector! (-> s2-4 local-sphere) 0.0 0.0 0.0 32768.0)
(append-prim s3-0 s2-4)
)
)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(backup-collide-with-as s4-0)
(set! (-> obj root) s4-0)
)
(process-drawable-from-entity! obj arg0)
(initialize-skeleton obj *teetertotter-sg* '())
(set! (-> obj launched-player) #f)

View File

@ -6,9 +6,6 @@
;; dgos: L1, MIS
(declare-type silostep process-drawable)
(define-extern silostep-rise (state symbol silostep))
(define-extern silostep-idle (state silostep))
(define-extern silostep-camera (state silostep))
;; DECOMP BEGINS
@ -20,6 +17,11 @@
:method-count-assert 20
:size-assert #xc0
:flag-assert #x14005000c0
(:states
silostep-camera
silostep-idle
(silostep-rise symbol)
)
)
@ -33,32 +35,31 @@
(defstate silostep-idle (silostep)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('trigger)
(go silostep-camera)
)
(('trigger-rise)
(go silostep-rise #f)
)
)
)
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (case arg2
(('trigger)
(go silostep-camera)
)
(('trigger-rise)
(go silostep-rise #f)
)
)
)
:code
(behavior ()
(let ((gp-0 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-0
(the-as art-joint-anim (-> self draw art-group data 2))
num-func-identity
)
(set! (-> gp-0 frame-num) 0.0)
(let ((gp-0 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-0
(the-as art-joint-anim (-> self draw art-group data 2))
num-func-identity
)
(set! (-> gp-0 frame-num) 0.0)
)
(transform-post)
(while #t
(suspend)
)
(none)
)
(transform-post)
(while #t
(suspend)
)
(none)
)
:post
(the-as (function none :behavior silostep) ja-post)
)
@ -66,81 +67,60 @@
(defbehavior misty-camera-view silostep ()
(let* ((gp-0 (get-process *default-dead-pool* camera-tracker #x4000))
(v1-1 (when gp-0
(let ((t9-1 (method-of-type camera-tracker activate)))
(t9-1
(the-as camera-tracker gp-0)
self
'camera-tracker
(the-as pointer #x70004000)
)
(let ((t9-1 (method-of-type camera-tracker activate)))
(t9-1 (the-as camera-tracker gp-0) self 'camera-tracker (the-as pointer #x70004000))
)
(run-now-in-process
gp-0
camera-tracker-init
(lambda :behavior camera-tracker
()
(while (not (process-grab? *target*))
(suspend)
)
(camera-change-to "camera-160" 150 #f)
(let ((gp-0 (-> *display* base-frame-counter)))
(until (>= (- (-> *display* base-frame-counter) gp-0) 900)
(suspend)
)
)
(while (not (process-release? (handle->process (-> self grab-target))))
(suspend)
)
(camera-change-to (the-as string 'base) 150 #f)
(none)
)
)
(-> gp-0 ppointer)
)
(run-now-in-process
gp-0
camera-tracker-init
(lambda :behavior camera-tracker
()
(while (not (process-grab? *target*))
(suspend)
)
(camera-change-to "camera-160" 150 #f)
(let ((gp-0 (-> *display* base-frame-counter)))
(until (>= (- (-> *display* base-frame-counter) gp-0) 900)
(suspend)
)
)
(while
(not
(process-release? (handle->process (-> self grab-target)))
)
(suspend)
)
(camera-change-to (the-as string 'base) 150 #f)
(none)
)
)
(-> gp-0 ppointer)
)
)
(v0-3
(logior
(new 'static 'handle :pid (-> v1-1 0 pid))
(new 'static 'handle :process v1-1)
)
)
)
(v0-3 (logior (new 'static 'handle :pid (-> v1-1 0 pid)) (new 'static 'handle :process v1-1)))
)
(set! (-> self cam-tracker) (the-as uint v0-3))
(the-as handle v0-3)
)
(set! (-> self cam-tracker) (the-as uint v0-3))
(the-as handle v0-3)
)
)
(defstate silostep-camera (silostep)
:code
(behavior ()
(misty-camera-view)
(let* ((gp-0 (get-task-control (game-task misty-warehouse)))
(v1-1 (get-reminder gp-0 0))
)
(save-reminder gp-0 (logior v1-1 2) 0)
(misty-camera-view)
(let* ((gp-0 (get-task-control (game-task misty-warehouse)))
(v1-1 (get-reminder gp-0 0))
)
(save-reminder gp-0 (logior v1-1 2) 0)
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(let ((gp-1 (-> *display* base-frame-counter)))
(until (>= (- (-> *display* base-frame-counter) gp-1) 300)
(suspend)
)
)
(sound-play-by-name (static-sound-name "arena-steps") (new-sound-id) 1024 0 0 1 #t)
(send-to-all-after (-> self link) 'trigger-rise)
(go silostep-rise #f)
(none)
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(let ((gp-1 (-> *display* base-frame-counter)))
(until (>= (- (-> *display* base-frame-counter) gp-1) 300)
(suspend)
)
)
(sound-play-by-name
(static-sound-name "arena-steps")
(new-sound-id)
1024
0
0
1
#t
)
(send-to-all-after (-> self link) 'trigger-rise)
(go silostep-rise #f)
(none)
)
:post
(the-as (function none :behavior silostep) ja-post)
)
@ -148,120 +128,79 @@
(defstate silostep-rise (silostep)
:code
(behavior ((arg0 symbol))
(process-entity-status! self (entity-perm-status complete) #t)
(when (not arg0)
(let ((a0-2 (-> self skel root-channel 0)))
(set!
(-> a0-2 frame-group)
(the-as art-joint-anim (-> self draw art-group data 2))
(process-entity-status! self (entity-perm-status complete) #t)
(when (not arg0)
(let ((a0-2 (-> self skel root-channel 0)))
(set! (-> a0-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 2)))
(set! (-> a0-2 param 0) (-> self anim-limit))
(set! (-> a0-2 param 1) 1.0)
(set! (-> a0-2 frame-num) 0.0)
(joint-control-channel-group! a0-2 (the-as art-joint-anim (-> self draw art-group data 2)) num-func-seek!)
)
(until (ja-done? 0)
(rider-trans)
(rider-post)
(suspend)
(let ((a0-3 (-> self skel root-channel 0)))
(set! (-> a0-3 param 0) (-> self anim-limit))
(set! (-> a0-3 param 1) 1.0)
(joint-control-channel-group-eval! a0-3 (the-as art-joint-anim #f) num-func-seek!)
)
)
)
(set! (-> a0-2 param 0) (-> self anim-limit))
(set! (-> a0-2 param 1) 1.0)
(set! (-> a0-2 frame-num) 0.0)
(joint-control-channel-group!
a0-2
(the-as art-joint-anim (-> self draw art-group data 2))
num-func-seek!
)
)
(until (ja-done? 0)
(rider-trans)
(rider-post)
(suspend)
(let ((a0-3 (-> self skel root-channel 0)))
(set! (-> a0-3 param 0) (-> self anim-limit))
(set! (-> a0-3 param 1) 1.0)
(let ((gp-1 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
a0-3
(the-as art-joint-anim #f)
num-func-seek!
)
gp-1
(the-as art-joint-anim (-> self draw art-group data 2))
num-func-identity
)
(set! (-> gp-1 frame-num) (-> self anim-limit))
)
)
(rider-post)
(while #t
(ja-post)
(suspend)
)
(none)
)
(let ((gp-1 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-1
(the-as art-joint-anim (-> self draw art-group data 2))
num-func-identity
)
(set! (-> gp-1 frame-num) (-> self anim-limit))
)
(rider-post)
(while #t
(ja-post)
(suspend)
)
(none)
)
:post
(the-as (function none :behavior silostep) #f)
)
(defmethod init-from-entity! silostep ((obj silostep) (arg0 entity-actor))
(logior! (-> obj mask) (process-mask movie-subject))
(let
((s4-0
(new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))
)
)
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set!
(-> s4-0 no-reaction)
(the-as
(function collide-shape-moving collide-shape-intersect vector vector none)
nothing
)
)
(dummy-29 s4-0 1)
(let
((s3-0
(new
'process
'collide-shape-prim-mesh
s4-0
(the-as uint 0)
(the-as uint 0)
)
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set! (-> s4-0 no-reaction)
(the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing)
)
(dummy-29 s4-0 1)
(let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 1))
(set! (-> s3-0 prim-core offense) 4)
(set! (-> s3-0 transform-index) 4)
(set-vector! (-> s3-0 local-sphere) 0.0 4096.0 0.0 18432.0)
(set-root-prim! s4-0 s3-0)
)
)
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 1))
(set! (-> s3-0 prim-core offense) 4)
(set! (-> s3-0 transform-index) 4)
(set-vector! (-> s3-0 local-sphere) 0.0 4096.0 0.0 18432.0)
(set-root-prim! s4-0 s3-0)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(backup-collide-with-as s4-0)
(set! (-> obj root) s4-0)
)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(backup-collide-with-as s4-0)
(set! (-> obj root) s4-0)
)
(process-drawable-from-entity! obj arg0)
(initialize-skeleton obj *silostep-sg* '())
(set!
(-> obj anim-limit)
(*
(res-lump-float arg0 'distance :default 1.0)
(the
float
(+
(-> (the-as art-joint-anim (-> obj draw art-group data 2)) data 0 length)
-1
)
)
)
)
(set! (-> obj anim-limit)
(* (res-lump-float arg0 'distance :default 1.0)
(the float (+ (-> (the-as art-joint-anim (-> obj draw art-group data 2)) data 0 length) -1))
)
)
(set! (-> obj link) (new 'process 'actor-link-info obj))
(if
(and
(-> obj entity)
(logtest? (-> obj entity extra perm status) (entity-perm-status complete))
)
(go silostep-rise #t)
(go silostep-idle)
)
(if (and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status complete)))
(go silostep-rise #t)
(go silostep-idle)
)
(none)
)
@ -283,31 +222,20 @@
(defmethod TODO-RENAME-24 rounddoor ((obj rounddoor))
(let
((s5-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-others))))
(let
((s4-0
(new
'process
'collide-shape-prim-mesh
s5-0
(the-as uint 0)
(the-as uint 0)
)
(let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-others))))
(let ((s4-0 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0))))
(set! (-> s4-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s4-0 collide-with) (the-as uint 16))
(set! (-> s4-0 prim-core action) (the-as uint 1))
(set! (-> s4-0 prim-core offense) 4)
(set! (-> s4-0 transform-index) 0)
(set-vector! (-> s4-0 local-sphere) -12288.0 0.0 0.0 40960.0)
(set-root-prim! s5-0 s4-0)
)
)
(set! (-> s4-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s4-0 collide-with) (the-as uint 16))
(set! (-> s4-0 prim-core action) (the-as uint 1))
(set! (-> s4-0 prim-core offense) 4)
(set! (-> s4-0 transform-index) 0)
(set-vector! (-> s4-0 local-sphere) -12288.0 0.0 0.0 40960.0)
(set-root-prim! s5-0 s4-0)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
(backup-collide-with-as s5-0)
(set! (-> obj root-override) s5-0)
)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
(backup-collide-with-as s5-0)
(set! (-> obj root-override) s5-0)
)
0
(none)
)
@ -322,10 +250,7 @@
(set! (-> obj auto-close) #t)
(set! (-> obj one-way) #t)
(vector-x-quaternion! (-> obj out-dir) (-> obj root-override quat))
(set!
(-> obj out-dir w)
(- 8192.0 (vector-dot (-> obj out-dir) (-> obj root-override trans)))
)
(set! (-> obj out-dir w) (- 8192.0 (vector-dot (-> obj out-dir) (-> obj root-override trans))))
(dummy-47 (-> obj root-override))
0
(none)

View File

@ -354,6 +354,7 @@
:size-assert #xb0
:flag-assert #x14004000b0
(:states
quicksandlurker-missile-idle
quicksandlurker-missile-impact
)
)
@ -554,10 +555,12 @@
quicksandlurker-attack
quicksandlurker-die
quicksandlurker-hide
quicksandlurker-idle
quicksandlurker-popup
quicksandlurker-track
quicksandlurker-victory
quicksandlurker-wait
quicksandlurker-yawn
)
)

View File

@ -6,7 +6,6 @@
;; dgos: L1, OGR
(declare-type flying-lurker process-drawable)
(define-extern flying-lurker-clone (state handle string flying-lurker))
;; DECOMP BEGINS
@ -26,6 +25,12 @@
:method-count-assert 20
:size-assert #xb8
:flag-assert #x14005000b8
(:states
plunger-lurker-die
plunger-lurker-flee
plunger-lurker-idle
plunger-lurker-plunge
)
)
@ -401,6 +406,14 @@
(:methods
(dummy-20 (_type_) none 20)
)
(:states
(flying-lurker-clone handle string)
flying-lurker-die
flying-lurker-fly
flying-lurker-idle
flying-lurker-sleep
flying-lurker-start
)
)

View File

@ -23,13 +23,6 @@
(declare-type ogre-bridge process-drawable)
(declare-type shortcut-boulder process-drawable)
(define-extern ogre-bridgeend-idle (state ogre-bridgeend)) ;; unknown type
(define-extern ogre-bridge-activated (state ogre-bridge)) ;; unknown type
(define-extern ogre-bridge-idle (state ogre-bridge)) ;; unknown type
(define-extern ogre-bridge-break (state ogre-bridge)) ;; unknown type
(define-extern ogre-bridge-activate (state ogre-bridge)) ;; unknown type
(define-extern shortcut-boulder-idle (state shortcut-boulder)) ;; unknown type
(define-extern shortcut-boulder-break (state shortcut-boulder)) ;; unknown type
;; DECOMP BEGINS
@ -997,6 +990,12 @@
:method-count-assert 20
:size-assert #xd1
:flag-assert #x14007000d1
(:states
ogre-bridge-activate
ogre-bridge-activated
ogre-bridge-break
ogre-bridge-idle
)
)
@ -1415,6 +1414,9 @@
:method-count-assert 20
:size-assert #xb0
:flag-assert #x14004000b0
(:states
ogre-bridgeend-idle
)
)
@ -1584,6 +1586,10 @@
:method-count-assert 20
:size-assert #xd1
:flag-assert #x14007000d1
(:states
shortcut-boulder-break
shortcut-boulder-idle
)
)

View File

@ -5,7 +5,6 @@
;; name in dgo: target-racer-h
;; dgos: FIC, LAV, MIS, OGR, ROL
(define-extern target-racing-smack (state float symbol target))
(define-extern target-racing-center-anim (function none :behavior target))
(define-extern racer-buzz (function float none :behavior target))
(define-extern target-racing-post (function none :behavior target))

View File

@ -10,9 +10,6 @@
(declare-type spider-egg process-drawable)
(define-extern spider-egg-idle (state symbol spider-egg)) ;; unknown type
(define-extern spider-egg-hatch (state spider-egg)) ;; unknown type
(define-extern spider-egg-die (state spider-egg)) ;; unknown type
;; DECOMP BEGINS
@ -25,6 +22,11 @@
:method-count-assert 20
:size-assert #xd5
:flag-assert #x14007000d5
(:states
spider-egg-die
spider-egg-hatch
(spider-egg-idle symbol)
)
)
@ -47,204 +49,115 @@
(defstate spider-egg-idle (spider-egg)
:event
(behavior ((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 'touch)
(dummy-55
(-> self root-override)
arg0
(the-as touching-shapes-entry (-> arg3 param 0))
0.7
6144.0
16384.0
)
)
((= v1-0 'can-spawn?)
(return (the-as object #t))
v0-0
)
((= v1-0 'notify-spawned)
(go spider-egg-hatch)
)
((= v1-0 'attack)
(go spider-egg-die)
)
)
)
(local-vars (v0-0 none))
(let ((v1-0 arg2))
(the-as
object
(cond
((= v1-0 'touch)
(dummy-55 (-> self root-override) arg0 (the-as touching-shapes-entry (-> arg3 param 0)) 0.7 6144.0 16384.0)
)
((= v1-0 'can-spawn?)
(return (the-as object #t))
v0-0
)
((= v1-0 'notify-spawned)
(go spider-egg-hatch)
)
((= v1-0 'attack)
(go spider-egg-die)
)
)
)
)
)
)
:enter
(behavior ((arg0 symbol))
(set! (-> self state-time) (-> *display* base-frame-counter))
(none)
)
(behavior ((arg0 symbol)) (set! (-> self state-time) (-> *display* base-frame-counter)) (none))
:code
(behavior ((arg0 symbol))
(let ((f30-0 (rand-vu-float-range 0.8 1.2)))
(cond
(arg0
(ja-channel-set! 1)
(let ((gp-1 (-> self skel root-channel 0)))
(set!
(-> gp-1 frame-group)
(the-as art-joint-anim (-> self draw art-group data 9))
)
(set!
(-> gp-1 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 9))
data
0
length
)
-1
)
)
)
(set! (-> gp-1 param 1) f30-0)
(set!
(-> gp-1 frame-num)
(rand-vu-float-range
0.0
(the float (+ (-> (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
data
0
length
)
-1
)
)
)
)
(joint-control-channel-group!
gp-1
(the-as art-joint-anim (-> self draw art-group data 9))
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-5 (-> self skel root-channel 0)))
(set!
(-> a0-5 param 0)
(the float (+ (-> a0-5 frame-group data 0 length) -1))
)
(set! (-> a0-5 param 1) f30-0)
(joint-control-channel-group-eval!
a0-5
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
)
(else
(ja-channel-push! 1 60)
)
)
(while #t
(let ((gp-2 (rand-vu-int-range 2 6)))
(dotimes (s5-0 gp-2)
(let ((a0-9 (-> self skel root-channel 0)))
(set!
(-> a0-9 frame-group)
(the-as art-joint-anim (-> self draw art-group data 9))
)
(set!
(-> a0-9 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 9))
data
0
length
(let ((f30-0 (rand-vu-float-range 0.8 1.2)))
(cond
(arg0
(ja-channel-set! 1)
(let ((gp-1 (-> self skel root-channel 0)))
(set! (-> gp-1 frame-group) (the-as art-joint-anim (-> self draw art-group data 9)))
(set! (-> gp-1 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 9)) data 0 length) -1))
)
(set! (-> gp-1 param 1) f30-0)
(set! (-> gp-1 frame-num)
(rand-vu-float-range 0.0 (the float (+ (-> (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
data
0
length
)
-1
)
)
)
)
(joint-control-channel-group! gp-1 (the-as art-joint-anim (-> self draw art-group data 9)) num-func-seek!)
)
(until (ja-done? 0)
(suspend)
(let ((a0-5 (-> self skel root-channel 0)))
(set! (-> a0-5 param 0) (the float (+ (-> a0-5 frame-group data 0 length) -1)))
(set! (-> a0-5 param 1) f30-0)
(joint-control-channel-group-eval! a0-5 (the-as art-joint-anim #f) num-func-seek!)
)
)
-1
)
)
)
(set! (-> a0-9 param 1) f30-0)
(set! (-> a0-9 frame-num) 0.0)
(joint-control-channel-group!
a0-9
(the-as art-joint-anim (-> self draw art-group data 9))
num-func-seek!
)
(else
(ja-channel-push! 1 60)
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-10 (-> self skel root-channel 0)))
(set!
(-> a0-10 param 0)
(the float (+ (-> a0-10 frame-group data 0 length) -1))
(while #t
(let ((gp-2 (rand-vu-int-range 2 6)))
(dotimes (s5-0 gp-2)
(let ((a0-9 (-> self skel root-channel 0)))
(set! (-> a0-9 frame-group) (the-as art-joint-anim (-> self draw art-group data 9)))
(set! (-> a0-9 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 9)) data 0 length) -1))
)
(set! (-> a0-9 param 1) f30-0)
(set! (-> a0-9 frame-num) 0.0)
(joint-control-channel-group! a0-9 (the-as art-joint-anim (-> self draw art-group data 9)) num-func-seek!)
)
(until (ja-done? 0)
(suspend)
(let ((a0-10 (-> self skel root-channel 0)))
(set! (-> a0-10 param 0) (the float (+ (-> a0-10 frame-group data 0 length) -1)))
(set! (-> a0-10 param 1) f30-0)
(joint-control-channel-group-eval! a0-10 (the-as art-joint-anim #f) num-func-seek!)
)
)
)
)
(set! (-> a0-10 param 1) f30-0)
(joint-control-channel-group-eval!
a0-10
(the-as art-joint-anim #f)
num-func-seek!
(ja-channel-push! 1 30)
(let ((a0-13 (-> self skel root-channel 0)))
(set! (-> a0-13 frame-group) (the-as art-joint-anim (-> self draw art-group data 13)))
(set! (-> a0-13 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 13)) data 0 length) -1))
)
(set! (-> a0-13 param 1) 1.0)
(set! (-> a0-13 frame-num) 0.0)
(joint-control-channel-group! a0-13 (the-as art-joint-anim (-> self draw art-group data 13)) num-func-seek!)
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-14 (-> self skel root-channel 0)))
(set! (-> a0-14 param 0) (the float (+ (-> a0-14 frame-group data 0 length) -1)))
(set! (-> a0-14 param 1) 1.0)
(joint-control-channel-group-eval! a0-14 (the-as art-joint-anim #f) num-func-seek!)
)
)
(ja-channel-push! 1 30)
)
)
)
(ja-channel-push! 1 30)
(let ((a0-13 (-> self skel root-channel 0)))
(set!
(-> a0-13 frame-group)
(the-as art-joint-anim (-> self draw art-group data 13))
)
(set!
(-> a0-13 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 13))
data
0
length
)
-1
)
)
)
(set! (-> a0-13 param 1) 1.0)
(set! (-> a0-13 frame-num) 0.0)
(joint-control-channel-group!
a0-13
(the-as art-joint-anim (-> self draw art-group data 13))
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-14 (-> self skel root-channel 0)))
(set!
(-> a0-14 param 0)
(the float (+ (-> a0-14 frame-group data 0 length) -1))
)
(set! (-> a0-14 param 1) 1.0)
(joint-control-channel-group-eval!
a0-14
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
(ja-channel-push! 1 30)
)
(none)
)
(none)
)
:post
(the-as (function none :behavior spider-egg) ja-post)
)
@ -252,93 +165,62 @@
(defstate spider-egg-hatch (spider-egg)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(local-vars (v0-0 symbol))
(case arg2
(('can-spawn?)
(return (the-as object #f))
v0-0
(local-vars (v0-0 symbol))
(case arg2
(('can-spawn?)
(return (the-as object #f))
v0-0
)
)
)
)
:code
(behavior ()
(dummy-18 self)
(logclear! (-> self mask) (process-mask actor-pause))
(clear-collide-with-as (-> self root-override))
(let ((gp-0 (get-process *default-dead-pool* part-tracker #x4000)))
(when gp-0
(let ((t9-3 (method-of-type part-tracker activate)))
(t9-3
(the-as part-tracker gp-0)
*entity-pool*
'part-tracker
(the-as pointer #x70004000)
)
)
(run-now-in-process
gp-0
part-tracker-init
(-> *part-group-id-table* 324)
-1
#f
#f
#f
(-> self root-override trans)
)
(-> gp-0 ppointer)
)
)
(lods-assign! (-> self draw) (-> self broken-look))
(ja-channel-push! 1 60)
(let ((a0-8 (-> self skel root-channel 0)))
(set!
(-> a0-8 frame-group)
(the-as art-joint-anim (-> self draw art-group data 10))
)
(set!
(-> a0-8 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 10))
data
0
length
(dummy-18 self)
(logclear! (-> self mask) (process-mask actor-pause))
(clear-collide-with-as (-> self root-override))
(let ((gp-0 (get-process *default-dead-pool* part-tracker #x4000)))
(when gp-0
(let ((t9-3 (method-of-type part-tracker activate)))
(t9-3 (the-as part-tracker gp-0) *entity-pool* 'part-tracker (the-as pointer #x70004000))
)
(run-now-in-process
gp-0
part-tracker-init
(-> *part-group-id-table* 324)
-1
#f
#f
#f
(-> self root-override trans)
)
(-> gp-0 ppointer)
)
-1
)
)
)
(set! (-> a0-8 param 1) 1.0)
(set! (-> a0-8 frame-num) 0.0)
(joint-control-channel-group!
a0-8
(the-as art-joint-anim (-> self draw art-group data 10))
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-9 (-> self skel root-channel 0)))
(set!
(-> a0-9 param 0)
(the float (+ (-> a0-9 frame-group data 0 length) -1))
(lods-assign! (-> self draw) (-> self broken-look))
(ja-channel-push! 1 60)
(let ((a0-8 (-> self skel root-channel 0)))
(set! (-> a0-8 frame-group) (the-as art-joint-anim (-> self draw art-group data 10)))
(set! (-> a0-8 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 10)) data 0 length) -1))
)
(set! (-> a0-8 param 1) 1.0)
(set! (-> a0-8 frame-num) 0.0)
(joint-control-channel-group! a0-8 (the-as art-joint-anim (-> self draw art-group data 10)) num-func-seek!)
)
(set! (-> a0-9 param 1) 1.0)
(joint-control-channel-group-eval!
a0-9
(the-as art-joint-anim #f)
num-func-seek!
(until (ja-done? 0)
(suspend)
(let ((a0-9 (-> self skel root-channel 0)))
(set! (-> a0-9 param 0) (the float (+ (-> a0-9 frame-group data 0 length) -1)))
(set! (-> a0-9 param 1) 1.0)
(joint-control-channel-group-eval! a0-9 (the-as art-joint-anim #f) num-func-seek!)
)
)
)
(logior! (-> self draw status) (draw-status drwf01))
(until (not (-> self child))
(suspend)
)
(none)
)
(logior! (-> self draw status) 2)
(until (not (-> self child))
(suspend)
)
(none)
)
:post
(the-as (function none :behavior spider-egg) ja-post)
)
@ -346,110 +228,80 @@
(defstate spider-egg-die (spider-egg)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(local-vars (v0-0 symbol))
(case arg2
(('can-spawn?)
(return (the-as object #f))
v0-0
(local-vars (v0-0 symbol))
(case arg2
(('can-spawn?)
(return (the-as object #f))
v0-0
)
)
)
)
:code
(behavior ()
(dummy-18 self)
(logclear! (-> self mask) (process-mask actor-pause))
(when (-> self notify-actor)
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-0 from) self)
(set! (-> a1-0 num-params) 1)
(set! (-> a1-0 message) 'notify)
(set! (-> a1-0 param 0) (the-as uint 'die))
(let ((t9-1 send-event-function)
(v1-9 (-> self notify-actor))
)
(t9-1 (if v1-9
(-> v1-9 extra process)
)
a1-0
)
)
)
)
(let ((gp-0 (get-process *default-dead-pool* part-tracker #x4000)))
(when gp-0
(let ((t9-3 (method-of-type part-tracker activate)))
(t9-3
(the-as part-tracker gp-0)
*entity-pool*
'part-tracker
(the-as pointer #x70004000)
)
)
(run-now-in-process
gp-0
part-tracker-init
(-> *part-group-id-table* 325)
-1
#f
#f
#f
(-> self root-override trans)
)
(-> gp-0 ppointer)
)
)
(lods-assign! (-> self draw) (-> self broken-look))
(ja-channel-push! 1 30)
(clear-collide-with-as (-> self root-override))
(let ((a0-9 (-> self skel root-channel 0)))
(set!
(-> a0-9 frame-group)
(the-as art-joint-anim (-> self draw art-group data 12))
)
(set!
(-> a0-9 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 12))
data
0
length
(dummy-18 self)
(logclear! (-> self mask) (process-mask actor-pause))
(when (-> self notify-actor)
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-0 from) self)
(set! (-> a1-0 num-params) 1)
(set! (-> a1-0 message) 'notify)
(set! (-> a1-0 param 0) (the-as uint 'die))
(let ((t9-1 send-event-function)
(v1-9 (-> self notify-actor))
)
(t9-1
(if v1-9
(-> v1-9 extra process)
)
a1-0
)
)
)
-1
)
)
)
(set! (-> a0-9 param 1) 1.0)
(set! (-> a0-9 frame-num) 0.0)
(joint-control-channel-group!
a0-9
(the-as art-joint-anim (-> self draw art-group data 12))
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-10 (-> self skel root-channel 0)))
(set!
(-> a0-10 param 0)
(the float (+ (-> a0-10 frame-group data 0 length) -1))
(let ((gp-0 (get-process *default-dead-pool* part-tracker #x4000)))
(when gp-0
(let ((t9-3 (method-of-type part-tracker activate)))
(t9-3 (the-as part-tracker gp-0) *entity-pool* 'part-tracker (the-as pointer #x70004000))
)
(run-now-in-process
gp-0
part-tracker-init
(-> *part-group-id-table* 325)
-1
#f
#f
#f
(-> self root-override trans)
)
(-> gp-0 ppointer)
)
)
(set! (-> a0-10 param 1) 1.0)
(joint-control-channel-group-eval!
a0-10
(the-as art-joint-anim #f)
num-func-seek!
(lods-assign! (-> self draw) (-> self broken-look))
(ja-channel-push! 1 30)
(clear-collide-with-as (-> self root-override))
(let ((a0-9 (-> self skel root-channel 0)))
(set! (-> a0-9 frame-group) (the-as art-joint-anim (-> self draw art-group data 12)))
(set! (-> a0-9 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 12)) data 0 length) -1))
)
(set! (-> a0-9 param 1) 1.0)
(set! (-> a0-9 frame-num) 0.0)
(joint-control-channel-group! a0-9 (the-as art-joint-anim (-> self draw art-group data 12)) num-func-seek!)
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-10 (-> self skel root-channel 0)))
(set! (-> a0-10 param 0) (the float (+ (-> a0-10 frame-group data 0 length) -1)))
(set! (-> a0-10 param 1) 1.0)
(joint-control-channel-group-eval! a0-10 (the-as art-joint-anim #f) num-func-seek!)
)
)
(logior! (-> self draw status) (draw-status drwf01))
(until (not (-> self child))
(suspend)
)
(none)
)
(logior! (-> self draw status) 2)
(until (not (-> self child))
(suspend)
)
(none)
)
:post
(the-as (function none :behavior spider-egg) ja-post)
)
@ -457,72 +309,51 @@
(defmethod init-from-entity! spider-egg ((obj spider-egg) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
(set! (-> obj mask) (logior (process-mask attackable) (-> obj mask)))
(let
((s4-0
(new
'process
'collide-shape-moving
obj
(collide-list-enum usually-hit-by-player)
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set! (-> s4-0 no-reaction)
(the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing)
)
(let ((s3-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0))))
(set! (-> s3-0 prim-core collide-as) (the-as uint 256))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 1))
(set! (-> s3-0 prim-core offense) 1)
(set-vector! (-> s3-0 local-sphere) 0.0 2048.0 0.0 3686.4)
(set-root-prim! s4-0 s3-0)
)
)
(set! (-> s4-0 nav-radius) 4096.0)
(backup-collide-with-as s4-0)
(set! (-> obj root-override) s4-0)
)
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set!
(-> s4-0 no-reaction)
(the-as
(function collide-shape-moving collide-shape-intersect vector vector none)
nothing
)
)
(let ((s3-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0))))
(set! (-> s3-0 prim-core collide-as) (the-as uint 256))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 1))
(set! (-> s3-0 prim-core offense) 1)
(set-vector! (-> s3-0 local-sphere) 0.0 2048.0 0.0 3686.4)
(set-root-prim! s4-0 s3-0)
)
(set! (-> s4-0 nav-radius) 4096.0)
(backup-collide-with-as s4-0)
(set! (-> obj root-override) s4-0)
)
(process-drawable-from-entity! obj arg0)
(initialize-skeleton obj *spider-egg-unbroken-sg* '())
(dummy-9
(-> obj broken-look)
*spider-egg-broken-sg*
(-> obj draw art-group)
(-> obj entity)
)
(dummy-9 (-> obj broken-look) *spider-egg-broken-sg* (-> obj draw art-group) (-> obj entity))
(set-vector! (-> obj root-override scale) 0.4 0.4 0.4 1.0)
(if (not (dummy-60 (-> obj root-override) 12288.0 40960.0 #t (the-as uint 1)))
(go process-drawable-art-error "no ground")
)
(set!
(-> obj root-override trans y)
(+ -409.6 (-> obj root-override trans y))
)
(go process-drawable-art-error "no ground")
)
(set! (-> obj root-override trans y) (+ -409.6 (-> obj root-override trans y)))
(let ((s4-1 (new 'stack-no-clear 'vector)))
(set! (-> s4-1 quad) (-> obj root-override surface-normal quad))
(+! (-> s4-1 x) (rand-vu-float-range -0.2 0.2))
(+! (-> s4-1 z) (rand-vu-float-range -0.2 0.2))
(vector-normalize! s4-1 1.0)
(quaternion-axis-angle!
(-> obj root-override quat)
(-> s4-1 x)
(-> s4-1 y)
(-> s4-1 z)
(rand-vu-float-range 0.0 65536.0)
(set! (-> s4-1 quad) (-> obj root-override surface-normal quad))
(+! (-> s4-1 x) (rand-vu-float-range -0.2 0.2))
(+! (-> s4-1 z) (rand-vu-float-range -0.2 0.2))
(vector-normalize! s4-1 1.0)
(quaternion-axis-angle!
(-> obj root-override quat)
(-> s4-1 x)
(-> s4-1 y)
(-> s4-1 z)
(rand-vu-float-range 0.0 65536.0)
)
)
)
(dummy-47 (-> obj root-override))
(nav-mesh-connect obj (-> obj root-override) (the-as nav-control #f))
(if (> (entity-actor-count arg0 'alt-actor) 0)
(set! (-> obj notify-actor) (entity-actor-lookup arg0 'alt-actor 0))
(set! (-> obj notify-actor) #f)
)
(set! (-> obj notify-actor) (entity-actor-lookup arg0 'alt-actor 0))
(set! (-> obj notify-actor) #f)
)
(go spider-egg-idle #t)
(none)
)

View File

@ -9,11 +9,6 @@
(declare-type snow-bumper process-drawable)
(define-extern snow-bumper-spawn-fuel-cell (state snow-bumper)) ;; unknown type
(define-extern snow-bumper-inactive-idle (state snow-bumper)) ;; unknown type
(define-extern snow-bumper-active-far-idle (state snow-bumper)) ;; unknown type
(define-extern snow-bumper-deactivate (state snow-bumper)) ;; unknown type
(define-extern snow-bumper-active-close-idle (state snow-bumper)) ;; unknown type
;; DECOMP BEGINS
@ -32,6 +27,13 @@
(dummy-20 (_type_) none 20)
(shove-player (_type_ process-drawable) none 21)
)
(:states
snow-bumper-active-close-idle
snow-bumper-active-far-idle
snow-bumper-deactivate
snow-bumper-inactive-idle
snow-bumper-spawn-fuel-cell
)
)
@ -43,386 +45,287 @@
:longest-edge (meters 0)
)
(set!
(-> *part-group-id-table* 519)
(new 'static 'sparticle-launch-group
:length 1
:duration #xbb8
:linger-duration #x5dc
:flags (sp-group-flag use-local-clock)
:name "group-snow-bumper-idle"
:launcher
(new 'static 'inline-array sparticle-group-item 1
(sp-item 1893 :fade-after (meters 90.0) :falloff-to (meters 90.0) :period 25 :length 10)
)
:bounds (new 'static 'sphere :w 32768.0)
)
)
(set! (-> *part-group-id-table* 519)
(new 'static 'sparticle-launch-group
:length 1
:duration #xbb8
:linger-duration #x5dc
:flags (sp-group-flag use-local-clock)
:name "group-snow-bumper-idle"
:launcher
(new 'static 'inline-array sparticle-group-item 1
(sp-item 1893 :fade-after (meters 90.0) :falloff-to (meters 90.0) :period 25 :length 10)
)
:bounds (new 'static 'sphere :w 32768.0)
)
)
(set!
(-> *part-id-table* 1893)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 21
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
(sp-flt spt-num 15.0)
(sp-flt spt-y (meters 1.5))
(sp-flt spt-z 0.0)
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-scale-y (meters 6.0))
(sp-flt spt-r 0.0)
(sp-flt spt-g 64.0)
(sp-rnd-flt spt-b 64.0 32.0 1.0)
(sp-rnd-flt spt-a 32.0 64.0 1.0)
(sp-flt spt-vel-y (meters 0.013333334))
(sp-flt spt-scalevel-x (meters 0.0038461538))
(sp-flt spt-scalevel-y (meters -0.03076923))
(sp-flt spt-fade-a 0.0)
(sp-int spt-timer 25)
(sp-cpuinfo-flags bit2 bit3 bit14)
(sp-flt spt-conerot-x (degrees 90.0))
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-flt spt-conerot-radius (meters 5.0))
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(set! (-> *part-id-table* 1893) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 21
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
(sp-flt spt-num 15.0)
(sp-flt spt-y (meters 1.5))
(sp-flt spt-z 0.0)
(sp-flt spt-scale-x (meters 1.5))
(sp-flt spt-scale-y (meters 6.0))
(sp-flt spt-r 0.0)
(sp-flt spt-g 64.0)
(sp-rnd-flt spt-b 64.0 32.0 1.0)
(sp-rnd-flt spt-a 32.0 64.0 1.0)
(sp-flt spt-vel-y (meters 0.013333334))
(sp-flt spt-scalevel-x (meters 0.0038461538))
(sp-flt spt-scalevel-y (meters -0.03076923))
(sp-flt spt-fade-a 0.0)
(sp-int spt-timer 25)
(sp-cpuinfo-flags bit2 bit3 bit14)
(sp-flt spt-conerot-x (degrees 90.0))
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-flt spt-conerot-radius (meters 5.0))
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(set!
(-> *part-group-id-table* 520)
(new 'static 'sparticle-launch-group
:length 1
:duration #xbb8
:linger-duration #x5dc
:flags (sp-group-flag use-local-clock)
:name "group-snow-bumper-shove"
:launcher
(new 'static 'inline-array sparticle-group-item 1 (sp-item 1895))
:bounds (new 'static 'sphere :w 32768.0)
)
)
(set! (-> *part-group-id-table* 520) (new 'static 'sparticle-launch-group
:length 1
:duration #xbb8
:linger-duration #x5dc
:flags (sp-group-flag use-local-clock)
:name "group-snow-bumper-shove"
:launcher
(new 'static 'inline-array sparticle-group-item 1 (sp-item 1895))
:bounds (new 'static 'sphere :w 32768.0)
)
)
(set!
(-> *part-id-table* 1895)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 19
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
(sp-flt spt-num 16.0)
(sp-flt spt-x (meters 5.5))
(sp-flt spt-y (meters 1.5))
(sp-flt spt-z 0.0)
(sp-flt spt-scale-x (meters 2.0))
(sp-flt spt-scale-y (meters 6.0))
(sp-rnd-flt spt-r 64.0 32.0 1.0)
(sp-flt spt-g 64.0)
(sp-flt spt-b 0.0)
(sp-flt spt-a 64.0)
(sp-flt spt-vel-x (meters 0.033333335))
(sp-flt spt-scalevel-x (meters 0.008333334))
(sp-flt spt-scalevel-y (meters 0.2))
(sp-flt spt-fade-a 0.0)
(sp-int spt-timer 25)
(sp-cpuinfo-flags bit2 bit3 bit14)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 45.0) 1.0)
(sp-end)
)
)
)
(set! (-> *part-id-table* 1895) (new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 19
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
(sp-flt spt-num 16.0)
(sp-flt spt-x (meters 5.5))
(sp-flt spt-y (meters 1.5))
(sp-flt spt-z 0.0)
(sp-flt spt-scale-x (meters 2.0))
(sp-flt spt-scale-y (meters 6.0))
(sp-rnd-flt spt-r 64.0 32.0 1.0)
(sp-flt spt-g 64.0)
(sp-flt spt-b 0.0)
(sp-flt spt-a 64.0)
(sp-flt spt-vel-x (meters 0.033333335))
(sp-flt spt-scalevel-x (meters 0.008333334))
(sp-flt spt-scalevel-y (meters 0.2))
(sp-flt spt-fade-a 0.0)
(sp-int spt-timer 25)
(sp-cpuinfo-flags bit2 bit3 bit14)
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 45.0) 1.0)
(sp-end)
)
)
)
(defmethod shove-player snow-bumper ((obj snow-bumper) (arg0 process-drawable))
(with-pp
(let ((s5-0 (new 'stack-no-clear 'vector)))
(vector-! s5-0 (-> arg0 root trans) (-> obj root trans))
(set! (-> s5-0 y) 0.0)
(vector-normalize! s5-0 1.0)
(let* ((f0-3 (atan (-> s5-0 x) (-> s5-0 z)))
(f30-0 (-> obj base-shove-ry))
(f28-0 (-> obj max-shove-diff-ry))
(f0-4 (deg- f0-3 f30-0))
)
(when (< f28-0 (fabs f0-4))
(let ((f30-1 (if (>= f0-4 0.0)
(+ f30-0 f28-0)
(- f30-0 f28-0)
)
(let ((s5-0 (new 'stack-no-clear 'vector)))
(vector-! s5-0 (-> arg0 root trans) (-> obj root trans))
(set! (-> s5-0 y) 0.0)
(vector-normalize! s5-0 1.0)
(let* ((f0-3 (atan (-> s5-0 x) (-> s5-0 z)))
(f30-0 (-> obj base-shove-ry))
(f28-0 (-> obj max-shove-diff-ry))
(f0-4 (deg- f0-3 f30-0))
)
(when (< f28-0 (fabs f0-4))
(let ((f30-1 (if (>= f0-4 0.0)
(+ f30-0 f28-0)
(- f30-0 f28-0)
)
)
)
(set-vector! s5-0 (sin f30-1) 0.0 (cos f30-1) 1.0)
)
(set-vector! s5-0 (sin f30-1) 0.0 (cos f30-1) 1.0)
)
)
)
(let ((f0-12 (+ -16384.0 (atan (-> s5-0 x) (-> s5-0 z)))))
(set!
(-> *part-id-table* 1895 init-specs 17 initial-valuef)
(+ -4096.0 f0-12)
)
)
(spawn (-> obj part2) (-> obj root trans))
(let ((s3-1 (new 'stack-no-clear 'vector)))
(vector-normalize-copy! s3-1 s5-0 32768.0)
(vector+! s3-1 s3-1 (-> obj root trans))
(vector-! s5-0 s3-1 (-> arg0 root trans))
)
(let ((f30-3 (vector-xz-length s5-0)))
(vector-normalize! s5-0 1.0)
(let ((a1-12 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-12 from) pp)
(set! (-> a1-12 num-params) 2)
(set! (-> a1-12 message) 'shove)
(set! (-> a1-12 param 0) (the-as uint #f))
(let ((v1-16 (new 'static 'attack-info :mask #xc2)))
(set! (-> v1-16 vector quad) (-> s5-0 quad))
(set! (-> v1-16 shove-up) 4096.0)
(set! (-> v1-16 shove-back) f30-3)
(set! (-> a1-12 param 1) (the-as uint v1-16))
)
(if (send-event-function *target* a1-12)
(set!
(-> obj last-shoved-player-time)
(the-as uint (-> *display* base-frame-counter))
)
)
(let ((f0-12 (+ -16384.0 (atan (-> s5-0 x) (-> s5-0 z)))))
(set! (-> *part-id-table* 1895 init-specs 17 initial-valuef) (+ -4096.0 f0-12))
)
(spawn (-> obj part2) (-> obj root trans))
(let ((s3-1 (new 'stack-no-clear 'vector)))
(vector-normalize-copy! s3-1 s5-0 32768.0)
(vector+! s3-1 s3-1 (-> obj root trans))
(vector-! s5-0 s3-1 (-> arg0 root trans))
)
(let ((f30-3 (vector-xz-length s5-0)))
(vector-normalize! s5-0 1.0)
(let ((a1-12 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-12 from) pp)
(set! (-> a1-12 num-params) 2)
(set! (-> a1-12 message) 'shove)
(set! (-> a1-12 param 0) (the-as uint #f))
(let ((v1-16 (new 'static 'attack-info :mask #xc2)))
(set! (-> v1-16 vector quad) (-> s5-0 quad))
(set! (-> v1-16 shove-up) 4096.0)
(set! (-> v1-16 shove-back) f30-3)
(set! (-> a1-12 param 1) (the-as uint v1-16))
)
(if (send-event-function *target* a1-12)
(set! (-> obj last-shoved-player-time) (the-as uint (-> *display* base-frame-counter)))
)
)
)
)
)
)
(none)
)
(none)
)
)
(defstate snow-bumper-active-far-idle (snow-bumper)
:trans
(behavior ()
(if
(and
*target*
(>=
135895450000.0
(vector-vector-xz-distance-squared (-> self root trans) (target-pos 0))
)
)
(go snow-bumper-active-close-idle)
(if (and *target* (>= 135895450000.0 (vector-vector-xz-distance-squared (-> self root trans) (target-pos 0))))
(go snow-bumper-active-close-idle)
)
0
(none)
)
0
(none)
)
:code
(behavior ()
(transform-post)
(suspend)
(while #t
(logior! (-> self mask) (process-mask sleep-code))
(transform-post)
(suspend)
(while #t
(logior! (-> self mask) (process-mask sleep-code))
(suspend)
)
(none)
)
(none)
)
)
(defstate snow-bumper-active-close-idle (snow-bumper)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('touch 'attack 'bonk)
(when (= (-> arg0 type) target)
(let ((gp-0 (-> arg3 param 0)))
(when
(and
(>=
6144.0
(vector-vector-xz-distance (-> self root trans) (target-pos 0))
(case arg2
(('touch 'attack 'bonk)
(when (= (-> arg0 type) target)
(let ((gp-0 (-> arg3 param 0)))
(when (and
(>= 6144.0 (vector-vector-xz-distance (-> self root trans) (target-pos 0)))
((method-of-type touching-shapes-entry prims-touching?)
(the-as touching-shapes-entry gp-0)
(the-as collide-shape-moving (-> self root))
(the-as uint 1)
)
)
(close-specific-task! (game-task snow-bumpers) (task-status need-hint))
(go snow-bumper-deactivate)
)
)
((method-of-type touching-shapes-entry prims-touching?)
(the-as touching-shapes-entry gp-0)
(the-as collide-shape-moving (-> self root))
(the-as uint 1)
)
)
(close-specific-task! (game-task snow-bumpers) (task-status need-hint))
(go snow-bumper-deactivate)
)
)
)
)
)
)
:trans
(behavior ()
(cond
(*target*
(let* ((gp-0 (target-pos 0))
(f30-0 (vector-vector-xz-distance (-> self root trans) gp-0))
(f28-0 (- (-> gp-0 y) (-> self root trans y)))
)
(if (< 368640.0 f30-0)
(go snow-bumper-active-far-idle)
)
(if
(and
(>=
(-
(-> *display* base-frame-counter)
(the-as int (-> self last-shoved-player-time))
(cond
(*target*
(let* ((gp-0 (target-pos 0))
(f30-0 (vector-vector-xz-distance (-> self root trans) gp-0))
(f28-0 (- (-> gp-0 y) (-> self root trans y)))
)
(if (< 368640.0 f30-0)
(go snow-bumper-active-far-idle)
)
(if (and
(>= (- (-> *display* base-frame-counter) (the-as int (-> self last-shoved-player-time))) 150)
(>= 20480.0 f30-0)
(>= f28-0 -4096.0)
(>= 11059.2 f28-0)
)
(shove-player self *target*)
)
)
150
)
(>= 20480.0 f30-0)
(>= f28-0 -4096.0)
(>= 11059.2 f28-0)
)
(shove-player self *target*)
)
(else
(go snow-bumper-active-far-idle)
)
)
)
(else
(go snow-bumper-active-far-idle)
)
(spawn (-> self part) (-> self root trans))
(update! (-> self sound))
(none)
)
(spawn (-> self part) (-> self root trans))
(update! (-> self sound))
(none)
)
:code
(behavior ()
(transform-post)
(suspend)
(while #t
(logior! (-> self mask) (process-mask sleep-code))
(transform-post)
(suspend)
(while #t
(logior! (-> self mask) (process-mask sleep-code))
(suspend)
)
(none)
)
(none)
)
)
(defstate snow-bumper-deactivate (snow-bumper)
:exit
(behavior ()
(stop! (-> self sound))
(logior! (-> self mask) (process-mask actor-pause))
(none)
)
(behavior () (stop! (-> self sound)) (logior! (-> self mask) (process-mask actor-pause)) (none))
:trans
(the-as (function none :behavior snow-bumper) rider-trans)
:code
(behavior ()
(local-vars (sv-16 symbol))
(logclear! (-> self mask) (process-mask actor-pause))
(sound-play-by-name
(static-sound-name "bumper-pwr-dwn")
(new-sound-id)
1024
0
0
1
#t
)
(let ((a0-3 (-> self skel root-channel 0)))
(set!
(-> a0-3 frame-group)
(the-as art-joint-anim (-> self draw art-group data 4))
)
(set!
(-> a0-3 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 4))
data
0
length
(local-vars (sv-16 symbol))
(logclear! (-> self mask) (process-mask actor-pause))
(sound-play-by-name (static-sound-name "bumper-pwr-dwn") (new-sound-id) 1024 0 0 1 #t)
(let ((a0-3 (-> self skel root-channel 0)))
(set! (-> a0-3 frame-group) (the-as art-joint-anim (-> self draw art-group data 4)))
(set! (-> a0-3 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 4)) data 0 length) -1))
)
(set! (-> a0-3 param 1) 0.05)
(set! (-> a0-3 frame-num) 0.0)
(joint-control-channel-group! a0-3 (the-as art-joint-anim (-> self draw art-group data 4)) num-func-seek!)
)
(until (ja-done? 0)
(spawn (-> self part) (-> self root trans))
(update! (-> self sound))
(suspend)
(let ((a0-6 (-> self skel root-channel 0)))
(set! (-> a0-6 param 0) (the float (+ (-> a0-6 frame-group data 0 length) -1)))
(set! (-> a0-6 param 1) 0.05)
(joint-control-channel-group-eval! a0-6 (the-as art-joint-anim #f) num-func-seek!)
)
-1
)
)
)
(set! (-> a0-3 param 1) 0.05)
(set! (-> a0-3 frame-num) 0.0)
(joint-control-channel-group!
a0-3
(the-as art-joint-anim (-> self draw art-group data 4))
num-func-seek!
)
)
(until (ja-done? 0)
(spawn (-> self part) (-> self root trans))
(update! (-> self sound))
(suspend)
(let ((a0-6 (-> self skel root-channel 0)))
(set!
(-> a0-6 param 0)
(the float (+ (-> a0-6 frame-group data 0 length) -1))
(stop! (-> self sound))
(set! (-> self state-time) (-> *display* base-frame-counter))
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150)
(suspend)
)
(set! (-> a0-6 param 1) 0.05)
(joint-control-channel-group-eval!
a0-6
(the-as art-joint-anim #f)
num-func-seek!
(let ((a0-10 (-> self skel root-channel 0)))
(set! (-> a0-10 frame-group) (the-as art-joint-anim (-> self draw art-group data 5)))
(set! (-> a0-10 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) data 0 length) -1))
)
(set! (-> a0-10 param 1) 0.02)
(set! (-> a0-10 frame-num) 0.0)
(joint-control-channel-group! a0-10 (the-as art-joint-anim (-> self draw art-group data 5)) num-func-seek!)
)
)
)
(stop! (-> self sound))
(set! (-> self state-time) (-> *display* base-frame-counter))
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 150)
(suspend)
)
(let ((a0-10 (-> self skel root-channel 0)))
(set!
(-> a0-10 frame-group)
(the-as art-joint-anim (-> self draw art-group data 5))
)
(set!
(-> a0-10 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 5))
data
0
length
(until (ja-done? 0)
(suspend)
(let ((a0-11 (-> self skel root-channel 0)))
(set! (-> a0-11 param 0) (the float (+ (-> a0-11 frame-group data 0 length) -1)))
(set! (-> a0-11 param 1) 0.02)
(joint-control-channel-group-eval! a0-11 (the-as art-joint-anim #f) num-func-seek!)
)
-1
)
)
)
(set! (-> a0-10 param 1) 0.02)
(set! (-> a0-10 frame-num) 0.0)
(joint-control-channel-group!
a0-10
(the-as art-joint-anim (-> self draw art-group data 5))
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-11 (-> self skel root-channel 0)))
(set!
(-> a0-11 param 0)
(the float (+ (-> a0-11 frame-group data 0 length) -1))
(process-entity-status! self (entity-perm-status complete) #t)
(set! sv-16 (the-as symbol #f))
(apply-all (-> self link) actor-link-subtask-complete-hook (& sv-16))
(when sv-16
(save-reminder (get-task-control (game-task snow-bumpers)) (-> self bumper-id) 0)
(go snow-bumper-spawn-fuel-cell)
)
(set! (-> a0-11 param 1) 0.02)
(joint-control-channel-group-eval!
a0-11
(the-as art-joint-anim #f)
num-func-seek!
)
)
(go snow-bumper-inactive-idle)
(none)
)
(process-entity-status! self (entity-perm-status complete) #t)
(set! sv-16 (the-as symbol #f))
(apply-all (-> self link) actor-link-subtask-complete-hook (& sv-16))
(when sv-16
(save-reminder
(get-task-control (game-task snow-bumpers))
(-> self bumper-id)
0
)
(go snow-bumper-spawn-fuel-cell)
)
(go snow-bumper-inactive-idle)
(none)
)
:post
(the-as (function none :behavior snow-bumper) rider-post)
)
@ -430,247 +333,170 @@
(defstate snow-bumper-spawn-fuel-cell (snow-bumper)
:code
(behavior ()
(ja-channel-set! 1)
(let ((gp-0 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-0
(the-as art-joint-anim (-> self draw art-group data 5))
num-func-identity
)
(set!
(-> gp-0 frame-num)
(the
float
(+
(->
(ja-channel-set! 1)
(let ((gp-0 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-0
(the-as art-joint-anim (-> self draw art-group data 5))
data
0
length
num-func-identity
)
-1
)
(set! (-> gp-0 frame-num)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) data 0 length) -1))
)
)
)
(transform-post)
(if (not (task-complete? *game-info* (-> self entity extra perm task)))
(birth-pickup-at-point
(-> self root trans)
(pickup-type fuel-cell)
(the float (-> self entity extra perm task))
#t
self
(the-as fact-info #f)
)
)
(until (not (-> self child))
(suspend)
)
(go snow-bumper-inactive-idle)
(none)
)
(transform-post)
(if (not (task-complete? *game-info* (-> self entity extra perm task)))
(birth-pickup-at-point
(-> self root trans)
(pickup-type fuel-cell)
(the float (-> self entity extra perm task))
#t
self
(the-as fact-info #f)
)
)
(until (not (-> self child))
(suspend)
)
(go snow-bumper-inactive-idle)
(none)
)
)
(defstate snow-bumper-inactive-idle (snow-bumper)
:code
(behavior ()
(set! (-> self root nav-radius) 6963.2)
(ja-channel-set! 1)
(let ((gp-0 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-0
(the-as art-joint-anim (-> self draw art-group data 5))
num-func-identity
)
(set!
(-> gp-0 frame-num)
(the
float
(+
(->
(set! (-> self root nav-radius) 6963.2)
(ja-channel-set! 1)
(let ((gp-0 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-0
(the-as art-joint-anim (-> self draw art-group data 5))
data
0
length
num-func-identity
)
-1
)
(set! (-> gp-0 frame-num)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) data 0 length) -1))
)
)
)
(transform-post)
(suspend)
(logior! (-> self mask) (process-mask sleep-code))
(suspend)
0
(none)
)
(transform-post)
(suspend)
(logior! (-> self mask) (process-mask sleep-code))
(suspend)
0
(none)
)
)
(defmethod deactivate snow-bumper ((obj snow-bumper))
(if (nonzero? (-> obj part2))
(kill-and-free-particles (-> obj part2))
)
(kill-and-free-particles (-> obj part2))
)
((method-of-type process-drawable deactivate) obj)
(none)
)
(defmethod relocate snow-bumper ((obj snow-bumper) (arg0 int))
(if (nonzero? (-> obj part2))
(&+! (-> obj part2) arg0)
)
(&+! (-> obj part2) arg0)
)
(the-as
snow-bumper
((the-as
(function process-drawable int process-drawable)
(find-parent-method snow-bumper 7)
)
obj
arg0
snow-bumper
((the-as (function process-drawable int process-drawable) (find-parent-method snow-bumper 7)) obj arg0)
)
)
)
(defmethod init-from-entity! snow-bumper ((obj snow-bumper) (arg0 entity-actor))
(local-vars (sv-16 res-tag))
(set! (-> obj last-shoved-player-time) (the-as uint 0))
(let
((s4-0
(new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))
)
)
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set!
(-> s4-0 no-reaction)
(the-as
(function collide-shape-moving collide-shape-intersect vector vector none)
nothing
)
)
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 2) 0)))
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 3))
(set-vector! (-> s3-0 local-sphere) 0.0 9011.2 0.0 13926.4)
(set-root-prim! s4-0 s3-0)
(let
((s2-0
(new
'process
'collide-shape-prim-mesh
s4-0
(the-as uint 0)
(the-as uint 1)
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set! (-> s4-0 no-reaction)
(the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing)
)
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 2) 0)))
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 3))
(set-vector! (-> s3-0 local-sphere) 0.0 9011.2 0.0 13926.4)
(set-root-prim! s4-0 s3-0)
(let ((s2-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 1))))
(set! (-> s2-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s2-0 collide-with) (the-as uint 16))
(set! (-> s2-0 prim-core action) (the-as uint 3))
(set! (-> s2-0 prim-core offense) 4)
(set! (-> s2-0 transform-index) 6)
(set-vector! (-> s2-0 local-sphere) 0.0 0.0 0.0 4915.2)
(append-prim s3-0 s2-0)
)
)
)
(set! (-> s2-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s2-0 collide-with) (the-as uint 16))
(set! (-> s2-0 prim-core action) (the-as uint 3))
(set! (-> s2-0 prim-core offense) 4)
(set! (-> s2-0 transform-index) 6)
(set-vector! (-> s2-0 local-sphere) 0.0 0.0 0.0 4915.2)
(append-prim s3-0 s2-0)
)
(let
((s2-1
(new
'process
'collide-shape-prim-mesh
s4-0
(the-as uint 1)
(the-as uint 2)
(let ((s2-1 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 1) (the-as uint 2))))
(set! (-> s2-1 prim-core collide-as) (the-as uint 512))
(set! (-> s2-1 collide-with) (the-as uint 16))
(set! (-> s2-1 prim-core action) (the-as uint 1))
(set! (-> s2-1 prim-core offense) 4)
(set! (-> s2-1 transform-index) 3)
(set-vector! (-> s2-1 local-sphere) 0.0 8192.0 0.0 11878.4)
(append-prim s3-0 s2-1)
)
)
)
(set! (-> s2-1 prim-core collide-as) (the-as uint 512))
(set! (-> s2-1 collide-with) (the-as uint 16))
(set! (-> s2-1 prim-core action) (the-as uint 1))
(set! (-> s2-1 prim-core offense) 4)
(set! (-> s2-1 transform-index) 3)
(set-vector! (-> s2-1 local-sphere) 0.0 8192.0 0.0 11878.4)
(append-prim s3-0 s2-1)
)
(set! (-> s4-0 nav-radius) 20480.0)
(backup-collide-with-as s4-0)
(set! (-> obj root) s4-0)
)
(set! (-> s4-0 nav-radius) 20480.0)
(backup-collide-with-as s4-0)
(set! (-> obj root) s4-0)
)
(process-drawable-from-entity! obj arg0)
(initialize-skeleton obj *snow-bumper-sg* '())
(set!
(-> obj part)
(create-launch-control (-> *part-group-id-table* 519) obj)
)
(set!
(-> obj part2)
(create-launch-control (-> *part-group-id-table* 520) obj)
)
(set! (-> obj part) (create-launch-control (-> *part-group-id-table* 519) obj))
(set! (-> obj part2) (create-launch-control (-> *part-group-id-table* 520) obj))
(nav-mesh-connect obj (-> obj root) (the-as nav-control #f))
(set! (-> obj link) (new 'process 'actor-link-info obj))
(set! (-> obj bumper-id) (+ (actor-count-before (-> obj link)) 1))
(set!
(-> obj sound)
(new
'process
'ambient-sound
(new 'static 'sound-spec
:mask #x80
:num 1.0
:group #x1
:sound-name (static-sound-name "snow-bumper")
:volume #x400
:fo-max 40
)
(-> obj root trans)
)
)
(set! (-> obj sound) (new
'process
'ambient-sound
(new 'static 'sound-spec
:mask #x80
:num 1.0
:group #x1
:sound-name (static-sound-name "snow-bumper")
:volume #x400
:fo-max 40
)
(-> obj root trans)
)
)
(ja-channel-set! 1)
(let ((s5-1 (-> obj skel root-channel 0)))
(joint-control-channel-group-eval!
s5-1
(the-as art-joint-anim (-> obj draw art-group data 3))
num-func-identity
(joint-control-channel-group-eval!
s5-1
(the-as art-joint-anim (-> obj draw art-group data 3))
num-func-identity
)
(set! (-> s5-1 frame-num) 0.0)
)
(set! (-> s5-1 frame-num) 0.0)
)
(transform-post)
(set! (-> obj base-shove-ry) 0.0)
(set! (-> obj max-shove-diff-ry) 32768.0)
(set! sv-16 (new 'static 'res-tag))
(let
((v1-52
(res-lump-data (-> obj entity) 'rotmin (pointer float) :tag-ptr (& sv-16))
)
)
(when v1-52
(set! (-> obj base-shove-ry) (-> v1-52 0))
(set! (-> obj max-shove-diff-ry) (-> v1-52 1))
)
)
(cond
((and
(-> obj entity)
(logtest? (-> obj entity extra perm status) (entity-perm-status complete))
)
(if
(and
(=
(get-reminder (get-task-control (game-task snow-bumpers)) 0)
(-> obj bumper-id)
)
(not (task-complete? *game-info* (-> obj entity extra perm task)))
(let ((v1-52 (res-lump-data (-> obj entity) 'rotmin (pointer float) :tag-ptr (& sv-16))))
(when v1-52
(set! (-> obj base-shove-ry) (-> v1-52 0))
(set! (-> obj max-shove-diff-ry) (-> v1-52 1))
)
(go snow-bumper-spawn-fuel-cell)
(go snow-bumper-inactive-idle)
)
(cond
((and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status complete)))
(if (and
(= (get-reminder (get-task-control (game-task snow-bumpers)) 0) (-> obj bumper-id))
(not (task-complete? *game-info* (-> obj entity extra perm task)))
)
(go snow-bumper-spawn-fuel-cell)
(go snow-bumper-inactive-idle)
)
)
(else
(go snow-bumper-active-far-idle)
)
)
(else
(go snow-bumper-active-far-idle)
)
)
(none)
)

View File

@ -13,16 +13,6 @@
(declare-type flutflut-plat plat)
(declare-type snow-button process-drawable)
(define-extern elevator-idle-at-cave (state flutflut-plat)) ;; unknown type
(define-extern elevator-travel-to-cave (state flutflut-plat)) ;; unknown type
(define-extern elevator-idle-at-fort (state flutflut-plat)) ;; unknown type
(define-extern elevator-travel-to-fort (state flutflut-plat)) ;; unknown type
(define-extern flutflut-plat-hidden-idle (state flutflut-plat)) ;; unknown type
(define-extern flutflut-plat-hide (state flutflut-plat)) ;; unknown type
(define-extern flutflut-plat-appear (state flutflut-plat)) ;; unknown type
(define-extern snow-button-up-idle (state snow-button)) ;; unknown type
(define-extern snow-button-deactivate (state snow-button)) ;; unknown type
(define-extern snow-button-activate (state snow-button)) ;; unknown type
;; DECOMP BEGINS
@ -44,6 +34,15 @@
:method-count-assert 33
:size-assert #x180
:flag-assert #x2101100180
(:states
elevator-idle-at-cave
elevator-idle-at-fort
elevator-travel-to-cave
elevator-travel-to-fort
flutflut-plat-appear
flutflut-plat-hidden-idle
flutflut-plat-hide
)
)
@ -59,6 +58,11 @@
:method-count-assert 20
:size-assert #xf0
:flag-assert #x14008000f0
(:states
snow-button-activate
snow-button-deactivate
snow-button-up-idle
)
)

View File

@ -27,5 +27,18 @@
:size-assert #x1f4
:heap-base #x190
:flag-assert #x4c019001f4
(:states
ram-boss-tracking
ram-boss-nav-resume
ram-boss-throw
ram-boss-nav-start
ram-boss-jump-down-hit-ground
(ram-boss-jump-down basic vector)
(ram-boss-already-down basic vector)
ram-boss-idle
ram-boss-lose-shield
ram-boss-up-defend-block
ram-boss-forward-defend-block
ram-boss-show-anims)
)
(define-extern ram-boss-init-by-other (function basic nav-enemy symbol none :behavior ram-boss))

View File

@ -25,6 +25,11 @@
(dummy-21 (_type_) object 21)
(dummy-22 (_type_) symbol 22)
)
(:states
ram-fun-idle
ram-give-fuel-cell
ram-idle
)
)

View File

@ -9,9 +9,6 @@
(declare-type ram process-drawable)
(define-extern ram-fun-idle (state ram)) ;; unknown type
(define-extern ram-idle (state ram)) ;; unknown type
(define-extern ram-give-fuel-cell (state ram)) ;; unknown type
;; DECOMP BEGINS

View File

@ -5,7 +5,6 @@
;; name in dgo: target-snowball
;; dgos: L1, SNO
(define-extern target-snowball (state target)) ;; unknown type
;; DECOMP BEGINS

File diff suppressed because it is too large Load Diff

View File

@ -10,10 +10,6 @@
(declare-type puffer process-drawable)
(define-extern puffer-idle (state puffer)) ;; unknown type
(define-extern puffer-patrol (state puffer)) ;; unknown type
(define-extern puffer-attack (state puffer)) ;; unknown type
(define-extern puffer-die (state puffer)) ;; unknown type
;; DECOMP BEGINS
@ -66,6 +62,12 @@
(dummy-30 (_type_) vector 30)
(dummy-31 (_type_) vector 31)
)
(:states
puffer-attack
puffer-die
puffer-idle
puffer-patrol
)
)
@ -155,7 +157,7 @@
(defmethod dummy-28 puffer ((obj puffer))
(cond
((and (-> obj draw shadow) (zero? (-> obj draw cur-lod)) (logtest? (-> obj draw status) 8))
((and (-> obj draw shadow) (zero? (-> obj draw cur-lod)) (logtest? (-> obj draw status) (draw-status drwf03)))
(let ((s5-0 (new 'stack-no-clear 'collide-tri-result))
(a1-0 (new 'stack-no-clear 'vector))
(a2-0 (new 'stack-no-clear 'vector))
@ -513,7 +515,7 @@
(vector-vector-distance (-> self root-override trans) (-> *target* control trans))
)
)
(logtest? (-> self draw status) 8)
(logtest? (-> self draw status) (draw-status drwf03))
(>= (- (-> *display* base-frame-counter) (-> self state-time)) 60)
)
(go puffer-patrol)
@ -556,7 +558,7 @@
(go puffer-idle)
)
(cond
((logtest? (-> self draw status) 8)
((logtest? (-> self draw status) (draw-status drwf03))
(set! (-> self last-on-screen-time) (the-as uint (-> *display* base-frame-counter)))
)
(else
@ -668,14 +670,14 @@
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as
object
uint
(cond
((= v1-0 'death-start)
(the-as uint (drop-pickup (-> self fact-info-override) #t *entity-pool* (-> self fact-info-override) 0))
)
((= v1-0 'death-end)
(let ((v0-0 (logior (-> self draw status) 2)))
(set! (-> self draw status) v0-0)
(let ((v0-0 (the-as uint (logior (-> self draw status) (draw-status drwf01)))))
(set! (-> self draw status) (the-as draw-status v0-0))
v0-0
)
)

View File

@ -7,12 +7,6 @@
(declare-type qbert-plat-master process-drawable)
(declare-type qbert-plat rigid-body-platform)
(define-extern qbert-plat-master-wait-for-door (state qbert-plat-master)) ;; unknown type
(define-extern qbert-plat-master-idle (state qbert-plat-master)) ;; unknown type
(define-extern qbert-plat-master-do-door (state symbol qbert-plat-master)) ;; unknown type
(define-extern qbert-plat-wait-for-master (state qbert-plat)) ;; unknown type
(define-extern qbert-plat-on-mimic (state qbert-plat)) ;; unknown type
(define-extern qbert-plat-on-die (state qbert-plat)) ;; unknown type
;; DECOMP BEGINS
@ -44,6 +38,11 @@
:method-count-assert 35
:size-assert #x300
:flag-assert #x2302900300
(:states
qbert-plat-on-die
qbert-plat-on-mimic
qbert-plat-wait-for-master
)
)
@ -101,6 +100,11 @@
(:methods
(plat-state-set? (_type_ uint) symbol 20)
)
(:states
(qbert-plat-master-do-door symbol)
qbert-plat-master-idle
qbert-plat-master-wait-for-door
)
)

File diff suppressed because it is too large Load Diff

View File

@ -37,6 +37,9 @@
(TODO-RENAME-26 (_type_) float 26)
(TODO-RENAME-27 (_type_) float 27)
)
(:states
sunkenfisha-idle
)
)
@ -69,21 +72,18 @@
(none)
)
(defmethod
TODO-RENAME-orbit?-21
sunkenfisha
((obj sunkenfisha) (arg0 vector) (arg1 float) (arg2 vector))
(defmethod TODO-RENAME-orbit?-21 sunkenfisha ((obj sunkenfisha) (arg0 vector) (arg1 float) (arg2 vector))
(eval-path-curve! (-> obj path) arg0 arg1 'interp)
(vector+! arg0 arg0 (-> obj path-trans-offset))
(let ((s2-0 (new 'stack-no-clear 'vector)))
(TODO-RENAME-14 (-> obj path) s2-0 arg1)
(let ((f0-2 (atan (-> s2-0 x) (-> s2-0 z)))
(s4-1 (new 'stack-no-clear 'vector))
)
(vector-rotate-around-y! s4-1 arg2 f0-2)
(vector+! arg0 arg0 s4-1)
(TODO-RENAME-14 (-> obj path) s2-0 arg1)
(let ((f0-2 (atan (-> s2-0 x) (-> s2-0 z)))
(s4-1 (new 'stack-no-clear 'vector))
)
(vector-rotate-around-y! s4-1 arg2 f0-2)
(vector+! arg0 arg0 s4-1)
)
)
)
)
(defmethod TODO-RENAME-24 sunkenfisha ((obj sunkenfisha))
@ -91,250 +91,160 @@
(s3-0 (new 'stack-no-clear 'matrix))
(gp-0 (new 'stack-no-clear 'vector))
)
(vector-! s4-0 (-> obj targ-local-path-offset) (-> obj local-path-offset))
(when (>= (* 4096.0 (-> *display* seconds-per-frame)) (vector-length s4-0))
(until (< (* 16384.0 (-> *display* seconds-per-frame)) (vector-length s4-0))
(set!
(-> obj targ-local-path-offset x)
(rand-vu-float-range
(- (-> obj max-local-path-offset x))
(-> obj max-local-path-offset x)
)
(vector-! s4-0 (-> obj targ-local-path-offset) (-> obj local-path-offset))
(when (>= (* 4096.0 (-> *display* seconds-per-frame)) (vector-length s4-0))
(until (< (* 16384.0 (-> *display* seconds-per-frame)) (vector-length s4-0))
(set! (-> obj targ-local-path-offset x)
(rand-vu-float-range (- (-> obj max-local-path-offset x)) (-> obj max-local-path-offset x))
)
(set! (-> obj targ-local-path-offset y)
(rand-vu-float-range (- (-> obj max-local-path-offset y)) (-> obj max-local-path-offset y))
)
(vector-! s4-0 (-> obj targ-local-path-offset) (-> obj local-path-offset))
)
)
(set!
(-> obj targ-local-path-offset y)
(rand-vu-float-range
(- (-> obj max-local-path-offset y))
(-> obj max-local-path-offset y)
)
(vector-normalize! s4-0 1.0)
(matrix-from-two-vectors-max-angle-partial!
s3-0
(-> obj local-path-offset-dir)
s4-0
(* 16384.0 (-> *display* seconds-per-frame))
0.1
)
(vector-! s4-0 (-> obj targ-local-path-offset) (-> obj local-path-offset))
)
(vector-matrix*! (-> obj local-path-offset-dir) (-> obj local-path-offset-dir) s3-0)
(vector-normalize! (-> obj local-path-offset-dir) 1.0)
(vector-float*! gp-0 (-> obj local-path-offset-dir) (* 4096.0 (-> *display* seconds-per-frame)))
(vector+! (-> obj local-path-offset) (-> obj local-path-offset) gp-0)
)
(vector-normalize! s4-0 1.0)
(matrix-from-two-vectors-max-angle-partial!
s3-0
(-> obj local-path-offset-dir)
s4-0
(* 16384.0 (-> *display* seconds-per-frame))
0.1
)
(vector-matrix*!
(-> obj local-path-offset-dir)
(-> obj local-path-offset-dir)
s3-0
)
(vector-normalize! (-> obj local-path-offset-dir) 1.0)
(vector-float*!
gp-0
(-> obj local-path-offset-dir)
(* 4096.0 (-> *display* seconds-per-frame))
)
(vector+! (-> obj local-path-offset) (-> obj local-path-offset) gp-0)
)
)
(defmethod dummy-25 sunkenfisha ((obj sunkenfisha))
(let* ((f0-0 (-> obj path-speed))
(f1-1
(seek
f0-0
(-> obj targ-path-speed)
(* (-> obj path-speed-seek-speed) (-> *display* seconds-per-frame))
(seek f0-0 (-> obj targ-path-speed) (* (-> obj path-speed-seek-speed) (-> *display* seconds-per-frame)))
)
)
)
(set! (-> obj path-speed) f1-1)
(let
((f30-0
(+
(-> obj path-u)
(* (-> obj path-dir) f1-1 (-> *display* seconds-per-frame))
)
(set! (-> obj path-speed) f1-1)
(let ((f30-0 (+ (-> obj path-u) (* (-> obj path-dir) f1-1 (-> *display* seconds-per-frame)))))
(cond
((< f30-0 0.0)
(set! f30-0 (- f30-0))
(TODO-RENAME-20 obj)
)
((< 1.0 f30-0)
(+! f30-0 (* 2.0 (- 1.0 f30-0)))
(TODO-RENAME-20 obj)
)
)
(set! (-> obj path-u) f30-0)
)
)
(cond
((< f30-0 0.0)
(set! f30-0 (- f30-0))
(TODO-RENAME-20 obj)
)
((< 1.0 f30-0)
(+! f30-0 (* 2.0 (- 1.0 f30-0)))
(TODO-RENAME-20 obj)
)
)
(set! (-> obj path-u) f30-0)
)
)
(none)
)
(defmethod TODO-RENAME-23 sunkenfisha ((obj sunkenfisha))
(let ((s5-0 (new 'stack-no-clear 'vector)))
(set-vector!
s5-0
(- (vector-x-angle (-> obj root transv)))
(vector-y-angle (-> obj root transv))
0.0
1.0
(set-vector! s5-0 (- (vector-x-angle (-> obj root transv))) (vector-y-angle (-> obj root transv)) 0.0 1.0)
(set! (-> obj facing-rot x)
(deg-seek-smooth (-> obj facing-rot x) (-> s5-0 x) (* 16384.0 (-> *display* seconds-per-frame)) 0.1)
)
(set! (-> obj facing-rot y)
(deg-seek-smooth (-> obj facing-rot y) (-> s5-0 y) (* 32768.0 (-> *display* seconds-per-frame)) 0.1)
)
)
(set!
(-> obj facing-rot x)
(deg-seek-smooth
(-> obj facing-rot x)
(-> s5-0 x)
(* 16384.0 (-> *display* seconds-per-frame))
0.1
)
)
(set!
(-> obj facing-rot y)
(deg-seek-smooth
(-> obj facing-rot y)
(-> s5-0 y)
(* 32768.0 (-> *display* seconds-per-frame))
0.1
)
)
)
(quaternion-zxy! (-> obj root quat) (-> obj facing-rot))
)
(defmethod TODO-RENAME-20 sunkenfisha ((obj sunkenfisha))
(set! (-> obj path-dir) (- (-> obj path-dir)))
(set! (-> obj path-speed) 0.0)
(set!
(-> obj targ-path-speed)
(rand-vu-float-range
(-> obj path-normal-speed-lo)
(-> obj path-normal-speed-hi)
)
)
(set!
(-> obj change-path-dir-time)
(the-as
uint
(+ (-> *display* base-frame-counter) (rand-vu-int-range 1500 5400))
)
)
(set!
(-> obj targ-local-path-offset y)
(* 0.5 (+ (-> obj targ-local-path-offset y) (-> obj local-path-offset y)))
)
(set! (-> obj targ-path-speed)
(rand-vu-float-range (-> obj path-normal-speed-lo) (-> obj path-normal-speed-hi))
)
(set! (-> obj change-path-dir-time)
(the-as uint (+ (-> *display* base-frame-counter) (rand-vu-int-range 1500 5400)))
)
(set! (-> obj targ-local-path-offset y)
(* 0.5 (+ (-> obj targ-local-path-offset y) (-> obj local-path-offset y)))
)
(let* ((f0-8 (-> obj local-path-offset x))
(f1-3 (- (-> obj targ-local-path-offset x) f0-8))
)
(when (< (fabs f1-3) 12288.0)
(cond
((>= f1-3 0.0)
(let ((f0-10 (fmin (+ 12288.0 f0-8) (-> obj max-local-path-offset x))))
(set! (-> obj targ-local-path-offset x) f0-10)
f0-10
)
(when (< (fabs f1-3) 12288.0)
(cond
((>= f1-3 0.0)
(let ((f0-10 (fmin (+ 12288.0 f0-8) (-> obj max-local-path-offset x))))
(set! (-> obj targ-local-path-offset x) f0-10)
f0-10
)
)
(else
(let ((f0-12 (fmax (+ -12288.0 f0-8) (- (-> obj max-local-path-offset x)))))
(set! (-> obj targ-local-path-offset x) f0-12)
f0-12
)
)
)
)
(else
(let
((f0-12 (fmax (+ -12288.0 f0-8) (- (-> obj max-local-path-offset x)))))
(set! (-> obj targ-local-path-offset x) f0-12)
f0-12
)
)
)
)
)
)
(defstate sunkenfisha-idle (sunkenfisha)
:trans
(behavior ()
(local-vars (at-0 int))
(rlet ((vf0 :class vf)
(vf1 :class vf)
(vf2 :class vf)
(local-vars (at-0 int))
(rlet ((vf0 :class vf)
(vf1 :class vf)
(vf2 :class vf)
)
(init-vf0-vector)
(if (>= (-> *display* base-frame-counter) (the-as int (-> self change-path-dir-time)))
(TODO-RENAME-20 self)
)
(init-vf0-vector)
(if
(>=
(-> *display* base-frame-counter)
(the-as int (-> self change-path-dir-time))
(TODO-RENAME-24 self)
(dummy-25 self)
(let ((gp-0 (new 'stack-no-clear 'vector)))
(TODO-RENAME-orbit?-21 self gp-0 (-> self path-u) (-> self local-path-offset))
(vector-! (-> self root transv) gp-0 (-> self root trans))
(set! (-> self root trans quad) (-> gp-0 quad))
)
(let ((v1-16 (-> self root transv)))
(.lvf vf1 (&-> (-> self root transv) quad))
(let ((f0-1 (-> *display* frames-per-second)))
(.mov at-0 f0-1)
)
(.mov vf2 at-0)
(.mov.vf vf1 vf0 :mask #b1000)
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
(.svf (&-> v1-16 quad) vf1)
)
(TODO-RENAME-23 self)
(none)
)
(TODO-RENAME-20 self)
)
(TODO-RENAME-24 self)
(dummy-25 self)
(let ((gp-0 (new 'stack-no-clear 'vector)))
(TODO-RENAME-orbit?-21
self
gp-0
(-> self path-u)
(-> self local-path-offset)
)
(vector-! (-> self root transv) gp-0 (-> self root trans))
(set! (-> self root trans quad) (-> gp-0 quad))
)
(let ((v1-16 (-> self root transv)))
(.lvf vf1 (&-> (-> self root transv) quad))
(let ((f0-1 (-> *display* frames-per-second)))
(.mov at-0 f0-1)
)
(.mov vf2 at-0)
(.mov.vf vf1 vf0 :mask #b1000)
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
(.svf (&-> v1-16 quad) vf1)
)
(TODO-RENAME-23 self)
(none)
)
)
:code
(behavior ()
(while #t
(let ((a0-0 (-> self skel root-channel 0)))
(set!
(-> a0-0 frame-group)
(the-as art-joint-anim (-> self draw art-group data 6))
)
(set!
(-> a0-0 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 6))
data
0
length
)
-1
(while #t
(let ((a0-0 (-> self skel root-channel 0)))
(set! (-> a0-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 6)))
(set! (-> a0-0 param 0)
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 6)) data 0 length) -1))
)
(set! (-> a0-0 param 1) 1.0)
(set! (-> a0-0 frame-num) 0.0)
(joint-control-channel-group! a0-0 (the-as art-joint-anim (-> self draw art-group data 6)) num-func-seek!)
)
(until (ja-done? 0)
(suspend)
(let ((a0-1 (-> self skel root-channel 0)))
(set! (-> a0-1 param 0) (the float (+ (-> a0-1 frame-group data 0 length) -1)))
(set! (-> a0-1 param 1) 1.0)
(joint-control-channel-group-eval! a0-1 (the-as art-joint-anim #f) num-func-seek!)
)
)
)
)
(set! (-> a0-0 param 1) 1.0)
(set! (-> a0-0 frame-num) 0.0)
(joint-control-channel-group!
a0-0
(the-as art-joint-anim (-> self draw art-group data 6))
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-1 (-> self skel root-channel 0)))
(set!
(-> a0-1 param 0)
(the float (+ (-> a0-1 frame-group data 0 length) -1))
)
(set! (-> a0-1 param 1) 1.0)
(joint-control-channel-group-eval!
a0-1
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
(none)
)
(none)
)
:post
(the-as (function none :behavior sunkenfisha) ja-post)
)
@ -344,30 +254,30 @@
(process-drawable-from-entity! obj (the-as entity-actor (-> obj entity)))
(set-vector! (-> obj root scale) 6.0 6.0 6.0 1.0)
(let ((v1-3 (rand-vu-int-count 3)))
(cond
((zero? v1-3)
(initialize-skeleton obj *sunkenfisha-red-yellow-sg* '())
)
((= v1-3 1)
(initialize-skeleton obj *sunkenfisha-yellow-blue-sg* '())
)
((= v1-3 2)
(initialize-skeleton obj *sunkenfisha-yellow-eye-sg* '())
)
(cond
((zero? v1-3)
(initialize-skeleton obj *sunkenfisha-red-yellow-sg* '())
)
((= v1-3 1)
(initialize-skeleton obj *sunkenfisha-yellow-blue-sg* '())
)
((= v1-3 2)
(initialize-skeleton obj *sunkenfisha-yellow-eye-sg* '())
)
)
)
)
(ja-channel-set! 1)
(let ((s5-0 (-> obj skel root-channel 0)))
(joint-control-channel-group-eval!
s5-0
(the-as art-joint-anim (-> obj draw art-group data 6))
num-func-identity
(joint-control-channel-group-eval!
s5-0
(the-as art-joint-anim (-> obj draw art-group data 6))
num-func-identity
)
(let ((f0-4 0.0))
(set! (-> s5-0 frame-num) f0-4)
f0-4
)
)
(let ((f0-4 0.0))
(set! (-> s5-0 frame-num) f0-4)
f0-4
)
)
)
(defmethod TODO-RENAME-27 sunkenfisha ((obj sunkenfisha))
@ -375,137 +285,77 @@
(vector-reset! (-> obj path-trans-offset))
(set! (-> obj path-u) (rand-vu-float-range 0.0 1.0))
(if (zero? (rand-vu-int-count 2))
(set! (-> obj path-dir) 1.0)
(set! (-> obj path-dir) -1.0)
)
(set! (-> obj path-dir) 1.0)
(set! (-> obj path-dir) -1.0)
)
(set-vector! (-> obj max-local-path-offset) 16384.0 28672.0 0.0 1.0)
(set! sv-16 (new 'static 'res-tag))
(let
((v1-5
(res-lump-data
(-> obj entity)
'path-max-offset
(pointer float)
:tag-ptr
(& sv-16)
(let ((v1-5 (res-lump-data (-> obj entity) 'path-max-offset (pointer float) :tag-ptr (& sv-16))))
(when v1-5
(set! (-> obj max-local-path-offset x) (-> v1-5 0))
(set! (-> obj max-local-path-offset y) (-> v1-5 1))
)
)
)
(when v1-5
(set! (-> obj max-local-path-offset x) (-> v1-5 0))
(set! (-> obj max-local-path-offset y) (-> v1-5 1))
)
)
(set-vector! (-> obj local-path-offset) 0.0 0.0 0.0 1.0)
(set!
(-> obj local-path-offset x)
(rand-vu-float-range
(- (-> obj max-local-path-offset x))
(-> obj max-local-path-offset x)
)
)
(set!
(-> obj local-path-offset y)
(rand-vu-float-range
(- (-> obj max-local-path-offset y))
(-> obj max-local-path-offset y)
)
)
(set! (-> obj local-path-offset x)
(rand-vu-float-range (- (-> obj max-local-path-offset x)) (-> obj max-local-path-offset x))
)
(set! (-> obj local-path-offset y)
(rand-vu-float-range (- (-> obj max-local-path-offset y)) (-> obj max-local-path-offset y))
)
(set! (-> obj targ-local-path-offset quad) (-> obj local-path-offset quad))
(set!
(-> obj targ-local-path-offset x)
(rand-vu-float-range
(- (-> obj max-local-path-offset x))
(-> obj max-local-path-offset x)
)
)
(set!
(-> obj targ-local-path-offset y)
(rand-vu-float-range
(- (-> obj max-local-path-offset y))
(-> obj max-local-path-offset y)
)
)
(vector-!
(-> obj local-path-offset-dir)
(-> obj targ-local-path-offset)
(-> obj local-path-offset)
)
(set! (-> obj targ-local-path-offset x)
(rand-vu-float-range (- (-> obj max-local-path-offset x)) (-> obj max-local-path-offset x))
)
(set! (-> obj targ-local-path-offset y)
(rand-vu-float-range (- (-> obj max-local-path-offset y)) (-> obj max-local-path-offset y))
)
(vector-! (-> obj local-path-offset-dir) (-> obj targ-local-path-offset) (-> obj local-path-offset))
(vector-normalize! (-> obj local-path-offset-dir) 1.0)
(set!
(-> obj change-path-dir-time)
(the-as
uint
(+ (-> *display* base-frame-counter) (rand-vu-int-range 1500 5400))
)
)
(set! (-> obj change-path-dir-time)
(the-as uint (+ (-> *display* base-frame-counter) (rand-vu-int-range 1500 5400)))
)
(set! (-> obj path) (new 'process 'curve-control obj 'path -1000000000.0))
(logior!
(-> obj path flags)
(path-control-flag display draw-line draw-point draw-text)
)
(logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text))
(set! sv-32 (new 'static 'res-tag))
(let
((v1-16
(res-lump-data
(-> obj entity)
'path-trans-offset
(pointer float)
:tag-ptr
(& sv-32)
(let ((v1-16 (res-lump-data (-> obj entity) 'path-trans-offset (pointer float) :tag-ptr (& sv-32))))
(when v1-16
(+! (-> obj path-trans-offset x) (-> v1-16 0))
(+! (-> obj path-trans-offset y) (-> v1-16 1))
(+! (-> obj path-trans-offset z) (-> v1-16 2))
)
)
)
(when v1-16
(+! (-> obj path-trans-offset x) (-> v1-16 0))
(+! (-> obj path-trans-offset y) (-> v1-16 1))
(+! (-> obj path-trans-offset z) (-> v1-16 2))
)
)
(if (< (-> obj path curve num-cverts) 2)
(go process-drawable-art-error "bad path")
)
(go process-drawable-art-error "bad path")
)
(let ((f28-0 8192.0)
(f30-0 26624.0)
)
(set! sv-48 (new 'static 'res-tag))
(let
((v1-23
(res-lump-data (-> obj entity) 'speed (pointer float) :tag-ptr (& sv-48))
(set! sv-48 (new 'static 'res-tag))
(let ((v1-23 (res-lump-data (-> obj entity) 'speed (pointer float) :tag-ptr (& sv-48))))
(when v1-23
(set! f28-0 (-> v1-23 0))
(set! f30-0 (-> v1-23 1))
)
)
(let ((f0-35 (path-distance (-> obj path))))
(set! (-> obj path-normal-speed-lo) (/ f28-0 f0-35))
(set! (-> obj path-normal-speed-hi) (/ f30-0 f0-35))
)
)
(when v1-23
(set! f28-0 (-> v1-23 0))
(set! f30-0 (-> v1-23 1))
)
)
(let ((f0-35 (path-distance (-> obj path))))
(set! (-> obj path-normal-speed-lo) (/ f28-0 f0-35))
(set! (-> obj path-normal-speed-hi) (/ f30-0 f0-35))
)
)
(set!
(-> obj path-speed-seek-speed)
(* 2.0 (- (-> obj path-normal-speed-hi) (-> obj path-normal-speed-lo)))
)
(set!
(-> obj path-speed)
(rand-vu-float-range
(-> obj path-normal-speed-lo)
(-> obj path-normal-speed-hi)
)
)
(set! (-> obj path-speed-seek-speed) (* 2.0 (- (-> obj path-normal-speed-hi) (-> obj path-normal-speed-lo))))
(set! (-> obj path-speed) (rand-vu-float-range (-> obj path-normal-speed-lo) (-> obj path-normal-speed-hi)))
(set! (-> obj targ-path-speed) (-> obj path-speed))
(let ((s4-0 (new 'stack-no-clear 'vector)))
(TODO-RENAME-14 (-> obj path) s4-0 (-> obj path-u))
(set-vector! (-> obj facing-rot) 0.0 (atan (-> s4-0 x) (-> s4-0 z)) 0.0 1.0)
)
(when (< (-> obj path-dir) 0.0)
(let ((f0-52 (- (-> obj facing-rot y))))
(set! (-> obj facing-rot y) f0-52)
f0-52
(TODO-RENAME-14 (-> obj path) s4-0 (-> obj path-u))
(set-vector! (-> obj facing-rot) 0.0 (atan (-> s4-0 x) (-> s4-0 z)) 0.0 1.0)
)
(when (< (-> obj path-dir) 0.0)
(let ((f0-52 (- (-> obj facing-rot y))))
(set! (-> obj facing-rot y) f0-52)
f0-52
)
)
)
)
(defbehavior sunkenfisha-init-by-other sunkenfisha ((arg0 entity))
@ -519,38 +369,20 @@
(defmethod init-from-entity! sunkenfisha ((obj sunkenfisha) (arg0 entity-actor))
(TODO-RENAME-26 obj)
(TODO-RENAME-27 obj)
(let
((s5-0
(+
(res-lump-value
(-> obj entity)
'count
uint128
:default
(the-as uint128 1)
)
-1
)
)
)
(while (> (the-as int s5-0) 0)
(let ((s4-0 (get-process *default-dead-pool* sunkenfisha #x4000)))
(when s4-0
(let ((t9-4 (method-of-type sunkenfisha activate)))
(t9-4
(the-as sunkenfisha s4-0)
obj
'sunkenfisha
(the-as pointer #x70004000)
(let ((s5-0 (+ (res-lump-value (-> obj entity) 'count uint128 :default (the-as uint128 1)) -1)))
(while (> (the-as int s5-0) 0)
(let ((s4-0 (get-process *default-dead-pool* sunkenfisha #x4000)))
(when s4-0
(let ((t9-4 (method-of-type sunkenfisha activate)))
(t9-4 (the-as sunkenfisha s4-0) obj 'sunkenfisha (the-as pointer #x70004000))
)
(run-now-in-process s4-0 sunkenfisha-init-by-other (-> obj entity))
(-> s4-0 ppointer)
)
)
)
(run-now-in-process s4-0 sunkenfisha-init-by-other (-> obj entity))
(-> s4-0 ppointer)
(+! s5-0 -1)
)
)
(+! s5-0 -1)
)
)
(go sunkenfisha-idle)
(none)
)

File diff suppressed because it is too large Load Diff

View File

@ -7,10 +7,6 @@
(define-extern *tube-surface* surface) ;; unknown type
(define-extern target-tube-hit (state handle attack-info target)) ;; unknown type
(define-extern target-tube-jump (state float float target)) ;; unknown type
(define-extern target-tube-death (state symbol target)) ;; unknown type
(define-extern target-tube (state target)) ;; unknown type
;; DECOMP BEGINS

View File

@ -6,11 +6,6 @@
;; dgos: L1, SUN, SUNKEN
(declare-type wall-plat process-drawable)
(define-extern wall-plat-sync-idle (state wall-plat)) ;; unknown type
(define-extern wall-plat-retracted (state wall-plat)) ;; unknown type
(define-extern wall-plat-retracting (state wall-plat)) ;; unknown type
(define-extern wall-plat-extended (state wall-plat)) ;; unknown type
(define-extern wall-plat-extending (state wall-plat)) ;; unknown type
;; DECOMP BEGINS
@ -26,6 +21,13 @@
:method-count-assert 20
:size-assert #xf0
:flag-assert #x14008000f0
(:states
wall-plat-extended
wall-plat-extending
wall-plat-retracted
wall-plat-retracting
wall-plat-sync-idle
)
)
@ -39,162 +41,114 @@
(defstate wall-plat-retracted (wall-plat)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('trigger)
(go wall-plat-extending)
)
)
)
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (case arg2
(('trigger)
(go wall-plat-extending)
)
)
)
:code
(behavior ()
(set! (-> self extended-amount) 0.0)
(TODO-RENAME-30 (-> self root-override) (-> self in-trans))
(transform-post)
(clear-collide-with-as (-> self root-override))
(while #t
(logior! (-> self mask) (process-mask sleep-code))
(suspend)
(set! (-> self extended-amount) 0.0)
(TODO-RENAME-30 (-> self root-override) (-> self in-trans))
(transform-post)
(clear-collide-with-as (-> self root-override))
(while #t
(logior! (-> self mask) (process-mask sleep-code))
(suspend)
)
(none)
)
(none)
)
)
(defstate wall-plat-extending (wall-plat)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (when (= v1-0 'touch)
(send-event arg0 'no-look-around 450)
#f
)
)
(let ((v1-0 arg2))
(the-as object (when (= v1-0 'touch)
(send-event arg0 'no-look-around 450)
#f
)
)
)
)
)
:enter
(behavior ()
(sound-play-by-name
(static-sound-name "wall-plat")
(new-sound-id)
1024
0
0
1
#t
)
(none)
)
(behavior () (sound-play-by-name (static-sound-name "wall-plat") (new-sound-id) 1024 0 0 1 #t) (none))
:trans
(the-as (function none :behavior wall-plat) rider-trans)
:code
(behavior ()
(restore-collide-with-as (-> self root-override))
(set! (-> self state-time) (-> *display* base-frame-counter))
(while #t
(set!
(-> self extended-amount)
(seek
(-> self extended-amount)
1.0
(* 2.5 (-> *display* seconds-per-frame))
(restore-collide-with-as (-> self root-override))
(set! (-> self state-time) (-> *display* base-frame-counter))
(while #t
(set! (-> self extended-amount) (seek (-> self extended-amount) 1.0 (* 2.5 (-> *display* seconds-per-frame))))
(let ((gp-0 (new 'stack-no-clear 'vector)))
(vector-lerp! gp-0 (-> self in-trans) (-> self out-trans) (-> self extended-amount))
(TODO-RENAME-30 (-> self root-override) gp-0)
)
(suspend)
(if (= (-> self extended-amount) 1.0)
(go wall-plat-extended)
)
)
)
(let ((gp-0 (new 'stack-no-clear 'vector)))
(vector-lerp!
gp-0
(-> self in-trans)
(-> self out-trans)
(-> self extended-amount)
)
(TODO-RENAME-30 (-> self root-override) gp-0)
)
(suspend)
(if (= (-> self extended-amount) 1.0)
(go wall-plat-extended)
)
(none)
)
(none)
)
:post
(the-as (function none :behavior wall-plat) rider-post)
)
(defstate wall-plat-extended (wall-plat)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('untrigger)
(go wall-plat-retracting)
)
)
)
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (case arg2
(('untrigger)
(go wall-plat-retracting)
)
)
)
:code
(behavior ()
(set! (-> self extended-amount) 1.0)
(TODO-RENAME-30 (-> self root-override) (-> self out-trans))
(transform-post)
(while #t
(logior! (-> self mask) (process-mask sleep-code))
(suspend)
(set! (-> self extended-amount) 1.0)
(TODO-RENAME-30 (-> self root-override) (-> self out-trans))
(transform-post)
(while #t
(logior! (-> self mask) (process-mask sleep-code))
(suspend)
)
(none)
)
(none)
)
)
(defstate wall-plat-retracting (wall-plat)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (when (= v1-0 'touch)
(send-event arg0 'no-look-around 450)
#f
)
)
(let ((v1-0 arg2))
(the-as object (when (= v1-0 'touch)
(send-event arg0 'no-look-around 450)
#f
)
)
)
)
)
:enter
(behavior ()
(sound-play-by-name
(static-sound-name "wall-plat")
(new-sound-id)
1024
0
0
1
#t
)
(none)
)
(behavior () (sound-play-by-name (static-sound-name "wall-plat") (new-sound-id) 1024 0 0 1 #t) (none))
:trans
(the-as (function none :behavior wall-plat) rider-trans)
:code
(behavior ()
(set! (-> self state-time) (-> *display* base-frame-counter))
(while #t
(set!
(-> self extended-amount)
(seek
(-> self extended-amount)
0.0
(* 2.5 (-> *display* seconds-per-frame))
(set! (-> self state-time) (-> *display* base-frame-counter))
(while #t
(set! (-> self extended-amount) (seek (-> self extended-amount) 0.0 (* 2.5 (-> *display* seconds-per-frame))))
(let ((gp-0 (new 'stack-no-clear 'vector)))
(vector-lerp! gp-0 (-> self in-trans) (-> self out-trans) (-> self extended-amount))
(TODO-RENAME-30 (-> self root-override) gp-0)
)
(suspend)
(if (= (-> self extended-amount) 0.0)
(go wall-plat-retracted)
)
)
)
(let ((gp-0 (new 'stack-no-clear 'vector)))
(vector-lerp!
gp-0
(-> self in-trans)
(-> self out-trans)
(-> self extended-amount)
)
(TODO-RENAME-30 (-> self root-override) gp-0)
)
(suspend)
(if (= (-> self extended-amount) 0.0)
(go wall-plat-retracted)
)
(none)
)
(none)
)
:post
(the-as (function none :behavior wall-plat) rider-post)
)
@ -202,66 +156,52 @@
(defstate wall-plat-sync-idle (wall-plat)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (when (= v1-0 'touch)
(send-event arg0 'no-look-around 450)
#f
)
)
(let ((v1-0 arg2))
(the-as object (when (= v1-0 'touch)
(send-event arg0 'no-look-around 450)
#f
)
)
)
)
)
:enter
(behavior ()
(logclear! (-> self mask) (process-mask actor-pause))
(none)
)
(behavior () (logclear! (-> self mask) (process-mask actor-pause)) (none))
:exit
(behavior ()
(logior! (-> self mask) (process-mask actor-pause))
(none)
)
(behavior () (logior! (-> self mask) (process-mask actor-pause)) (none))
:trans
(the-as (function none :behavior wall-plat) rider-trans)
:code
(behavior ()
(let ((gp-0 #f))
(while #t
(let ((f30-0 (get-current-phase-with-mirror (-> self sync))))
(let ((s5-0 (new 'stack-no-clear 'vector)))
(vector-lerp! s5-0 (-> self in-trans) (-> self out-trans) f30-0)
(TODO-RENAME-30 (-> self root-override) s5-0)
)
(cond
((= f30-0 0.0)
(set! gp-0 #f)
(clear-collide-with-as (-> self root-override))
)
((= f30-0 1.0)
(set! gp-0 #f)
(restore-collide-with-as (-> self root-override))
)
(else
(when (not gp-0)
(sound-play-by-name
(static-sound-name "wall-plat")
(new-sound-id)
1024
0
0
1
#t
(let ((gp-0 #f))
(while #t
(let ((f30-0 (get-current-phase-with-mirror (-> self sync))))
(let ((s5-0 (new 'stack-no-clear 'vector)))
(vector-lerp! s5-0 (-> self in-trans) (-> self out-trans) f30-0)
(TODO-RENAME-30 (-> self root-override) s5-0)
)
(cond
((= f30-0 0.0)
(set! gp-0 #f)
(clear-collide-with-as (-> self root-override))
)
((= f30-0 1.0)
(set! gp-0 #f)
(restore-collide-with-as (-> self root-override))
)
(else
(when (not gp-0)
(sound-play-by-name (static-sound-name "wall-plat") (new-sound-id) 1024 0 0 1 #t)
(set! gp-0 #t)
)
(restore-collide-with-as (-> self root-override))
)
)
)
(set! gp-0 #t)
)
(restore-collide-with-as (-> self root-override))
(suspend)
)
)
)
(suspend)
)
(none)
)
(none)
)
:post
(the-as (function none :behavior wall-plat) rider-post)
)
@ -269,81 +209,60 @@
(defmethod init-from-entity! wall-plat ((obj wall-plat) (arg0 entity-actor))
(set! (-> obj extended-amount) 0.0)
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(let
((s4-0
(new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))
)
)
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set!
(-> s4-0 no-reaction)
(the-as
(function collide-shape-moving collide-shape-intersect vector vector none)
nothing
)
)
(dummy-29 s4-0 1)
(let
((s3-0
(new
'process
'collide-shape-prim-mesh
s4-0
(the-as uint 0)
(the-as uint 0)
)
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set! (-> s4-0 no-reaction)
(the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing)
)
(dummy-29 s4-0 1)
(let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 19))
(set! (-> s3-0 prim-core offense) 4)
(set! (-> s3-0 transform-index) 2)
(set-vector! (-> s3-0 local-sphere) 0.0 -6144.0 -12288.0 19456.0)
(set-root-prim! s4-0 s3-0)
)
)
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 19))
(set! (-> s3-0 prim-core offense) 4)
(set! (-> s3-0 transform-index) 2)
(set-vector! (-> s3-0 local-sphere) 0.0 -6144.0 -12288.0 19456.0)
(set-root-prim! s4-0 s3-0)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(backup-collide-with-as s4-0)
(set! (-> obj root-override) s4-0)
)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(backup-collide-with-as s4-0)
(set! (-> obj root-override) s4-0)
)
(process-drawable-from-entity! obj arg0)
(initialize-skeleton obj *wall-plat-sg* '())
(logior! (-> obj skel status) 1)
(set!
(-> obj use-sync?)
(load-params! (-> obj sync) obj (the-as uint 1500) 0.0 0.2 0.2)
)
(set! (-> obj use-sync?) (load-params! (-> obj sync) obj (the-as uint 1500) 0.0 0.2 0.2))
(let ((f30-0 (quaternion-y-angle (-> obj root-override quat)))
(s4-1 (new 'stack-no-clear 'vector))
)
(set-vector! s4-1 0.0 0.0 (+ 1638.4 (res-lump-float arg0 'tunemeters)) 1.0)
(vector-rotate-around-y! s4-1 s4-1 f30-0)
(vector+! (-> obj out-trans) (-> obj root-override trans) s4-1)
(set-vector! s4-1 0.0 0.0 20480.0 1.0)
(vector-rotate-around-y! s4-1 s4-1 f30-0)
(vector+! (-> obj in-trans) (-> obj out-trans) s4-1)
)
(set-vector! s4-1 0.0 0.0 (+ 1638.4 (res-lump-float arg0 'tunemeters)) 1.0)
(vector-rotate-around-y! s4-1 s4-1 f30-0)
(vector+! (-> obj out-trans) (-> obj root-override trans) s4-1)
(set-vector! s4-1 0.0 0.0 20480.0 1.0)
(vector-rotate-around-y! s4-1 s4-1 f30-0)
(vector+! (-> obj in-trans) (-> obj out-trans) s4-1)
)
(ja-channel-push! 1 0)
(let ((s5-1 (-> obj skel root-channel 0)))
(joint-control-channel-group-eval!
s5-1
(the-as art-joint-anim (-> obj draw art-group data 2))
num-func-identity
(joint-control-channel-group-eval!
s5-1
(the-as art-joint-anim (-> obj draw art-group data 2))
num-func-identity
)
(set! (-> s5-1 frame-num) 0.0)
)
(set! (-> s5-1 frame-num) 0.0)
)
(ja-post)
(dummy-47 (-> obj root-override))
(cond
((-> obj use-sync?)
(logclear! (-> obj mask) (process-mask actor-pause))
(go wall-plat-sync-idle)
((-> obj use-sync?)
(logclear! (-> obj mask) (process-mask actor-pause))
(go wall-plat-sync-idle)
)
(else
(go wall-plat-retracted)
)
)
(else
(go wall-plat-retracted)
)
)
(none)
)

View File

@ -8,11 +8,6 @@
(declare-type wedge-plat-outer process)
(declare-type wedge-plat-master process)
(declare-type wedge-plat process)
(define-extern wedge-plat-outer-idle (state wedge-plat-outer)) ;; unknown type
(define-extern wedge-plat-outer-tip (state wedge-plat-outer)) ;; unknown type
(define-extern wedge-plat-idle (state wedge-plat)) ;; unknown type
(define-extern wedge-plat-tip (state wedge-plat)) ;; unknown type
(define-extern wedge-plat-master-idle (state wedge-plat-master)) ;; unknown type
;; DECOMP BEGINS
@ -26,61 +21,33 @@
:method-count-assert 14
:size-assert #x8c
:flag-assert #xe0020008c
(:states
wedge-plat-master-idle
)
)
(defstate wedge-plat-master-idle (wedge-plat-master)
:code
(behavior ()
(while #t
(set!
(-> self rotate-inner)
(the
float
(sar
(shl
(the
int
(+
(-> self rotate-inner)
(* (-> self rotspeed) (-> *display* seconds-per-frame))
)
)
48
)
48
)
(while #t
(set! (-> self rotate-inner)
(the float
(sar (shl (the int (+ (-> self rotate-inner) (* (-> self rotspeed) (-> *display* seconds-per-frame)))) 48) 48)
)
)
(set! (-> self rotate-outer)
(the float
(sar (shl (the int (- (-> self rotate-outer) (* (-> self rotspeed) (-> *display* seconds-per-frame)))) 48) 48)
)
)
(suspend)
)
)
(set!
(-> self rotate-outer)
(the
float
(sar
(shl
(the
int
(-
(-> self rotate-outer)
(* (-> self rotspeed) (-> *display* seconds-per-frame))
)
)
48
)
48
)
)
)
(suspend)
(none)
)
(none)
)
)
(defmethod
init-from-entity!
wedge-plat-master
((obj wedge-plat-master) (arg0 entity-actor))
(defmethod init-from-entity! wedge-plat-master ((obj wedge-plat-master) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(set! (-> obj center quad) (-> arg0 extra trans quad))
(set! (-> obj center y) (+ 819.2 (-> obj center y)))
@ -104,6 +71,10 @@
(:methods
(dummy-27 (_type_) symbol 27)
)
(:states
wedge-plat-idle
wedge-plat-tip
)
)
@ -118,77 +89,63 @@
(defmethod dummy-27 wedge-plat ((obj wedge-plat))
(let* ((a0-1 (-> obj master))
(v1-0 (if a0-1
(-> (the-as process-drawable (-> a0-1 ppointer)) brother)
)
)
(-> (the-as process-drawable (-> a0-1 ppointer)) brother)
)
)
)
(when v1-0
(let ((s4-0 (&-> v1-0 27))
(f30-0 (-> obj distance))
(f28-0
(the
float
(sar
(shl (the int (+ (the-as float (-> v1-0 32)) (-> obj offset))) 48)
48
)
(when v1-0
(let ((s4-0 (&-> v1-0 27))
(f30-0 (-> obj distance))
(f28-0 (the float (sar (shl (the int (+ (the-as float (-> v1-0 32)) (-> obj offset))) 48) 48)))
(s5-0 #f)
)
)
(s5-0 #f)
(quaternion-axis-angle!
(-> obj root-override quat)
0.0
1.0
0.0
(the float (sar (shl (the int (- 49152.0 f28-0)) 48) 48))
)
(quaternion-axis-angle!
(-> obj root-override quat)
0.0
1.0
0.0
(the float (sar (shl (the int (- 49152.0 f28-0)) 48) 48))
(set! (-> obj basetrans x) (+ (the-as float (-> s4-0 0)) (* f30-0 (cos f28-0))))
(set! (-> obj basetrans y) (the-as float (-> s4-0 1)))
(set! (-> obj basetrans z) (+ (the-as float (-> s4-0 2)) (* f30-0 (sin f28-0))))
(let ((f0-16 (cos f28-0)))
(if (or (< 0.95 f0-16) (< f0-16 -0.95))
(set! s5-0 #t)
)
)
s5-0
)
)
(set!
(-> obj basetrans x)
(+ (the-as float (-> s4-0 0)) (* f30-0 (cos f28-0)))
)
(set! (-> obj basetrans y) (the-as float (-> s4-0 1)))
(set!
(-> obj basetrans z)
(+ (the-as float (-> s4-0 2)) (* f30-0 (sin f28-0)))
)
(let ((f0-16 (cos f28-0)))
(if (or (< 0.95 f0-16) (< f0-16 -0.95))
(set! s5-0 #t)
)
)
s5-0
)
)
)
)
(defstate wedge-plat-idle (wedge-plat)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (if (= v1-0 'bonk)
(dummy-22 self)
)
)
(let ((v1-0 arg2))
(the-as object (if (= v1-0 'bonk)
(dummy-22 self)
)
)
)
)
)
:trans
(the-as (function none :behavior wedge-plat) plat-trans)
:code
(behavior ()
(let ((gp-0 (-> self skel root-channel 0)))
(set! (-> gp-0 num-func) num-func-identity)
(set! (-> gp-0 frame-num) (ja-aframe 0.0 0))
(let ((gp-0 (-> self skel root-channel 0)))
(set! (-> gp-0 num-func) num-func-identity)
(set! (-> gp-0 frame-num) (ja-aframe 0.0 0))
)
(while #t
(if (dummy-27 self)
(go wedge-plat-tip)
)
(suspend)
)
(none)
)
(while #t
(if (dummy-27 self)
(go wedge-plat-tip)
)
(suspend)
)
(none)
)
:post
(the-as (function none :behavior wedge-plat) plat-post)
)
@ -196,169 +153,115 @@
(defstate wedge-plat-tip (wedge-plat)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (cond
((= v1-0 'bonk)
(dummy-22 self)
)
((= v1-0 'touch)
(send-event arg0 'no-look-around 450)
#f
)
)
)
(let ((v1-0 arg2))
(the-as object (cond
((= v1-0 'bonk)
(dummy-22 self)
)
((= v1-0 'touch)
(send-event arg0 'no-look-around 450)
#f
)
)
)
)
)
)
:trans
(the-as (function none :behavior wedge-plat) plat-trans)
:code
(behavior ()
(let ((gp-0 (-> self skel root-channel 0)))
(set!
(-> gp-0 frame-group)
(the-as art-joint-anim (-> self draw art-group data 3))
)
(set! (-> gp-0 param 0) (ja-aframe 60.0 0))
(set! (-> gp-0 param 1) 1.0)
(set! (-> gp-0 frame-num) (ja-aframe 0.0 0))
(joint-control-channel-group!
gp-0
(the-as art-joint-anim (-> self draw art-group data 3))
num-func-seek!
)
)
(until (ja-done? 0)
(dummy-27 self)
(suspend)
(let ((gp-1 (-> self skel root-channel 0)))
(set! (-> gp-1 param 0) (ja-aframe 60.0 0))
(set! (-> gp-1 param 1) 1.0)
(joint-control-channel-group-eval!
gp-1
(the-as art-joint-anim #f)
num-func-seek!
(let ((gp-0 (-> self skel root-channel 0)))
(set! (-> gp-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 3)))
(set! (-> gp-0 param 0) (ja-aframe 60.0 0))
(set! (-> gp-0 param 1) 1.0)
(set! (-> gp-0 frame-num) (ja-aframe 0.0 0))
(joint-control-channel-group! gp-0 (the-as art-joint-anim (-> self draw art-group data 3)) num-func-seek!)
)
)
)
(let ((gp-2 (-> self skel root-channel 0)))
(set!
(-> gp-2 frame-group)
(the-as art-joint-anim (-> self draw art-group data 3))
)
(set! (-> gp-2 param 0) (ja-aframe 100.0 0))
(set! (-> gp-2 param 1) 1.0)
(set! (-> gp-2 frame-num) (ja-aframe 60.0 0))
(joint-control-channel-group!
gp-2
(the-as art-joint-anim (-> self draw art-group data 3))
num-func-seek!
)
)
(until (ja-done? 0)
(dummy-27 self)
(suspend)
(let ((gp-3 (-> self skel root-channel 0)))
(set! (-> gp-3 param 0) (ja-aframe 100.0 0))
(set! (-> gp-3 param 1) 1.0)
(joint-control-channel-group-eval!
gp-3
(the-as art-joint-anim #f)
num-func-seek!
(until (ja-done? 0)
(dummy-27 self)
(suspend)
(let ((gp-1 (-> self skel root-channel 0)))
(set! (-> gp-1 param 0) (ja-aframe 60.0 0))
(set! (-> gp-1 param 1) 1.0)
(joint-control-channel-group-eval! gp-1 (the-as art-joint-anim #f) num-func-seek!)
)
)
)
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300)
(let ((gp-4 (-> self skel root-channel 0)))
(set! (-> gp-4 num-func) num-func-identity)
(set! (-> gp-4 frame-num) (ja-aframe 100.0 0))
)
(dummy-27 self)
(suspend)
)
(let ((gp-5 (-> self skel root-channel 0)))
(set!
(-> gp-5 frame-group)
(the-as art-joint-anim (-> self draw art-group data 3))
)
(set! (-> gp-5 param 0) (ja-aframe 153.0 0))
(set! (-> gp-5 param 1) 1.0)
(set! (-> gp-5 frame-num) (ja-aframe 100.0 0))
(joint-control-channel-group!
gp-5
(the-as art-joint-anim (-> self draw art-group data 3))
num-func-seek!
)
)
(until (ja-done? 0)
(dummy-27 self)
(suspend)
(let ((gp-6 (-> self skel root-channel 0)))
(set! (-> gp-6 param 0) (ja-aframe 153.0 0))
(set! (-> gp-6 param 1) 1.0)
(joint-control-channel-group-eval!
gp-6
(the-as art-joint-anim #f)
num-func-seek!
(let ((gp-2 (-> self skel root-channel 0)))
(set! (-> gp-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 3)))
(set! (-> gp-2 param 0) (ja-aframe 100.0 0))
(set! (-> gp-2 param 1) 1.0)
(set! (-> gp-2 frame-num) (ja-aframe 60.0 0))
(joint-control-channel-group! gp-2 (the-as art-joint-anim (-> self draw art-group data 3)) num-func-seek!)
)
)
(until (ja-done? 0)
(dummy-27 self)
(suspend)
(let ((gp-3 (-> self skel root-channel 0)))
(set! (-> gp-3 param 0) (ja-aframe 100.0 0))
(set! (-> gp-3 param 1) 1.0)
(joint-control-channel-group-eval! gp-3 (the-as art-joint-anim #f) num-func-seek!)
)
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300)
(let ((gp-4 (-> self skel root-channel 0)))
(set! (-> gp-4 num-func) num-func-identity)
(set! (-> gp-4 frame-num) (ja-aframe 100.0 0))
)
(dummy-27 self)
(suspend)
)
(let ((gp-5 (-> self skel root-channel 0)))
(set! (-> gp-5 frame-group) (the-as art-joint-anim (-> self draw art-group data 3)))
(set! (-> gp-5 param 0) (ja-aframe 153.0 0))
(set! (-> gp-5 param 1) 1.0)
(set! (-> gp-5 frame-num) (ja-aframe 100.0 0))
(joint-control-channel-group! gp-5 (the-as art-joint-anim (-> self draw art-group data 3)) num-func-seek!)
)
(until (ja-done? 0)
(dummy-27 self)
(suspend)
(let ((gp-6 (-> self skel root-channel 0)))
(set! (-> gp-6 param 0) (ja-aframe 153.0 0))
(set! (-> gp-6 param 1) 1.0)
(joint-control-channel-group-eval! gp-6 (the-as art-joint-anim #f) num-func-seek!)
)
)
(go wedge-plat-idle)
(none)
)
(go wedge-plat-idle)
(none)
)
:post
(the-as (function none :behavior wedge-plat) plat-post)
)
(defmethod init-from-entity! wedge-plat ((obj wedge-plat) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(let
((s4-0
(new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))
)
)
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set!
(-> s4-0 no-reaction)
(the-as
(function collide-shape-moving collide-shape-intersect vector vector none)
nothing
)
)
(dummy-29 s4-0 1)
(let
((s3-0
(new
'process
'collide-shape-prim-mesh
s4-0
(the-as uint 0)
(the-as uint 0)
)
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set! (-> s4-0 no-reaction)
(the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing)
)
(dummy-29 s4-0 1)
(let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 3))
(set! (-> s3-0 prim-core offense) 4)
(set! (-> s3-0 transform-index) 3)
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 24576.0)
(set-root-prim! s4-0 s3-0)
)
)
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 3))
(set! (-> s3-0 prim-core offense) 4)
(set! (-> s3-0 transform-index) 3)
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 24576.0)
(set-root-prim! s4-0 s3-0)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(backup-collide-with-as s4-0)
(set! (-> obj root-override) s4-0)
)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(backup-collide-with-as s4-0)
(set! (-> obj root-override) s4-0)
)
(process-drawable-from-entity! obj arg0)
(initialize-skeleton obj *wedge-plat-sg* '())
(logior! (-> obj skel status) 1)
(dummy-47 (-> obj root-override))
(dummy-21 obj)
(set!
(-> obj master)
(the-as wedge-plat-master (entity-actor-lookup arg0 'alt-actor 0))
)
(set! (-> obj master) (the-as wedge-plat-master (entity-actor-lookup arg0 'alt-actor 0)))
(set! (-> obj offset) (res-lump-float arg0 'rotoffset))
(set! (-> obj distance) (res-lump-float arg0 'distance :default 36864.0))
(logclear! (-> obj mask) (process-mask actor-pause))
@ -372,6 +275,10 @@
:method-count-assert 28
:size-assert #xf0
:flag-assert #x1c008000f0
(:states
wedge-plat-outer-idle
wedge-plat-outer-tip
)
)
@ -386,77 +293,63 @@
(defmethod dummy-27 wedge-plat-outer ((obj wedge-plat-outer))
(let* ((a0-1 (-> obj master))
(v1-0 (if a0-1
(-> (the-as process-drawable (-> a0-1 ppointer)) brother)
)
)
(-> (the-as process-drawable (-> a0-1 ppointer)) brother)
)
)
)
(when v1-0
(let ((s4-0 (&-> v1-0 27))
(f30-0 (-> obj distance))
(f28-0
(the
float
(sar
(shl (the int (+ (the-as float (-> v1-0 33)) (-> obj offset))) 48)
48
)
(when v1-0
(let ((s4-0 (&-> v1-0 27))
(f30-0 (-> obj distance))
(f28-0 (the float (sar (shl (the int (+ (the-as float (-> v1-0 33)) (-> obj offset))) 48) 48)))
(s5-0 #f)
)
)
(s5-0 #f)
(quaternion-axis-angle!
(-> obj root-override quat)
0.0
1.0
0.0
(the float (sar (shl (the int (- 49152.0 f28-0)) 48) 48))
)
(quaternion-axis-angle!
(-> obj root-override quat)
0.0
1.0
0.0
(the float (sar (shl (the int (- 49152.0 f28-0)) 48) 48))
(set! (-> obj basetrans x) (+ (the-as float (-> s4-0 0)) (* f30-0 (cos f28-0))))
(set! (-> obj basetrans y) (the-as float (-> s4-0 1)))
(set! (-> obj basetrans z) (+ (the-as float (-> s4-0 2)) (* f30-0 (sin f28-0))))
(let ((f0-16 (sin f28-0)))
(if (or (< 0.95 f0-16) (< f0-16 -0.95))
(set! s5-0 #t)
)
)
s5-0
)
)
(set!
(-> obj basetrans x)
(+ (the-as float (-> s4-0 0)) (* f30-0 (cos f28-0)))
)
(set! (-> obj basetrans y) (the-as float (-> s4-0 1)))
(set!
(-> obj basetrans z)
(+ (the-as float (-> s4-0 2)) (* f30-0 (sin f28-0)))
)
(let ((f0-16 (sin f28-0)))
(if (or (< 0.95 f0-16) (< f0-16 -0.95))
(set! s5-0 #t)
)
)
s5-0
)
)
)
)
(defstate wedge-plat-outer-idle (wedge-plat-outer)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (if (= v1-0 'bonk)
(dummy-22 self)
)
)
(let ((v1-0 arg2))
(the-as object (if (= v1-0 'bonk)
(dummy-22 self)
)
)
)
)
)
:trans
(the-as (function none :behavior wedge-plat-outer) plat-trans)
:code
(behavior ()
(while #t
(let ((gp-0 (-> self skel root-channel 0)))
(set! (-> gp-0 num-func) num-func-identity)
(set! (-> gp-0 frame-num) (ja-aframe 0.0 0))
)
(if (dummy-27 self)
(go wedge-plat-outer-tip)
)
(suspend)
(while #t
(let ((gp-0 (-> self skel root-channel 0)))
(set! (-> gp-0 num-func) num-func-identity)
(set! (-> gp-0 frame-num) (ja-aframe 0.0 0))
)
(if (dummy-27 self)
(go wedge-plat-outer-tip)
)
(suspend)
)
(none)
)
(none)
)
:post
(the-as (function none :behavior wedge-plat-outer) plat-post)
)
@ -464,171 +357,114 @@
(defstate wedge-plat-outer-tip (wedge-plat-outer)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (cond
((= v1-0 'bonk)
(dummy-22 self)
)
((= v1-0 'touch)
(send-event arg0 'no-look-around 450)
)
)
)
(let ((v1-0 arg2))
(the-as object (cond
((= v1-0 'bonk)
(dummy-22 self)
)
((= v1-0 'touch)
(send-event arg0 'no-look-around 450)
)
)
)
)
)
)
:trans
(the-as (function none :behavior wedge-plat-outer) plat-trans)
:code
(behavior ()
(let ((gp-0 (-> self skel root-channel 0)))
(set!
(-> gp-0 frame-group)
(the-as art-joint-anim (-> self draw art-group data 3))
)
(set! (-> gp-0 param 0) (ja-aframe 60.0 0))
(set! (-> gp-0 param 1) 1.0)
(set! (-> gp-0 frame-num) (ja-aframe 0.0 0))
(joint-control-channel-group!
gp-0
(the-as art-joint-anim (-> self draw art-group data 3))
num-func-seek!
)
)
(until (ja-done? 0)
(dummy-27 self)
(suspend)
(let ((gp-1 (-> self skel root-channel 0)))
(set! (-> gp-1 param 0) (ja-aframe 60.0 0))
(set! (-> gp-1 param 1) 1.0)
(joint-control-channel-group-eval!
gp-1
(the-as art-joint-anim #f)
num-func-seek!
(let ((gp-0 (-> self skel root-channel 0)))
(set! (-> gp-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 3)))
(set! (-> gp-0 param 0) (ja-aframe 60.0 0))
(set! (-> gp-0 param 1) 1.0)
(set! (-> gp-0 frame-num) (ja-aframe 0.0 0))
(joint-control-channel-group! gp-0 (the-as art-joint-anim (-> self draw art-group data 3)) num-func-seek!)
)
)
)
(let ((gp-2 (-> self skel root-channel 0)))
(set!
(-> gp-2 frame-group)
(the-as art-joint-anim (-> self draw art-group data 3))
)
(set! (-> gp-2 param 0) (ja-aframe 100.0 0))
(set! (-> gp-2 param 1) 1.0)
(set! (-> gp-2 frame-num) (ja-aframe 60.0 0))
(joint-control-channel-group!
gp-2
(the-as art-joint-anim (-> self draw art-group data 3))
num-func-seek!
)
)
(until (ja-done? 0)
(dummy-27 self)
(suspend)
(let ((gp-3 (-> self skel root-channel 0)))
(set! (-> gp-3 param 0) (ja-aframe 100.0 0))
(set! (-> gp-3 param 1) 1.0)
(joint-control-channel-group-eval!
gp-3
(the-as art-joint-anim #f)
num-func-seek!
(until (ja-done? 0)
(dummy-27 self)
(suspend)
(let ((gp-1 (-> self skel root-channel 0)))
(set! (-> gp-1 param 0) (ja-aframe 60.0 0))
(set! (-> gp-1 param 1) 1.0)
(joint-control-channel-group-eval! gp-1 (the-as art-joint-anim #f) num-func-seek!)
)
)
)
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300)
(let ((gp-4 (-> self skel root-channel 0)))
(set! (-> gp-4 num-func) num-func-identity)
(set! (-> gp-4 frame-num) (ja-aframe 100.0 0))
)
(dummy-27 self)
(suspend)
)
(let ((gp-5 (-> self skel root-channel 0)))
(set!
(-> gp-5 frame-group)
(the-as art-joint-anim (-> self draw art-group data 3))
)
(set! (-> gp-5 param 0) (ja-aframe 153.0 0))
(set! (-> gp-5 param 1) 1.0)
(set! (-> gp-5 frame-num) (ja-aframe 100.0 0))
(joint-control-channel-group!
gp-5
(the-as art-joint-anim (-> self draw art-group data 3))
num-func-seek!
)
)
(until (ja-done? 0)
(dummy-27 self)
(suspend)
(let ((gp-6 (-> self skel root-channel 0)))
(set! (-> gp-6 param 0) (ja-aframe 153.0 0))
(set! (-> gp-6 param 1) 1.0)
(joint-control-channel-group-eval!
gp-6
(the-as art-joint-anim #f)
num-func-seek!
(let ((gp-2 (-> self skel root-channel 0)))
(set! (-> gp-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 3)))
(set! (-> gp-2 param 0) (ja-aframe 100.0 0))
(set! (-> gp-2 param 1) 1.0)
(set! (-> gp-2 frame-num) (ja-aframe 60.0 0))
(joint-control-channel-group! gp-2 (the-as art-joint-anim (-> self draw art-group data 3)) num-func-seek!)
)
)
(until (ja-done? 0)
(dummy-27 self)
(suspend)
(let ((gp-3 (-> self skel root-channel 0)))
(set! (-> gp-3 param 0) (ja-aframe 100.0 0))
(set! (-> gp-3 param 1) 1.0)
(joint-control-channel-group-eval! gp-3 (the-as art-joint-anim #f) num-func-seek!)
)
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300)
(let ((gp-4 (-> self skel root-channel 0)))
(set! (-> gp-4 num-func) num-func-identity)
(set! (-> gp-4 frame-num) (ja-aframe 100.0 0))
)
(dummy-27 self)
(suspend)
)
(let ((gp-5 (-> self skel root-channel 0)))
(set! (-> gp-5 frame-group) (the-as art-joint-anim (-> self draw art-group data 3)))
(set! (-> gp-5 param 0) (ja-aframe 153.0 0))
(set! (-> gp-5 param 1) 1.0)
(set! (-> gp-5 frame-num) (ja-aframe 100.0 0))
(joint-control-channel-group! gp-5 (the-as art-joint-anim (-> self draw art-group data 3)) num-func-seek!)
)
(until (ja-done? 0)
(dummy-27 self)
(suspend)
(let ((gp-6 (-> self skel root-channel 0)))
(set! (-> gp-6 param 0) (ja-aframe 153.0 0))
(set! (-> gp-6 param 1) 1.0)
(joint-control-channel-group-eval! gp-6 (the-as art-joint-anim #f) num-func-seek!)
)
)
(go wedge-plat-outer-idle)
(none)
)
(go wedge-plat-outer-idle)
(none)
)
:post
(the-as (function none :behavior wedge-plat-outer) plat-post)
)
(defmethod
init-from-entity!
wedge-plat-outer
((obj wedge-plat-outer) (arg0 entity-actor))
(defmethod init-from-entity! wedge-plat-outer ((obj wedge-plat-outer) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(let
((s4-0
(new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))
)
)
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set!
(-> s4-0 no-reaction)
(the-as
(function collide-shape-moving collide-shape-intersect vector vector none)
nothing
)
)
(dummy-29 s4-0 1)
(let
((s3-0
(new
'process
'collide-shape-prim-mesh
s4-0
(the-as uint 0)
(the-as uint 0)
)
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
(set! (-> s4-0 no-reaction)
(the-as (function collide-shape-moving collide-shape-intersect vector vector none) nothing)
)
(dummy-29 s4-0 1)
(let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 19))
(set! (-> s3-0 prim-core offense) 4)
(set! (-> s3-0 transform-index) 3)
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 32768.0)
(set-root-prim! s4-0 s3-0)
)
)
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core action) (the-as uint 19))
(set! (-> s3-0 prim-core offense) 4)
(set! (-> s3-0 transform-index) 3)
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 32768.0)
(set-root-prim! s4-0 s3-0)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(backup-collide-with-as s4-0)
(set! (-> obj root-override) s4-0)
)
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
(backup-collide-with-as s4-0)
(set! (-> obj root-override) s4-0)
)
(process-drawable-from-entity! obj arg0)
(initialize-skeleton obj *wedge-plat-sg* '())
(logior! (-> obj skel status) 1)
(dummy-47 (-> obj root-override))
(dummy-21 obj)
(set!
(-> obj master)
(the-as wedge-plat-master (entity-actor-lookup arg0 'alt-actor 0))
)
(set! (-> obj master) (the-as wedge-plat-master (entity-actor-lookup arg0 'alt-actor 0)))
(set! (-> obj offset) (res-lump-float arg0 'rotoffset))
(set! (-> obj distance) (res-lump-float arg0 'distance :default 69632.0))
(logclear! (-> obj mask) (process-mask actor-pause))

File diff suppressed because it is too large Load Diff

View File

@ -16,12 +16,7 @@
(declare-type swamp-spike process-drawable)
(declare-type swampgate swamp-spike)
(define-extern swamp-rock-idle (state swamp-rock)) ;; unknown type
(define-extern swamp-rock-break (state swamp-rock)) ;; unknown type
(define-extern balance-plat-idle (state balance-plat)) ;; unknown type
(define-extern swamp-spike-gate-down (state swampgate)) ;; unknown type
(define-extern swamp-spike-gate-up (state swampgate)) ;; unknown type
(define-extern swamp-spike-idle (state swamp-spike)) ;; unknown type
(define-extern swamp-spike-gate-down (state swampgate))
;; DECOMP BEGINS
@ -162,6 +157,9 @@
(:methods
(init! (_type_) symbol 20)
)
(:states
swamp-spike-idle
)
)
@ -271,7 +269,7 @@
(joint-control-channel-group-eval! a0-12 (the-as art-joint-anim #f) num-func-seek!)
)
)
(when (logtest? (-> self draw status) 8)
(when (logtest? (-> self draw status) (draw-status drwf03))
(let ((s5-3 (get-process *default-dead-pool* part-tracker #x4000)))
(when s5-3
(let ((t9-11 (method-of-type part-tracker activate)))
@ -318,7 +316,7 @@
(until (< (get-current-phase (-> self sync)) 0.5)
(suspend)
)
(when (logtest? (-> self draw status) 8)
(when (logtest? (-> self draw status) (draw-status drwf03))
(let ((s5-4 (get-process *default-dead-pool* part-tracker #x4000)))
(when s5-4
(let ((t9-18 (method-of-type part-tracker activate)))
@ -493,6 +491,10 @@
:method-count-assert 21
:size-assert #xc0
:flag-assert #x15005000c0
(:states
swamp-spike-gate-down
swamp-spike-gate-up
)
)
@ -518,6 +520,9 @@
:method-count-assert 20
:size-assert #xc8
:flag-assert #x14006000c8
(:states
balance-plat-idle
)
)
@ -631,6 +636,10 @@
:method-count-assert 20
:size-assert #xb0
:flag-assert #x14004000b0
(:states
swamp-rock-break
swamp-rock-idle
)
)

View File

@ -8,15 +8,6 @@
(declare-type swamp-rat-nest-dummy process-drawable)
(declare-type swamp-rat-nest process-drawable)
(define-extern swamp-rat-nest-idle (state swamp-rat-nest)) ;; unknown type
(define-extern swamp-rat-nest-active (state swamp-rat-nest)) ;; unknown type
(define-extern swamp-rat-nest-gestate (state swamp-rat-nest)) ;; unknown type
(define-extern swamp-rat-nest-die (state swamp-rat-nest)) ;; unknown type
(define-extern swamp-rat-nest-victory (state swamp-rat-nest)) ;; unknown type
(define-extern swamp-rat-nest-dummy-idle (state swamp-rat-nest-dummy)) ;; unknown type
(define-extern swamp-rat-nest-dummy-hit (state swamp-rat-nest-dummy)) ;; unknown type
(define-extern swamp-rat-nest-dummy-die (state swamp-rat-nest-dummy)) ;; unknown type
(define-extern swamp-rat-nest-dummy-shake (state swamp-rat-nest-dummy)) ;; unknown type
;; DECOMP BEGINS
@ -726,6 +717,13 @@
:method-count-assert 20
:size-assert #xd4
:flag-assert #x14007000d4
(:states
swamp-rat-nest-active
swamp-rat-nest-die
swamp-rat-nest-gestate
swamp-rat-nest-idle
swamp-rat-nest-victory
)
)
@ -746,6 +744,12 @@
(dummy-20 (_type_) none 20)
(dummy-21 (_type_) int 21)
)
(:states
swamp-rat-nest-dummy-die
swamp-rat-nest-dummy-hit
swamp-rat-nest-dummy-idle
swamp-rat-nest-dummy-shake
)
)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -39,17 +39,6 @@
(declare-type village-fish process-drawable)
(declare-type villa-starfish process-drawable)
(define-extern windmill-sail-idle (state windmill-sail)) ;; unknown type
(define-extern sagesail-idle (state sagesail)) ;; unknown type
(define-extern windspinner-idle (state windspinner)) ;; unknown type
(define-extern mayorgears-idle (state mayorgears)) ;; unknown type
(define-extern reflector-middle-idle (state reflector-middle)) ;; unknown type
(define-extern starfish-patrol (state starfish)) ;; unknown type
(define-extern reflector-end-idle (state reflector-end)) ;; unknown type
(define-extern hutlamp-idle (state hutlamp)) ;; unknown type
(define-extern village-fish-idle (state village-fish)) ;; unknown type
(define-extern villa-starfish-idle (state villa-starfish)) ;; unknown type
(define-extern starfish-idle (state starfish)) ;; unknown type
;; DECOMP BEGINS
@ -276,6 +265,9 @@
:method-count-assert 20
:size-assert #xe8
:flag-assert #x14008000e8
(:states
windmill-sail-idle
)
)
@ -416,6 +408,9 @@
:method-count-assert 20
:size-assert #xe0
:flag-assert #x14007000e0
(:states
sagesail-idle
)
)
@ -473,6 +468,9 @@
:method-count-assert 20
:size-assert #xd8
:flag-assert #x14007000d8
(:states
windspinner-idle
)
)
@ -567,6 +565,9 @@
:method-count-assert 20
:size-assert #xb4
:flag-assert #x14005000b4
(:states
mayorgears-idle
)
)
@ -622,6 +623,9 @@
:method-count-assert 20
:size-assert #xd0
:flag-assert #x14006000d0
(:states
reflector-middle-idle
)
)
@ -673,6 +677,9 @@
:method-count-assert 20
:size-assert #xb0
:flag-assert #x14004000b0
(:states
reflector-end-idle
)
)
@ -695,6 +702,9 @@
:method-count-assert 20
:size-assert #xb1
:flag-assert #x14005000b1
(:states
villa-starfish-idle
)
)
@ -712,6 +722,10 @@
:method-count-assert 76
:size-assert #x190
:flag-assert #x4c01200190
(:states
starfish-idle
starfish-patrol
)
)
@ -954,6 +968,9 @@
:method-count-assert 20
:size-assert #xb1
:flag-assert #x14005000b1
(:states
village-fish-idle
)
)
@ -1028,6 +1045,9 @@
:method-count-assert 20
:size-assert #xbc
:flag-assert #x14005000bc
(:states
hutlamp-idle
)
)

File diff suppressed because it is too large Load Diff

View File

@ -15,6 +15,9 @@
:method-count-assert 53
:size-assert #x190
:flag-assert #x3501200190
(:states
just-particles
)
)
@ -78,7 +81,7 @@
(defmethod draw-npc-shadow assistant-levitator ((obj assistant-levitator))
(-> obj draw shadow-ctrl)
(cond
((and (-> obj draw shadow) (zero? (-> obj draw cur-lod)) (logtest? (-> obj draw status) 8))
((and (-> obj draw shadow) (zero? (-> obj draw cur-lod)) (logtest? (-> obj draw status) (draw-status drwf03)))
(let ((v1-9 (-> obj draw shadow-ctrl)))
(set! (-> v1-9 settings flags) (logand -33 (-> v1-9 settings flags)))
)
@ -117,156 +120,156 @@
:command-list
'((0 send-event target draw #f)
(0 kill "villageb-part-33")
((the binteger 95) send-event target draw #t)
((the binteger 95) joint "cameraB")
((the binteger 131) send-event target draw #f)
((the binteger 131) joint "camera")
((the binteger 190) setting-reset ocean-off #t)
((the binteger 190) kill "pontoonten-20")
((the binteger 190) kill "pontoonten-19")
((the binteger 190) kill "pontoonten-18")
((the binteger 190) kill "pontoonten-17")
((the binteger 190) kill "pontoonten-16")
((the binteger 190) kill "pontoonten-15")
((the binteger 190) kill "pontoonten-14")
((the binteger 190) kill "pontoonten-13")
((the binteger 190) kill "pontoonten-12")
((the binteger 190) kill "pontoonten-11")
((the binteger 190) kill "pontoonten-10")
((the binteger 190) kill "pontoonten-9")
((the binteger 190) kill "pontoonten-8")
((the binteger 190) kill "pontoonten-7")
((the binteger 190) kill "pontoonten-6")
((the binteger 190) kill "pontoonfive-3")
((the binteger 190) kill "pontoonfive-4")
((the binteger 190) kill "pontoonfive-5")
((the binteger 190) kill "pontoonfive-6")
((the binteger 190) kill "pontoonfive-7")
((the binteger 190) kill "pontoonfive-8")
((the binteger 190) kill "pontoonfive-12")
((the binteger 190) kill "pontoonfive-13")
((the binteger 190) kill "pontoonfive-14")
((the binteger 190) kill "pontoonfive-15")
((the binteger 190) kill "pontoonfive-16")
((the binteger 190) kill "pontoonfive-17")
((the binteger 190) kill "pontoonfive-18")
((the binteger 190) kill "pontoonfive-19")
((the binteger 190) kill "pontoonfive-20")
((the binteger 190) kill "allpontoons-1")
((the binteger 190) kill "med-res-level-12")
((the binteger 190) kill "med-res-level-13")
((the binteger 190) kill "med-res-level-15")
((the binteger 190) kill "swamp-blimp-3")
((the binteger 190) kill "barrel-85")
((the binteger 190) kill "barrel-86")
((the binteger 190) kill "money-2844")
((the binteger 190) kill "money-2845")
((the binteger 190) kill "money-2846")
((the binteger 190) kill "money-2847")
((the binteger 190) kill "money-2848")
((the binteger 190) kill "money-2849")
((the binteger 190) kill "money-4923")
((the binteger 190) kill "money-4924")
((the binteger 190) kill "money-4925")
((the binteger 190) kill "money-4926")
((the binteger 190) kill "money-4927")
((the binteger 190) kill "eco-27")
((the binteger 190) kill "sharkey-25")
((the binteger 190) kill "barrel-117")
((the binteger 190) kill "barrel-118")
((the binteger 190) kill "barrel-119")
((the binteger 190) kill "barrel-120")
((the binteger 190) kill "barrel-121")
((the binteger 190) kill "barrel-122")
((the binteger 190) kill "crate-3129")
((the binteger 190) kill "crate-3132")
((the binteger 190) kill "crate-3133")
((the binteger 190) kill "villageb-part-32")
((the binteger 190) kill "villageb-part-30")
((the binteger 190) kill "exit-chamber-dummy-1")
((the binteger 190) kill "villageb-part-34")
((the binteger 191) send-event target draw #t)
((the binteger 191) joint "cameraB")
((the binteger 241) joint "camera")
((the binteger 241) send-event target draw #f)
((the binteger 241) setting-unset ocean-off)
((the binteger 241) dead "pontoonten-20")
((the binteger 241) dead "pontoonten-19")
((the binteger 241) dead "pontoonten-18")
((the binteger 241) dead "pontoonten-17")
((the binteger 241) dead "pontoonten-16")
((the binteger 241) dead "pontoonten-15")
((the binteger 241) dead "pontoonten-14")
((the binteger 241) dead "pontoonten-13")
((the binteger 241) dead "pontoonten-12")
((the binteger 241) dead "pontoonten-11")
((the binteger 241) dead "pontoonten-10")
((the binteger 241) dead "pontoonten-9")
((the binteger 241) dead "pontoonten-8")
((the binteger 241) dead "pontoonten-7")
((the binteger 241) dead "pontoonten-6")
((the binteger 241) dead "pontoonfive-3")
((the binteger 241) dead "pontoonfive-4")
((the binteger 241) dead "pontoonfive-5")
((the binteger 241) dead "pontoonfive-6")
((the binteger 241) dead "pontoonfive-7")
((the binteger 241) dead "pontoonfive-8")
((the binteger 241) dead "pontoonfive-12")
((the binteger 241) dead "pontoonfive-13")
((the binteger 241) dead "pontoonfive-14")
((the binteger 241) dead "pontoonfive-15")
((the binteger 241) dead "pontoonfive-16")
((the binteger 241) dead "pontoonfive-17")
((the binteger 241) dead "pontoonfive-18")
((the binteger 241) dead "pontoonfive-19")
((the binteger 241) dead "pontoonfive-20")
((the binteger 241) dead "allpontoons-1")
((the binteger 241) dead "med-res-level-12")
((the binteger 241) dead "med-res-level-13")
((the binteger 241) dead "med-res-level-15")
((the binteger 241) dead "swamp-blimp-3")
((the binteger 241) dead "barrel-85")
((the binteger 241) dead "barrel-86")
((the binteger 241) dead "money-2844")
((the binteger 241) dead "money-2845")
((the binteger 241) dead "money-2846")
((the binteger 241) dead "money-2847")
((the binteger 241) dead "money-2848")
((the binteger 241) dead "money-2849")
((the binteger 241) dead "money-4923")
((the binteger 241) dead "money-4924")
((the binteger 241) dead "money-4925")
((the binteger 241) dead "money-4926")
((the binteger 241) dead "money-4927")
((the binteger 241) dead "eco-27")
((the binteger 241) dead "sharkey-25")
((the binteger 241) dead "barrel-117")
((the binteger 241) dead "barrel-118")
((the binteger 241) dead "barrel-119")
((the binteger 241) dead "barrel-120")
((the binteger 241) dead "barrel-121")
((the binteger 241) dead "barrel-122")
((the binteger 241) dead "crate-3129")
((the binteger 241) dead "crate-3132")
((the binteger 241) dead "crate-3133")
((the binteger 241) dead "villageb-part-32")
((the binteger 241) dead "villageb-part-30")
((the binteger 321) joint "cameraB")
((the binteger 352) joint "camera")
((the binteger 383) joint "cameraB")
((the binteger 411) joint "camera")
((the binteger 501) joint "cameraB")
((the binteger 501) send-event target draw #t)
((the binteger 567) joint "camera")
((the binteger 634) alive "fireboulder-6")
((the binteger 635) joint "cameraB")
((the binteger 701) joint "camera")
((the binteger 741) joint "cameraB")
((the binteger 784) joint "camera")
((the binteger 936) joint "cameraB")
((the binteger 1065) joint "camera")
((the binteger 1145) joint "cameraB")
((the binteger 1241) joint "camera")
(95 send-event target draw #t)
(95 joint "cameraB")
(131 send-event target draw #f)
(131 joint "camera")
(190 setting-reset ocean-off #t)
(190 kill "pontoonten-20")
(190 kill "pontoonten-19")
(190 kill "pontoonten-18")
(190 kill "pontoonten-17")
(190 kill "pontoonten-16")
(190 kill "pontoonten-15")
(190 kill "pontoonten-14")
(190 kill "pontoonten-13")
(190 kill "pontoonten-12")
(190 kill "pontoonten-11")
(190 kill "pontoonten-10")
(190 kill "pontoonten-9")
(190 kill "pontoonten-8")
(190 kill "pontoonten-7")
(190 kill "pontoonten-6")
(190 kill "pontoonfive-3")
(190 kill "pontoonfive-4")
(190 kill "pontoonfive-5")
(190 kill "pontoonfive-6")
(190 kill "pontoonfive-7")
(190 kill "pontoonfive-8")
(190 kill "pontoonfive-12")
(190 kill "pontoonfive-13")
(190 kill "pontoonfive-14")
(190 kill "pontoonfive-15")
(190 kill "pontoonfive-16")
(190 kill "pontoonfive-17")
(190 kill "pontoonfive-18")
(190 kill "pontoonfive-19")
(190 kill "pontoonfive-20")
(190 kill "allpontoons-1")
(190 kill "med-res-level-12")
(190 kill "med-res-level-13")
(190 kill "med-res-level-15")
(190 kill "swamp-blimp-3")
(190 kill "barrel-85")
(190 kill "barrel-86")
(190 kill "money-2844")
(190 kill "money-2845")
(190 kill "money-2846")
(190 kill "money-2847")
(190 kill "money-2848")
(190 kill "money-2849")
(190 kill "money-4923")
(190 kill "money-4924")
(190 kill "money-4925")
(190 kill "money-4926")
(190 kill "money-4927")
(190 kill "eco-27")
(190 kill "sharkey-25")
(190 kill "barrel-117")
(190 kill "barrel-118")
(190 kill "barrel-119")
(190 kill "barrel-120")
(190 kill "barrel-121")
(190 kill "barrel-122")
(190 kill "crate-3129")
(190 kill "crate-3132")
(190 kill "crate-3133")
(190 kill "villageb-part-32")
(190 kill "villageb-part-30")
(190 kill "exit-chamber-dummy-1")
(190 kill "villageb-part-34")
(191 send-event target draw #t)
(191 joint "cameraB")
(241 joint "camera")
(241 send-event target draw #f)
(241 setting-unset ocean-off)
(241 dead "pontoonten-20")
(241 dead "pontoonten-19")
(241 dead "pontoonten-18")
(241 dead "pontoonten-17")
(241 dead "pontoonten-16")
(241 dead "pontoonten-15")
(241 dead "pontoonten-14")
(241 dead "pontoonten-13")
(241 dead "pontoonten-12")
(241 dead "pontoonten-11")
(241 dead "pontoonten-10")
(241 dead "pontoonten-9")
(241 dead "pontoonten-8")
(241 dead "pontoonten-7")
(241 dead "pontoonten-6")
(241 dead "pontoonfive-3")
(241 dead "pontoonfive-4")
(241 dead "pontoonfive-5")
(241 dead "pontoonfive-6")
(241 dead "pontoonfive-7")
(241 dead "pontoonfive-8")
(241 dead "pontoonfive-12")
(241 dead "pontoonfive-13")
(241 dead "pontoonfive-14")
(241 dead "pontoonfive-15")
(241 dead "pontoonfive-16")
(241 dead "pontoonfive-17")
(241 dead "pontoonfive-18")
(241 dead "pontoonfive-19")
(241 dead "pontoonfive-20")
(241 dead "allpontoons-1")
(241 dead "med-res-level-12")
(241 dead "med-res-level-13")
(241 dead "med-res-level-15")
(241 dead "swamp-blimp-3")
(241 dead "barrel-85")
(241 dead "barrel-86")
(241 dead "money-2844")
(241 dead "money-2845")
(241 dead "money-2846")
(241 dead "money-2847")
(241 dead "money-2848")
(241 dead "money-2849")
(241 dead "money-4923")
(241 dead "money-4924")
(241 dead "money-4925")
(241 dead "money-4926")
(241 dead "money-4927")
(241 dead "eco-27")
(241 dead "sharkey-25")
(241 dead "barrel-117")
(241 dead "barrel-118")
(241 dead "barrel-119")
(241 dead "barrel-120")
(241 dead "barrel-121")
(241 dead "barrel-122")
(241 dead "crate-3129")
(241 dead "crate-3132")
(241 dead "crate-3133")
(241 dead "villageb-part-32")
(241 dead "villageb-part-30")
(321 joint "cameraB")
(352 joint "camera")
(383 joint "cameraB")
(411 joint "camera")
(501 joint "cameraB")
(501 send-event target draw #t)
(567 joint "camera")
(634 alive "fireboulder-6")
(635 joint "cameraB")
(701 joint "camera")
(741 joint "cameraB")
(784 joint "camera")
(936 joint "cameraB")
(1065 joint "camera")
(1145 joint "cameraB")
(1241 joint "camera")
)
)
)
@ -311,14 +314,14 @@
:index 21
:parts 10
:command-list
'(((the binteger 197) joint "cameraB")
((the binteger 351) joint "camera")
((the binteger 431) joint "cameraB")
((the binteger 553) joint "camera")
((the binteger 631) joint "cameraB")
((the binteger 842) joint "camera")
((the binteger 900) joint "cameraB")
((the binteger 1069) joint "camera")
'((197 joint "cameraB")
(351 joint "camera")
(431 joint "cameraB")
(553 joint "camera")
(631 joint "cameraB")
(842 joint "camera")
(900 joint "cameraB")
(1069 joint "camera")
)
)
)
@ -343,11 +346,7 @@
:index 17
:parts 6
:command-list
'(((the binteger 55) joint "cameraB")
((the binteger 145) joint "camera")
((the binteger 207) joint "cameraB")
((the binteger 363) joint "camera")
)
'((55 joint "cameraB") (145 joint "camera") (207 joint "cameraB") (363 joint "camera"))
)
)
(else
@ -361,12 +360,7 @@
:index 19
:parts 8
:command-list
'(((the binteger 71) joint "cameraB")
((the binteger 308) joint "camera")
((the binteger 426) joint "cameraB")
((the binteger 550) joint "camera")
((the binteger 644) joint "cameraB")
)
'((71 joint "cameraB") (308 joint "camera") (426 joint "cameraB") (550 joint "camera") (644 joint "cameraB"))
)
)
)
@ -1590,14 +1584,14 @@
:index 16
:parts 7
:command-list
'(((the binteger 196) joint "cameraB")
((the binteger 241) joint "camera")
((the binteger 286) joint "cameraB")
((the binteger 436) joint "camera")
((the binteger 526) joint "cameraB")
((the binteger 581) joint "camera")
((the binteger 639) joint "cameraB")
((the binteger 715) joint "camera")
'((196 joint "cameraB")
(241 joint "camera")
(286 joint "cameraB")
(436 joint "camera")
(526 joint "cameraB")
(581 joint "camera")
(639 joint "cameraB")
(715 joint "camera")
)
)
)

View File

@ -16,18 +16,6 @@
(declare-type swamp-tetherrock process-drawable)
(declare-type precursor-arm process-drawable)
(define-extern swamp-blimp-idle (state swamp-blimp)) ;; unknown type
(define-extern swamp-blimp-bye-bye (state swamp-blimp)) ;; unknown type
(define-extern swamp-rope-idle-rock (state swamp-rope)) ;; unknown type
(define-extern swamp-rope-idle-arm (state swamp-rope)) ;; unknown type
(define-extern swamp-rope-break (state swamp-rope)) ;; unknown type
(define-extern precursor-arm-idle (state precursor-arm)) ;; unknown type
(define-extern precursor-arm-die (state precursor-arm)) ;; unknown type
(define-extern precursor-arm-sink (state precursor-arm)) ;; unknown type
(define-extern swamp-tetherrock-die (state swamp-tetherrock)) ;; unknown type
(define-extern swamp-tetherrock-hide (state swamp-tetherrock)) ;; unknown type
(define-extern swamp-tetherrock-idle (state swamp-tetherrock)) ;; unknown type
(define-extern swamp-tetherrock-break (state swamp-tetherrock)) ;; unknown type
;; DECOMP BEGINS
@ -561,6 +549,12 @@
:method-count-assert 20
:size-assert #xf4
:flag-assert #x14009000f4
(:states
swamp-tetherrock-break
swamp-tetherrock-die
swamp-tetherrock-hide
swamp-tetherrock-idle
)
)
@ -579,6 +573,11 @@
:method-count-assert 20
:size-assert #x114
:flag-assert #x1400b00114
(:states
precursor-arm-die
precursor-arm-idle
precursor-arm-sink
)
)
@ -604,6 +603,11 @@
(:methods
(dummy-20 (_type_) basic 20)
)
(:states
swamp-rope-break
swamp-rope-idle-arm
swamp-rope-idle-rock
)
)
@ -637,6 +641,10 @@
:method-count-assert 20
:size-assert #x260
:flag-assert #x1401f00260
(:states
swamp-blimp-bye-bye
swamp-blimp-idle
)
)
@ -662,7 +670,7 @@
:code
(behavior ()
(clear-collide-with-as (-> self root-override))
(logior! (-> self draw status) 2)
(logior! (-> self draw status) (draw-status drwf01))
(while #t
(when (= (get-task-status (-> self entity extra perm task)) (task-status invalid))
(if (not (-> self child))
@ -764,7 +772,7 @@
(-> s4-1 ppointer)
)
)
(logior! (-> self draw status) 32)
(logior! (-> self draw status) (draw-status drwf05))
(let* ((s4-2 (get-process *default-dead-pool* manipy #x4000))
(s4-3 (ppointer->handle (when s4-2
(let ((t9-24 (method-of-type manipy activate)))

View File

@ -26,18 +26,6 @@
(declare-type exit-chamber-dummy process-drawable)
(declare-type ogreboss-village2 process-drawable)
(define-extern pontoon-die (state pontoon)) ;; unknown type
(define-extern pontoon-hidden (state pontoon)) ;; unknown type
(define-extern allpontoons-idle (state allpontoons)) ;; unknown type
(define-extern allpontoons-be-clone (state handle allpontoons)) ;; unknown type
(define-extern ceilingflag-idle (state ceilingflag)) ;; unknown type
(define-extern fireboulder-idle (state fireboulder)) ;; unknown type
(define-extern fireboulder-hover (state fireboulder)) ;; unknown type
(define-extern fireboulder-be-clone (state handle fireboulder)) ;; unknown type
(define-extern exit-chamber-dummy-wait-to-appear (state exit-chamber-dummy)) ;; unknown type
(define-extern exit-chamber-dummy-idle (state exit-chamber-dummy)) ;; unknown type
(define-extern ogreboss-village2-idle (state ogreboss-village2)) ;; unknown type
(define-extern ogreboss-village2-throw (state ogreboss-village2)) ;; unknown type
;; DECOMP BEGINS
@ -159,6 +147,10 @@
:method-count-assert 35
:size-assert #x2f2
:flag-assert #x23029002f2
(:states
pontoon-die
pontoon-hidden
)
)
@ -559,6 +551,10 @@
:method-count-assert 20
:size-assert #xb1
:flag-assert #x14005000b1
(:states
(allpontoons-be-clone handle)
allpontoons-idle
)
)
@ -649,6 +645,11 @@
:method-count-assert 20
:size-assert #xb9
:flag-assert #x14005000b9
(:states
(fireboulder-be-clone handle)
fireboulder-hover
fireboulder-idle
)
)
@ -996,6 +997,9 @@
:method-count-assert 20
:size-assert #xb0
:flag-assert #x14004000b0
(:states
ceilingflag-idle
)
)
@ -1071,6 +1075,10 @@
(:methods
(skip-reminder? (_type_) symbol 20)
)
(:states
exit-chamber-dummy-idle
exit-chamber-dummy-wait-to-appear
)
)
@ -1185,6 +1193,10 @@
:method-count-assert 20
:size-assert #xb8
:flag-assert #x14005000b8
(:states
ogreboss-village2-idle
ogreboss-village2-throw
)
)

View File

@ -5,7 +5,6 @@
;; name in dgo: villagep-obs
;; dgos: CIT, L1, VI1, VI2, VI3, VILLAGEP
(define-extern target-warp-out (state vector vector target))
;; DECOMP BEGINS

View File

@ -227,6 +227,9 @@
:method-count-assert 14
:size-assert #x90
:flag-assert #xe02000090
(:states
cam-layout-active
)
)
;; definition for method 3 of type cam-layout

View File

@ -403,6 +403,9 @@
:method-count-assert 14
:size-assert #x1e0
:flag-assert #xe017001e0
(:states
cam-combiner-active
)
)
;; definition for method 3 of type camera-combiner
@ -483,6 +486,34 @@
:method-count-assert 14
:size-assert #xa04
:flag-assert #xe09a00a04
(:states
*camera-base-mode*
cam-bike
cam-billy
cam-circular
cam-decel
cam-endlessfall
cam-eye
cam-fixed
cam-fixed-read-entity
cam-free-floating
cam-launcher-longfall
cam-launcher-shortfall
cam-lookat
cam-mistycannon
cam-orbit
cam-periscope
cam-point-watch
cam-pov
cam-pov-track
cam-pov180
cam-robotboss
cam-spline
cam-standoff
cam-standoff-read-entity
cam-stick
cam-string
)
)
;; definition for method 3 of type camera-slave
@ -603,6 +634,10 @@
:method-count-assert 14
:size-assert #x964
:flag-assert #xe09000964
(:states
cam-master-active
list-keeper-active
)
)
;; definition for method 3 of type camera-master

View File

@ -27,6 +27,9 @@
:method-count-assert 14
:size-assert #x7c
:flag-assert #xe0100007c
(:states
part-tester-idle
)
)
;; definition for method 3 of type part-tester

View File

@ -17,6 +17,9 @@
:method-count-assert 20
:size-assert #xb4
:flag-assert #x14005000b4
(:states
viewer-process
)
)
;; definition for method 3 of type viewer

View File

@ -31,6 +31,9 @@
(initialize (_type_) _type_ 20)
(initialize-params (_type_ int float) none 21)
)
(:states
(hud-collecting handle)
)
)
;; definition for method 3 of type collectable
@ -1511,6 +1514,10 @@
:method-count-assert 31
:size-assert #x19c
:flag-assert #x1f0130019c
(:states
(fuel-cell-clone-anim handle)
(fuel-cell-spline-slider handle float float)
)
)
;; definition for method 3 of type fuel-cell
@ -3011,6 +3018,9 @@
:method-count-assert 20
:size-assert #xd4
:flag-assert #x14007000d4
(:states
ecovalve-idle
)
)
;; definition for method 3 of type ecovalve

View File

@ -31,6 +31,10 @@
(dummy-18 (_type_) none 18)
(dummy-19 (_type_) none 19)
)
(:states
(process-drawable-art-error string)
process-drawable-idle
)
)
;; definition for method 3 of type process-drawable

View File

@ -23,6 +23,9 @@
:method-count-assert 20
:size-assert #x114
:flag-assert #x1400b00114
(:states
manipy-idle
)
)
;; definition for method 3 of type manipy
@ -62,6 +65,9 @@
(:methods
(dummy-20 (_type_) none 20)
)
(:states
part-spawner-active
)
)
;; definition for method 3 of type part-spawner
@ -96,6 +102,9 @@
:method-count-assert 14
:size-assert #xf8
:flag-assert #xe009000f8
(:states
part-tracker-process
)
)
;; definition for method 3 of type part-tracker
@ -149,6 +158,9 @@
(:methods
(dummy-14 (_type_ pair) process 14)
)
(:states
camera-tracker-process
)
)
;; definition for method 3 of type camera-tracker
@ -193,6 +205,9 @@
:method-count-assert 20
:size-assert #xd0
:flag-assert #x14006000d0
(:states
touch-tracker-idle
)
)
;; definition for method 3 of type touch-tracker
@ -220,6 +235,10 @@
:method-count-assert 14
:size-assert #x98
:flag-assert #xe00300098
(:states
swingpole-active
swingpole-stance
)
)
;; definition for method 3 of type swingpole
@ -285,6 +304,9 @@
:method-count-assert 14
:size-assert #xc4
:flag-assert #xe006000c4
(:states
othercam-running
)
)
;; definition for method 3 of type othercam

View File

@ -510,6 +510,80 @@
((-> self cur-trans-hook))
(none)
)
:code
(behavior ()
(logclear! (-> self mask) (process-mask heap-shrunk))
(while #t
((-> self cur-post-hook))
(if (!= (-> self anim-mode) 'clone-anim)
(ja-post)
)
(suspend)
(case (-> self anim-mode)
(('loop)
(let ((a0-4 (-> self skel root-channel 0)))
(set! (-> a0-4 param 0) 1.0)
(joint-control-channel-group-eval! a0-4 (the-as art-joint-anim #f) num-func-loop!)
)
)
(('play)
(let ((a0-7 (-> self skel root-channel 0)))
(set! (-> a0-7 param 0) (the float (+ (-> a0-7 frame-group data 0 length) -1)))
(set! (-> a0-7 param 1) 1.0)
(joint-control-channel-group-eval! a0-7 (the-as art-joint-anim #f) num-func-seek!)
)
)
(('copy-parent)
(let ((v1-18 (-> self skel root-channel 0)))
(set! (-> v1-18 num-func) num-func-identity)
(set! (-> v1-18 frame-num)
(-> (the-as process-drawable (ppointer->process (-> self parent))) skel root-channel 0 frame-num)
)
)
)
(('clone-parent)
(let ((gp-0 (ppointer->process (-> self parent))))
(set! (-> self post-hook) #f)
(joint-control-copy! (-> self skel) (-> (the-as process-drawable gp-0) skel))
(joint-control-remap!
(-> self skel)
(-> self draw art-group)
(-> (the-as process-drawable gp-0) draw art-group)
'()
0
""
)
)
(dummy-17 self)
)
(('clone-anim)
(clone-anim-once
(the-as handle (if (handle->process (-> self cur-target-handle))
(the-as int (-> self cur-target-handle))
(ppointer->handle (-> self parent))
)
)
(the-as int (-> self draw origin-joint-index))
(the-as symbol (-> self clone-copy-trans))
""
)
)
(('still)
)
(('play1)
(let ((a0-33 (-> self skel root-channel 0)))
(set! (-> a0-33 param 0) (the float (+ (-> a0-33 frame-group data 0 length) -1)))
(set! (-> a0-33 param 1) 1.0)
(joint-control-channel-group-eval! a0-33 (the-as art-joint-anim #f) num-func-seek!)
)
(if (ja-done? 0)
(deactivate self)
)
)
)
)
(none)
)
)
;; definition for function manipy-init
@ -1274,6 +1348,9 @@
:method-count-assert 20
:size-assert #xbc
:flag-assert #x14005000bc
(:states
med-res-level-idle
)
)
;; definition for method 3 of type med-res-level
@ -1545,6 +1622,11 @@
:method-count-assert 20
:size-assert #xe4
:flag-assert #x14008000e4
(:states
launcher-active
launcher-deactivated
launcher-idle
)
)
;; definition for method 3 of type launcher

View File

@ -8,6 +8,9 @@
:method-count-assert 14
:size-assert #xa04
:flag-assert #xe09a00a04
(:states
cam-voicebox
)
)
;; definition for method 3 of type camera-voicebox

View File

@ -69,6 +69,9 @@
:method-count-assert 14
:size-assert #xb8
:flag-assert #xe005000b8
(:states
time-of-day-tick
)
)
;; definition for method 3 of type time-of-day-proc

View File

@ -38,10 +38,67 @@
(dummy-20 (_type_ collide-cache) object 20)
)
(:states
target-attack
(target-attack-air symbol)
(target-attack-uppercut float float)
(target-attack-uppercut-jump float float)
target-billy-game
(target-clone-anim handle)
(target-continue continue-point)
(target-death symbol)
target-demo
(target-double-jump float float)
(target-duck-high-jump float float symbol)
(target-duck-high-jump-jump float float symbol)
target-duck-stance
target-duck-walk
(target-eco-powerup object float)
target-edge-grab
(target-edge-grab-jump float float)
target-edge-grab-off
(target-falling symbol)
(target-final-door basic handle)
(target-fishing handle)
(target-flop float float float)
(target-flop-hit-ground symbol)
(target-flut-air-attack float)
target-flut-air-attack-hit-ground
(target-flut-clone-anim handle)
(target-flut-death symbol)
(target-flut-double-jump float float)
target-flut-falling
(target-flut-get-off handle)
(target-flut-get-off-hit-ground symbol)
(target-flut-get-off-jump handle)
(target-flut-get-on handle)
target-flut-grab
(target-flut-hit symbol attack-info)
target-flut-hit-ground
(target-flut-jump float float)
target-flut-running-attack
target-flut-stance
(target-flut-start handle)
target-flut-walk
target-grab
(target-high-jump float float basic)
(target-hit symbol attack-info)
(target-hit-ground symbol)
(target-hit-ground-hard float)
target-ice-stance
target-ice-walk
(target-jump float float surface)
(target-jump-forward float float)
(target-launch float symbol vector int)
target-load-wait
target-look-around
(target-periscope handle)
(target-play-anim string handle)
(target-pole-cycle handle)
(target-pole-flip-forward float float float)
(target-pole-flip-forward-jump float float)
(target-pole-flip-up object object float)
(target-pole-flip-up-jump float float)
target-racing
(target-racing-bounce float float symbol)
(target-racing-clone-anim handle)
(target-racing-death symbol)
@ -53,10 +110,40 @@
target-racing-grab
(target-racing-hit handle attack-info)
(target-racing-jump float float symbol)
(target-racing-smack float symbol)
(target-racing-start handle)
target-running-attack
target-slide-down
target-snowball
(target-snowball-start handle)
target-stance
target-stance-ambient
target-stance-look-around
target-startup
target-swim-down
(target-swim-jump float float)
(target-swim-jump-jump float float surface)
target-swim-stance
target-swim-up
target-swim-walk
target-title
target-title-play
target-title-wait
target-tube
(target-tube-death symbol)
(target-tube-hit handle attack-info)
(target-tube-jump float float)
(target-tube-start handle)
target-turn-around
target-wade-stance
target-wade-walk
target-walk
(target-warp-in vector vector)
(target-warp-out vector vector)
target-wheel
(target-wheel-flip float float)
target-yellow-blast
target-yellow-jump-blast
)
)
@ -106,6 +193,9 @@
:method-count-assert 20
:size-assert #xcc
:flag-assert #x14006000cc
(:states
sidekick-clone
)
)
;; definition for method 3 of type sidekick

Some files were not shown because too many files have changed in this diff Show More