mirror of
https://github.com/open-goal/jak-project.git
synced 2024-11-27 08:20:47 +00:00
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:
parent
691c33f8d9
commit
50197c0695
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -5,7 +5,6 @@
|
||||
;; name in dgo: cam-states
|
||||
;; dgos: GAME, ENGINE
|
||||
|
||||
(define-extern cam-string (state camera-slave))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -9,7 +9,6 @@
|
||||
(define-extern *edit-instance* string)
|
||||
|
||||
;; Necessary forward declarations
|
||||
(define-extern cam-robotboss (state camera-slave))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
|
@ -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)
|
||||
)
|
||||
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
@ -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)
|
||||
)
|
||||
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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))
|
||||
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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))
|
||||
|
@ -6,7 +6,6 @@
|
||||
;; dgos: GAME, ENGINE
|
||||
|
||||
(define-extern *sidekick-sg* skeleton-group)
|
||||
(define-extern sidekick-clone (state sidekick))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
@ -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
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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
@ -5,7 +5,6 @@
|
||||
;; name in dgo: basebutton
|
||||
;; dgos: GAME, COMMON, L1
|
||||
|
||||
(define-extern target-warp-out (state vector vector target))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
|
@ -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)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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)
|
||||
)
|
||||
|
||||
|
@ -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)
|
||||
)
|
||||
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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
@ -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))
|
||||
|
||||
|
@ -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)
|
||||
)
|
||||
|
@ -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
@ -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
@ -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)
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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
@ -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
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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))
|
||||
|
@ -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)
|
||||
)
|
||||
|
@ -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)
|
||||
)
|
||||
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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))
|
||||
|
@ -25,6 +25,11 @@
|
||||
(dummy-21 (_type_) object 21)
|
||||
(dummy-22 (_type_) symbol 22)
|
||||
)
|
||||
(:states
|
||||
ram-fun-idle
|
||||
ram-give-fuel-cell
|
||||
ram-idle
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
@ -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
|
||||
)
|
||||
)
|
||||
|
@ -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
@ -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
@ -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
|
||||
|
||||
|
@ -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)
|
||||
)
|
||||
|
||||
|
@ -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
@ -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
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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
@ -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
@ -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")
|
||||
)
|
||||
)
|
||||
)
|
||||
|
@ -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)))
|
||||
|
@ -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
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
3
test/decompiler/reference/engine/camera/cam-layout_REF.gc
generated
vendored
3
test/decompiler/reference/engine/camera/cam-layout_REF.gc
generated
vendored
@ -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
|
||||
|
35
test/decompiler/reference/engine/camera/camera-h_REF.gc
generated
vendored
35
test/decompiler/reference/engine/camera/camera-h_REF.gc
generated
vendored
@ -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
|
||||
|
3
test/decompiler/reference/engine/debug/part-tester_REF.gc
generated
vendored
3
test/decompiler/reference/engine/debug/part-tester_REF.gc
generated
vendored
@ -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
|
||||
|
3
test/decompiler/reference/engine/debug/viewer_REF.gc
generated
vendored
3
test/decompiler/reference/engine/debug/viewer_REF.gc
generated
vendored
@ -17,6 +17,9 @@
|
||||
:method-count-assert 20
|
||||
:size-assert #xb4
|
||||
:flag-assert #x14005000b4
|
||||
(:states
|
||||
viewer-process
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type viewer
|
||||
|
10
test/decompiler/reference/engine/game/collectables_REF.gc
generated
vendored
10
test/decompiler/reference/engine/game/collectables_REF.gc
generated
vendored
@ -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
|
||||
|
4
test/decompiler/reference/engine/game/game-h_REF.gc
generated
vendored
4
test/decompiler/reference/engine/game/game-h_REF.gc
generated
vendored
@ -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
|
||||
|
22
test/decompiler/reference/engine/game/generic-obs-h_REF.gc
generated
vendored
22
test/decompiler/reference/engine/game/generic-obs-h_REF.gc
generated
vendored
@ -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
|
||||
|
82
test/decompiler/reference/engine/game/generic-obs_REF.gc
generated
vendored
82
test/decompiler/reference/engine/game/generic-obs_REF.gc
generated
vendored
@ -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
|
||||
|
3
test/decompiler/reference/engine/game/voicebox_REF.gc
generated
vendored
3
test/decompiler/reference/engine/game/voicebox_REF.gc
generated
vendored
@ -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
|
||||
|
3
test/decompiler/reference/engine/gfx/time-of-day-h_REF.gc
generated
vendored
3
test/decompiler/reference/engine/gfx/time-of-day-h_REF.gc
generated
vendored
@ -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
|
||||
|
90
test/decompiler/reference/engine/target/target-h_REF.gc
generated
vendored
90
test/decompiler/reference/engine/target/target-h_REF.gc
generated
vendored
@ -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
Loading…
Reference in New Issue
Block a user