mirror of
https://github.com/open-goal/jak-project
synced 2026-07-10 23:22:17 -04:00
decomp: finish vol | helix-water | minecart (#1016)
* some fixes, but no file unblocked completely yet - `balloonlurker` is close * decomp: finish `vol` - i did it!...i think * decomp: finish `helix-water` * decomp: finish `minecart` * fix `define-perm`s
This commit is contained in:
@@ -1061,11 +1061,13 @@
|
||||
(rolling-ring-hint-be-quick-to-next #x340)
|
||||
(rolling-ring-hint-be-quick-all #x341)
|
||||
|
||||
(sunken-helix-daxter-bad-feeling #x344)
|
||||
(sunken-blue-eco-charger-hint #x345)
|
||||
(sunken-take-it-easy-hot-pipes #x34e)
|
||||
(sunken-double-lurker-hint #x347)
|
||||
(sunken-helix-daxter-eco-rising #x348)
|
||||
(sunken-qbert-plat-hint #x34a)
|
||||
(sunken-bully-dive-hint #x34b)
|
||||
(sunken-take-it-easy-hot-pipes #x34e)
|
||||
|
||||
(sunken-blue-eco-charger-all-hint #x34d)
|
||||
|
||||
@@ -11294,9 +11296,9 @@
|
||||
:flag-assert #x38000000b8
|
||||
(:methods
|
||||
(new (symbol type process-drawable collide-list-enum) _type_)
|
||||
(TODO-RENAME-28 (_type_ vector) none 28)
|
||||
(TODO-RENAME-28 (_type_ vector) object 28) ;; ret - symbol | float (CSPG::9)
|
||||
(dummy-29 (_type_ int) none 29)
|
||||
(TODO-RENAME-30 (_type_ vector) none 30)
|
||||
(TODO-RENAME-30 (_type_ vector) object 30) ;; ret - symbol | float (CSPG::9)
|
||||
(dummy-31 (_type_) none 31)
|
||||
(dummy-32 (_type_ object uint) none 32)
|
||||
(dummy-33 (_type_ vector uint) none 33)
|
||||
@@ -19012,19 +19014,19 @@
|
||||
((volume-type symbol :offset-assert 0)
|
||||
(point-count int16 :offset-assert 4)
|
||||
(normal-count int16 :offset-assert 6)
|
||||
(first-point vector :offset-assert 8)
|
||||
(first-normal vector :offset-assert 12)
|
||||
(first-point (pointer vector) :offset-assert 8)
|
||||
(first-normal (pointer vector) :offset-assert 12)
|
||||
(num-planes int32 :offset-assert 16)
|
||||
(plane uint32 :offset-assert 20)
|
||||
(plane (inline-array plane) :offset-assert 20)
|
||||
)
|
||||
:pack-me
|
||||
:method-count-assert 12
|
||||
:size-assert #x18
|
||||
:flag-assert #xc00000018
|
||||
(:methods
|
||||
(dummy-9 () none 9)
|
||||
(dummy-10 () none 10)
|
||||
(dummy-11 () none 11)
|
||||
(dummy-9 (_type_ symbol vector-array vector-array) symbol 9)
|
||||
(debug-draw (_type_) none 10)
|
||||
(dummy-11 (_type_ vector float) symbol 11)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -19035,16 +19037,16 @@
|
||||
(pos-vol plane-volume 32 :inline :offset-assert 16)
|
||||
(neg-vol-count int32 :offset-assert 784)
|
||||
(neg-vol plane-volume 32 :inline :offset-assert 788)
|
||||
(debug-point basic :offset-assert 1556)
|
||||
(debug-normal basic :offset-assert 1560)
|
||||
(debug-point vector-array :offset-assert 1556)
|
||||
(debug-normal vector-array :offset-assert 1560)
|
||||
)
|
||||
:method-count-assert 12
|
||||
:size-assert #x61c
|
||||
:flag-assert #xc0000061c
|
||||
(:methods
|
||||
(new (symbol type process-drawable) _type_ 0)
|
||||
(dummy-9 (_type_) none 9)
|
||||
(dummy-10 (_type_ vector) none 10)
|
||||
(dummy-9 (_type_) symbol 9)
|
||||
(dummy-10 (_type_ vector) symbol 10)
|
||||
(TODO-RENAME-11 (_type_) symbol 11)
|
||||
)
|
||||
)
|
||||
@@ -20572,7 +20574,7 @@
|
||||
|
||||
;; - Functions
|
||||
|
||||
(define-extern plane-volume-intersect-dist function)
|
||||
(define-extern plane-volume-intersect-dist (function vector vector vector float))
|
||||
|
||||
|
||||
;; ----------------------
|
||||
@@ -32834,7 +32836,8 @@
|
||||
)
|
||||
|
||||
(deftype sunkencam (pov-camera)
|
||||
((seq uint64 :offset-assert 224)
|
||||
((ppointer-override (pointer sunkencam) :score 100 :offset 24)
|
||||
(seq uint64 :offset-assert 224)
|
||||
)
|
||||
:method-count-assert 30
|
||||
:size-assert #xe8
|
||||
@@ -33665,13 +33668,17 @@
|
||||
:size-assert #xb0
|
||||
:heap-base #x40
|
||||
:flag-assert #x14004000b0
|
||||
(:states
|
||||
helix-slide-door-idle-open
|
||||
helix-slide-door-idle-closed
|
||||
helix-slide-door-close)
|
||||
)
|
||||
|
||||
(deftype helix-button (process-drawable)
|
||||
((root-override collide-shape-moving :score 100 :offset 112)
|
||||
(my-water entity-actor :offset-assert 176)
|
||||
(my-door entity-actor :offset-assert 180)
|
||||
(fcell-handle uint64 :offset-assert 184)
|
||||
(fcell-handle handle :offset-assert 184)
|
||||
(down-y float :offset-assert 192)
|
||||
(spawn-trans vector :inline :offset-assert 208)
|
||||
)
|
||||
@@ -33679,6 +33686,12 @@
|
||||
:size-assert #xe0
|
||||
:heap-base #x70
|
||||
:flag-assert #x14007000e0
|
||||
(:states
|
||||
helix-button-startup
|
||||
helix-button-idle-down
|
||||
helix-button-quick-activate
|
||||
helix-button-activate
|
||||
helix-button-idle-up)
|
||||
)
|
||||
|
||||
(deftype helix-dark-eco (dark-eco-pool)
|
||||
@@ -33695,35 +33708,28 @@
|
||||
(transv-y float :offset-assert 184)
|
||||
(start-y float :offset-assert 188)
|
||||
(end-y float :offset-assert 192)
|
||||
(dark-eco uint32 :offset-assert 196)
|
||||
(dark-eco (pointer helix-dark-eco) :offset-assert 196)
|
||||
)
|
||||
:method-count-assert 22
|
||||
:size-assert #xc8
|
||||
:heap-base #x60
|
||||
:flag-assert #x16006000c8
|
||||
(:methods
|
||||
(dummy-20 () none 20)
|
||||
(dummy-21 () none 21)
|
||||
(dummy-20 (_type_) none 20)
|
||||
(dummy-21 (_type_) object 21)
|
||||
)
|
||||
(:states
|
||||
helix-water-idle
|
||||
helix-water-activated)
|
||||
)
|
||||
|
||||
;; - Unknowns
|
||||
|
||||
(define-extern *helix-water* helix-water) ;; unknown type
|
||||
(define-extern helix-water-idle (state helix-water)) ;; unknown type
|
||||
(define-extern helix-water-activated (state helix-water)) ;; unknown type
|
||||
(define-extern *helix-button-sg* skeleton-group)
|
||||
(define-extern *helix-button* helix-button) ;; unknown type
|
||||
(define-extern helix-button-startup (state helix-button)) ;; unknown type
|
||||
(define-extern helix-button-idle-down (state helix-button)) ;; unknown type
|
||||
(define-extern helix-button-quick-activate (state helix-button)) ;; unknown type
|
||||
(define-extern helix-button-activate (state helix-button)) ;; unknown type
|
||||
(define-extern helix-button-idle-up (state helix-button)) ;; unknown type
|
||||
(define-extern *helix-slide-door-sg* skeleton-group)
|
||||
(define-extern *helix-slide-door* helix-slide-door) ;; unknown type
|
||||
(define-extern helix-slide-door-idle-open (state helix-slide-door)) ;; unknown type
|
||||
(define-extern helix-slide-door-idle-closed (state helix-slide-door)) ;; unknown type
|
||||
(define-extern helix-slide-door-close (state helix-slide-door)) ;; unknown type
|
||||
|
||||
|
||||
;; ----------------------
|
||||
@@ -34849,8 +34855,9 @@
|
||||
;; - Types
|
||||
|
||||
(deftype minecartsteel (process-drawable)
|
||||
((index int32 :offset-assert 176)
|
||||
(anim basic :offset-assert 180)
|
||||
((root-override collide-shape-moving :score 100 :offset 112)
|
||||
(index int32 :offset-assert 176)
|
||||
(anim spool-anim :offset-assert 180)
|
||||
(sync sync-info :inline :offset-assert 184)
|
||||
)
|
||||
:method-count-assert 21
|
||||
@@ -34863,7 +34870,7 @@
|
||||
|
||||
;; - Functions
|
||||
|
||||
(define-extern minecartsteel-initialize-by-other function)
|
||||
(define-extern minecartsteel-initialize-by-other (function entity-actor float object :behavior minecartsteel))
|
||||
|
||||
;; - Unknowns
|
||||
|
||||
|
||||
@@ -2822,7 +2822,10 @@
|
||||
|
||||
"(method 27 sunkenfisha)": [[64, "vector"]],
|
||||
|
||||
"(event idle minecartsteel)": [[16, "collide-overlap-result"]],
|
||||
"(event idle minecartsteel)": [
|
||||
[16, "collide-overlap-result"],
|
||||
[128, "event-message-block"]
|
||||
],
|
||||
|
||||
"(method 43 assistant-villagec)": [[16, "vector"]],
|
||||
|
||||
@@ -5895,5 +5898,47 @@
|
||||
[48, "vector"]
|
||||
],
|
||||
|
||||
"(method 9 plane-volume)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
[48, "vector"],
|
||||
[64, "vector"],
|
||||
[80, "vector"],
|
||||
[96, "vector"],
|
||||
[112, "vector"],
|
||||
[128, "vector"]
|
||||
],
|
||||
|
||||
"(code helix-button-activate)": [
|
||||
[16, "event-message-block"],
|
||||
[96, "vector"],
|
||||
[112, "vector"]
|
||||
],
|
||||
|
||||
"(code helix-button-quick-activate)": [
|
||||
[16, "event-message-block"],
|
||||
[96, "vector"]
|
||||
],
|
||||
|
||||
"(method 21 helix-water)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code helix-water-idle)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(trans helix-water-activated)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code helix-water-activated)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code idle minecartsteel)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"placeholder-do-not-add-below!": []
|
||||
}
|
||||
|
||||
@@ -3480,7 +3480,9 @@
|
||||
|
||||
"(code helix-slide-door-close)": [[10, "v1", "art-joint-anim"]],
|
||||
|
||||
"(code helix-button-startup)": [[39, "v1", "process-drawable"]],
|
||||
"(code helix-button-startup)": [
|
||||
[39, "v1", "collectable"]
|
||||
],
|
||||
|
||||
"(method 73 green-eco-lurker)": [[6, "a1", "touching-shapes-entry"]],
|
||||
|
||||
@@ -7018,5 +7020,25 @@
|
||||
[179, "s3", "collide-shape-prim-group"]
|
||||
],
|
||||
|
||||
"(method 11 plane-volume)": [
|
||||
[14, "f2", "float"]
|
||||
],
|
||||
|
||||
"(method 9 plane-volume)": [
|
||||
[245, "f2", "float"]
|
||||
],
|
||||
|
||||
"(method 21 helix-water)": [
|
||||
[27, "a0", "process-drawable"]
|
||||
],
|
||||
|
||||
"(method 7 helix-water)": [
|
||||
[14, "t9", "(function process-drawable int process-drawable)"]
|
||||
],
|
||||
|
||||
"(code helix-button-activate)": [
|
||||
[37, "v0", "sunkencam"]
|
||||
],
|
||||
|
||||
"placeholder-do-not-add-below": []
|
||||
}
|
||||
|
||||
+3078
-4193
File diff suppressed because it is too large
Load Diff
@@ -253,9 +253,9 @@
|
||||
:flag-assert #x38000000b8
|
||||
(:methods
|
||||
(new (symbol type process-drawable collide-list-enum) _type_)
|
||||
(TODO-RENAME-28 (_type_ vector) none 28)
|
||||
(TODO-RENAME-28 (_type_ vector) object 28) ;; ret - symbol | float (CSPG::9)
|
||||
(dummy-29 (_type_ int) none 29)
|
||||
(TODO-RENAME-30 (_type_ vector) none 30)
|
||||
(TODO-RENAME-30 (_type_ vector) object 30) ;; ret - symbol | float (CSPG::9)
|
||||
(dummy-31 (_type_) none 31)
|
||||
(dummy-32 (_type_ object uint) none 32)
|
||||
(dummy-33 (_type_ vector uint) none 33)
|
||||
|
||||
@@ -1387,7 +1387,6 @@
|
||||
(defmethod TODO-RENAME-28 collide-shape ((obj collide-shape) (arg0 vector))
|
||||
(vector+! (-> obj trans) (-> obj trans) arg0)
|
||||
(dummy-9 (-> obj root-prim) arg0)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod dummy-9 collide-shape-prim ((obj collide-shape-prim) (arg0 vector))
|
||||
@@ -1422,7 +1421,6 @@
|
||||
(vector-! v1-0 arg0 (-> obj trans))
|
||||
(TODO-RENAME-28 obj v1-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod set-root-prim! collide-shape ((obj collide-shape) (arg0 collide-shape-prim))
|
||||
|
||||
@@ -143,7 +143,7 @@
|
||||
(set! (-> s4-0 prim-core collide-as) (the-as uint #x8040))
|
||||
(set! (-> s4-0 collide-with) (the-as uint 16))
|
||||
(set-vector! (-> s4-0 local-sphere) 0.0 3276.8 0.0 3276.8)
|
||||
(set-root-prim! s5-0 (the-as collide-shape-prim-group s4-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)
|
||||
@@ -1137,7 +1137,7 @@
|
||||
(set! (-> s4-0 prim-core collide-as) (the-as uint #x8040))
|
||||
(set! (-> s4-0 collide-with) (the-as uint 16))
|
||||
(set-vector! (-> s4-0 local-sphere) 0.0 3276.8 0.0 8192.0)
|
||||
(set-root-prim! s5-0 (the-as collide-shape-prim-group s4-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)
|
||||
@@ -1295,7 +1295,7 @@
|
||||
(set! (-> s4-0 prim-core collide-as) (the-as uint #x8040))
|
||||
(set! (-> s4-0 collide-with) (the-as uint 16))
|
||||
(set-vector! (-> s4-0 local-sphere) 0.0 2048.0 0.0 4915.2)
|
||||
(set-root-prim! s5-0 (the-as collide-shape-prim-group s4-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)
|
||||
@@ -2090,7 +2090,7 @@
|
||||
(set! (-> s4-0 collide-with) (the-as uint 16))
|
||||
(set! (-> s4-0 transform-index) 3)
|
||||
(set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 4915.2)
|
||||
(set-root-prim! s5-0 (the-as collide-shape-prim-group s4-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)
|
||||
@@ -2443,7 +2443,7 @@
|
||||
(set! (-> s4-0 prim-core collide-as) (the-as uint #x8040))
|
||||
(set! (-> s4-0 collide-with) (the-as uint 16))
|
||||
(set-vector! (-> s4-0 local-sphere) 0.0 2457.6 0.0 4915.2)
|
||||
(set-root-prim! s5-0 (the-as collide-shape-prim-group s4-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)
|
||||
@@ -2894,7 +2894,7 @@
|
||||
(set! (-> s4-0 prim-core offense) 1)
|
||||
(set! (-> s4-0 transform-index) 3)
|
||||
(set-vector! (-> s4-0 local-sphere) 0.0 3686.4 0.0 6144.0)
|
||||
(set-root-prim! s5-0 (the-as collide-shape-prim-group s4-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)
|
||||
@@ -2954,7 +2954,7 @@
|
||||
(set! (-> s2-0 prim-core collide-as) (the-as uint 64))
|
||||
(set! (-> s2-0 collide-with) (the-as uint 16))
|
||||
(set-vector! (-> s2-0 local-sphere) 0.0 4915.2 0.0 6553.6)
|
||||
(set-root-prim! s3-0 (the-as collide-shape-prim-group s2-0))
|
||||
(set-root-prim! s3-0 s2-0)
|
||||
)
|
||||
(set! (-> s3-0 nav-radius) (* 0.75 (-> s3-0 root-prim local-sphere w)))
|
||||
(backup-collide-with-as s3-0)
|
||||
|
||||
@@ -8,22 +8,22 @@
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype plane-volume (structure)
|
||||
((volume-type symbol :offset-assert 0)
|
||||
(point-count int16 :offset-assert 4)
|
||||
(normal-count int16 :offset-assert 6)
|
||||
(first-point vector :offset-assert 8)
|
||||
(first-normal vector :offset-assert 12)
|
||||
(num-planes int32 :offset-assert 16)
|
||||
(plane uint32 :offset-assert 20)
|
||||
((volume-type symbol :offset-assert 0)
|
||||
(point-count int16 :offset-assert 4)
|
||||
(normal-count int16 :offset-assert 6)
|
||||
(first-point (pointer vector) :offset-assert 8)
|
||||
(first-normal (pointer vector) :offset-assert 12)
|
||||
(num-planes int32 :offset-assert 16)
|
||||
(plane (inline-array plane) :offset-assert 20)
|
||||
)
|
||||
:pack-me
|
||||
:method-count-assert 12
|
||||
:size-assert #x18
|
||||
:flag-assert #xc00000018
|
||||
(:methods
|
||||
(dummy-9 () none 9)
|
||||
(dummy-10 () none 10)
|
||||
(dummy-11 () none 11)
|
||||
(dummy-9 (_type_ symbol vector-array vector-array) symbol 9)
|
||||
(debug-draw (_type_) none 10)
|
||||
(dummy-11 (_type_ vector float) symbol 11)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -35,134 +35,76 @@
|
||||
(pos-vol plane-volume 32 :inline :offset-assert 16)
|
||||
(neg-vol-count int32 :offset-assert 784)
|
||||
(neg-vol plane-volume 32 :inline :offset-assert 788)
|
||||
(debug-point basic :offset-assert 1556)
|
||||
(debug-normal basic :offset-assert 1560)
|
||||
(debug-point vector-array :offset-assert 1556)
|
||||
(debug-normal vector-array :offset-assert 1560)
|
||||
)
|
||||
:method-count-assert 12
|
||||
:size-assert #x61c
|
||||
:flag-assert #xc0000061c
|
||||
(:methods
|
||||
(new (symbol type process-drawable) _type_ 0)
|
||||
(dummy-9 (_type_) none 9)
|
||||
(dummy-10 (_type_ vector) none 10)
|
||||
(dummy-9 (_type_) symbol 9)
|
||||
(dummy-10 (_type_ vector) symbol 10)
|
||||
(TODO-RENAME-11 (_type_) symbol 11)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defmethod
|
||||
new
|
||||
vol-control
|
||||
((allocation symbol) (type-to-make type) (arg0 process-drawable))
|
||||
(let
|
||||
((gp-0
|
||||
(the-as
|
||||
object
|
||||
(object-new allocation type-to-make (the-as int (-> type-to-make size)))
|
||||
(defmethod new vol-control ((allocation symbol) (type-to-make type) (arg0 process-drawable))
|
||||
(let ((gp-0 (the-as object (object-new allocation type-to-make (the-as int (-> type-to-make size))))))
|
||||
(when (zero? (the-as vol-control gp-0))
|
||||
(go process-drawable-art-error "memory")
|
||||
(set! gp-0 0)
|
||||
(goto cfg-13)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (zero? (the-as vol-control gp-0))
|
||||
(go process-drawable-art-error "memory")
|
||||
(set! gp-0 0)
|
||||
(goto cfg-13)
|
||||
)
|
||||
(set! (-> (the-as vol-control gp-0) process) arg0)
|
||||
(let* ((s5-1 (the-as res-lump (-> (the-as vol-control gp-0) process entity)))
|
||||
(s4-0
|
||||
(->
|
||||
((method-of-type res-lump lookup-tag-idx)
|
||||
(the-as entity s5-1)
|
||||
'vol
|
||||
'exact
|
||||
0.0
|
||||
)
|
||||
lo
|
||||
(set! (-> (the-as vol-control gp-0) process) arg0)
|
||||
(let* ((s5-1 (the-as res-lump (-> (the-as vol-control gp-0) process entity)))
|
||||
(s4-0 (-> ((method-of-type res-lump lookup-tag-idx) (the-as entity s5-1) 'vol 'exact 0.0) lo))
|
||||
)
|
||||
(when (>= (the-as int s4-0) 0)
|
||||
(let ((s3-0 (the-as uint s4-0))
|
||||
(s2-0 (-> s5-1 tag s4-0))
|
||||
)
|
||||
0
|
||||
(while (= (-> s2-0 name) (-> s5-1 tag s4-0 name))
|
||||
(let ((v1-12 (make-property-data s5-1 0.0 (the-as res-tag-pair s3-0) (the-as pointer #f)))
|
||||
(a0-8 (-> (the-as vol-control gp-0) pos-vol (-> (the-as vol-control gp-0) pos-vol-count)))
|
||||
)
|
||||
(set! (-> a0-8 num-planes) (the-as int (-> s2-0 elt-count)))
|
||||
(set! (-> a0-8 plane) (the-as (inline-array plane) v1-12))
|
||||
)
|
||||
(+! (-> (the-as vol-control gp-0) pos-vol-count) 1)
|
||||
(+! s3-0 1)
|
||||
(set! s2-0 (-> s5-1 tag s3-0))
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (>= (the-as int s4-0) 0)
|
||||
(let ((s3-0 (the-as uint s4-0))
|
||||
(s2-0 (-> s5-1 tag s4-0))
|
||||
)
|
||||
0
|
||||
(while (= (-> s2-0 name) (-> s5-1 tag s4-0 name))
|
||||
(let
|
||||
((v1-12
|
||||
(make-property-data
|
||||
s5-1
|
||||
0.0
|
||||
(the-as res-tag-pair s3-0)
|
||||
(the-as pointer #f)
|
||||
)
|
||||
)
|
||||
(a0-8
|
||||
(->
|
||||
(the-as vol-control gp-0)
|
||||
pos-vol
|
||||
(-> (the-as vol-control gp-0) pos-vol-count)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-8 num-planes) (the-as int (-> s2-0 elt-count)))
|
||||
(set! (-> a0-8 plane) (the-as uint v1-12))
|
||||
)
|
||||
(+! (-> (the-as vol-control gp-0) pos-vol-count) 1)
|
||||
(+! s3-0 1)
|
||||
(set! s2-0 (-> s5-1 tag s3-0))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((s5-2 (the-as res-lump (-> (the-as vol-control gp-0) process entity)))
|
||||
(s4-1
|
||||
(->
|
||||
((method-of-type res-lump lookup-tag-idx)
|
||||
(the-as entity s5-2)
|
||||
'cutoutvol
|
||||
'exact
|
||||
0.0
|
||||
)
|
||||
lo
|
||||
(let* ((s5-2 (the-as res-lump (-> (the-as vol-control gp-0) process entity)))
|
||||
(s4-1 (-> ((method-of-type res-lump lookup-tag-idx) (the-as entity s5-2) 'cutoutvol 'exact 0.0) lo))
|
||||
)
|
||||
(when (>= (the-as int s4-1) 0)
|
||||
(let ((s3-1 (the-as uint s4-1))
|
||||
(s2-1 (-> s5-2 tag s4-1))
|
||||
)
|
||||
0
|
||||
(while (= (-> s2-1 name) (-> s5-2 tag s4-1 name))
|
||||
(let ((v1-31 (make-property-data s5-2 0.0 (the-as res-tag-pair s3-1) (the-as pointer #f)))
|
||||
(a0-19 (-> (the-as vol-control gp-0) neg-vol (-> (the-as vol-control gp-0) neg-vol-count)))
|
||||
)
|
||||
(set! (-> a0-19 num-planes) (the-as int (-> s2-1 elt-count)))
|
||||
(set! (-> a0-19 plane) (the-as (inline-array plane) v1-31))
|
||||
)
|
||||
(+! (-> (the-as vol-control gp-0) neg-vol-count) 1)
|
||||
(+! s3-1 1)
|
||||
(set! s2-1 (-> s5-2 tag s3-1))
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (>= (the-as int s4-1) 0)
|
||||
(let ((s3-1 (the-as uint s4-1))
|
||||
(s2-1 (-> s5-2 tag s4-1))
|
||||
)
|
||||
0
|
||||
(while (= (-> s2-1 name) (-> s5-2 tag s4-1 name))
|
||||
(let
|
||||
((v1-31
|
||||
(make-property-data
|
||||
s5-2
|
||||
0.0
|
||||
(the-as res-tag-pair s3-1)
|
||||
(the-as pointer #f)
|
||||
)
|
||||
)
|
||||
(a0-19
|
||||
(->
|
||||
(the-as vol-control gp-0)
|
||||
neg-vol
|
||||
(-> (the-as vol-control gp-0) neg-vol-count)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-19 num-planes) (the-as int (-> s2-1 elt-count)))
|
||||
(set! (-> a0-19 plane) (the-as uint v1-31))
|
||||
)
|
||||
(+! (-> (the-as vol-control gp-0) neg-vol-count) 1)
|
||||
(+! s3-1 1)
|
||||
(set! s2-1 (-> s5-2 tag s3-1))
|
||||
)
|
||||
)
|
||||
)
|
||||
(label cfg-13)
|
||||
(the-as vol-control gp-0)
|
||||
)
|
||||
(label cfg-13)
|
||||
(the-as vol-control gp-0)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod TODO-RENAME-11 vol-control ((obj vol-control))
|
||||
|
||||
@@ -5,3 +5,272 @@
|
||||
;; name in dgo: vol
|
||||
;; dgos: GAME, ENGINE
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(defun plane-volume-intersect-dist ((arg0 vector) (arg1 vector) (arg2 vector))
|
||||
(let ((f0-1 (vector-dot arg1 arg0))
|
||||
(f1-1 (vector-dot arg2 arg0))
|
||||
)
|
||||
(if (< 0.00001 (fabs f1-1))
|
||||
(/ (- (-> arg0 w) f0-1) f1-1)
|
||||
409600000.0
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
(defmethod dummy-9 plane-volume ((obj plane-volume) (arg0 symbol) (arg1 vector-array) (arg2 vector-array))
|
||||
(local-vars
|
||||
(sv-144 vector)
|
||||
(sv-148 float)
|
||||
(sv-152 int)
|
||||
(sv-160 vector)
|
||||
(sv-176 vector)
|
||||
(sv-192 vector)
|
||||
(sv-208 vector)
|
||||
(sv-224 vector)
|
||||
(sv-240 int)
|
||||
(sv-256 int)
|
||||
)
|
||||
(set! (-> obj volume-type) arg0)
|
||||
(set! (-> obj point-count) 0)
|
||||
(set! (-> obj first-point) (the-as (pointer vector) (-> arg1 data (-> arg1 length))))
|
||||
(set! (-> obj normal-count) 0)
|
||||
(set! (-> obj first-normal) (the-as (pointer vector) (-> arg2 data (-> arg2 length))))
|
||||
(dotimes (s3-0 (-> obj num-planes))
|
||||
(set! sv-176 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-176 quad) (the-as uint128 0))
|
||||
(set! sv-192 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-192 quad) (the-as uint128 0))
|
||||
(set! sv-208 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-208 quad) (the-as uint128 0))
|
||||
(set! sv-224 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-224 quad) (the-as uint128 0))
|
||||
0.0
|
||||
0.0
|
||||
0.0
|
||||
(set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0))
|
||||
(let ((s1-0 (new-stack-vector0))
|
||||
(s0-0 0)
|
||||
(s2-0 (-> obj plane))
|
||||
)
|
||||
(set! sv-240 0)
|
||||
(while (< sv-240 (-> obj num-planes))
|
||||
(when (!= s3-0 sv-240)
|
||||
(vector-float*! sv-176 (the-as vector (-> s2-0 sv-240)) (-> s2-0 sv-240 w))
|
||||
(vector-cross! sv-192 (the-as vector (-> s2-0 sv-240)) (the-as vector (-> s2-0 s3-0)))
|
||||
(vector-normalize! sv-192 1.0)
|
||||
(vector-cross! sv-208 sv-192 (the-as vector (-> s2-0 sv-240)))
|
||||
(vector-normalize! sv-208 1.0)
|
||||
(let ((f0-4 (plane-volume-intersect-dist (-> s2-0 s3-0) sv-176 sv-208)))
|
||||
(when (!= f0-4 409600000.0)
|
||||
(vector+float*! sv-224 sv-176 sv-208 f0-4)
|
||||
(set! sv-144 (new-stack-vector0))
|
||||
(set! sv-148 0.0)
|
||||
(set! sv-152 0)
|
||||
(set! sv-160 (new-stack-vector0))
|
||||
(set! (-> sv-144 quad) (-> sv-224 quad))
|
||||
(set! sv-256 0)
|
||||
(while (< sv-256 (-> obj num-planes))
|
||||
(when (and (!= sv-256 s3-0) (!= sv-256 sv-240))
|
||||
(let ((f30-0 (plane-volume-intersect-dist (-> s2-0 sv-256) sv-144 sv-192)))
|
||||
(cond
|
||||
((= f30-0 409600000.0)
|
||||
)
|
||||
((zero? sv-152)
|
||||
(vector+float*! sv-144 sv-144 sv-192 f30-0)
|
||||
(set! (-> sv-160 quad) (-> s2-0 sv-256 quad))
|
||||
(set! sv-148 8192000.0)
|
||||
(set! sv-152 1)
|
||||
)
|
||||
((begin (vector-float*! sv-224 sv-192 f30-0) (>= (vector-dot sv-224 sv-160) 0.0))
|
||||
)
|
||||
((>= (vector-dot sv-224 (the-as vector (-> s2-0 sv-256))) 0.0)
|
||||
(when (< (fabs f30-0) (fabs sv-148))
|
||||
(set! sv-148 f30-0)
|
||||
(set! sv-152 (+ sv-152 1))
|
||||
)
|
||||
)
|
||||
(else
|
||||
(vector+float*! sv-144 sv-144 sv-192 f30-0)
|
||||
(set! (-> sv-160 quad) (-> s2-0 sv-256 quad))
|
||||
(set! sv-152 (+ sv-152 1))
|
||||
(if (< (fabs f30-0) (fabs sv-148))
|
||||
(set! sv-148 (- sv-148 f30-0))
|
||||
(set! sv-148 0.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! sv-256 (+ sv-256 1))
|
||||
)
|
||||
(cond
|
||||
((zero? sv-152)
|
||||
)
|
||||
((= sv-148 0.0)
|
||||
)
|
||||
(else
|
||||
(dotimes (v1-70 (-> obj num-planes))
|
||||
(when (and (!= v1-70 s3-0) (!= v1-70 sv-240))
|
||||
(if (< 4096.0 (- (vector-dot sv-144 (the-as vector (-> s2-0 v1-70))) (the-as float (-> s2-0 v1-70 w))))
|
||||
(goto cfg-42)
|
||||
)
|
||||
)
|
||||
)
|
||||
(vector+float*! sv-224 sv-144 sv-192 sv-148)
|
||||
(cond
|
||||
((< (-> arg1 allocated-length) (+ (-> arg1 length) 2))
|
||||
(format 0 "ERROR <AG>: vol-control #x~X out of volume points~%" obj)
|
||||
)
|
||||
(else
|
||||
(set! (-> arg1 data (-> arg1 length) quad) (-> sv-144 quad))
|
||||
(set! (-> arg1 data (+ (-> arg1 length) 1) quad) (-> sv-224 quad))
|
||||
(+! (-> arg1 length) 2)
|
||||
(+! (-> obj point-count) 2)
|
||||
)
|
||||
)
|
||||
(vector+! s1-0 s1-0 sv-144)
|
||||
(vector+! s1-0 s1-0 sv-224)
|
||||
(+! s0-0 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(label cfg-42)
|
||||
(set! sv-240 (+ sv-240 1))
|
||||
)
|
||||
(when (nonzero? s0-0)
|
||||
(vector-float*! s1-0 s1-0 (/ 1.0 (the float s0-0)))
|
||||
(cond
|
||||
((< (-> arg2 allocated-length) (+ (-> arg2 length) 2))
|
||||
(format 0 "ERROR <AG>: vol-control #x~X out of volume normals~%" obj)
|
||||
)
|
||||
(else
|
||||
(set! (-> arg2 data (-> arg2 length) quad) (-> s1-0 quad))
|
||||
(set! (-> arg2 data (+ (-> arg2 length) 1) quad) (-> s2-0 s3-0 quad))
|
||||
(+! (-> arg2 length) 2)
|
||||
(let ((v1-112 (+ (-> obj normal-count) 2)))
|
||||
(set! (-> obj normal-count) v1-112)
|
||||
v1-112
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
(defmethod debug-draw plane-volume ((obj plane-volume))
|
||||
(let* ((v1-0 (-> obj volume-type))
|
||||
(s5-0 (cond
|
||||
((= v1-0 'vol)
|
||||
(the-as uint #x8000c000)
|
||||
)
|
||||
((= v1-0 'pvol)
|
||||
(the-as uint #x80808080)
|
||||
)
|
||||
(else
|
||||
(the-as uint #x800000c0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(s4-0 (-> obj first-point))
|
||||
)
|
||||
(dotimes (s3-0 (/ (-> obj point-count) 2))
|
||||
(add-debug-line
|
||||
#t
|
||||
(bucket-id debug-draw1)
|
||||
(the-as vector s4-0)
|
||||
(the-as vector (&-> s4-0 4))
|
||||
(the-as rgba s5-0)
|
||||
#f
|
||||
(the-as rgba -1)
|
||||
)
|
||||
(set! s4-0 (&-> s4-0 8))
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod dummy-11 plane-volume ((obj plane-volume) (arg0 vector) (arg1 float))
|
||||
(dotimes (v1-0 (-> obj num-planes))
|
||||
(if (< arg1 (- (vector-dot arg0 (the-as vector (-> obj plane v1-0))) (the-as float (-> obj plane v1-0 w))))
|
||||
(return #f)
|
||||
)
|
||||
)
|
||||
#t
|
||||
)
|
||||
|
||||
(defmethod dummy-9 vol-control ((obj vol-control))
|
||||
(with-pp
|
||||
(let ((a0-1 obj))
|
||||
(when (and (and *display-vol-marks* (logtest? (-> a0-1 flags) 1)) (logtest? (-> obj flags) 2))
|
||||
(when (zero? (-> obj debug-point))
|
||||
(let ((s5-0 pp))
|
||||
(let ((s6-1 (-> obj process)))
|
||||
)
|
||||
(let ((s4-0 0))
|
||||
(dotimes (v1-8 (-> obj pos-vol-count))
|
||||
(+! s4-0 (-> obj pos-vol v1-8 num-planes))
|
||||
)
|
||||
(dotimes (v1-11 (-> obj neg-vol-count))
|
||||
(+! s4-0 (-> obj neg-vol v1-11 num-planes))
|
||||
)
|
||||
(set! (-> obj debug-point) (new 'debug 'vector-array (* 10 s4-0)))
|
||||
(set! (-> obj debug-normal) (new 'debug 'vector-array (* 10 s4-0)))
|
||||
)
|
||||
(let ((s6-2 s5-0))
|
||||
)
|
||||
)
|
||||
(set! (-> obj debug-point length) 0)
|
||||
(set! (-> obj debug-normal length) 0)
|
||||
(dotimes (s5-1 (-> obj pos-vol-count))
|
||||
(dummy-9 (-> obj pos-vol s5-1) 'vol (-> obj debug-point) (-> obj debug-normal))
|
||||
)
|
||||
(dotimes (s5-2 (-> obj neg-vol-count))
|
||||
(dummy-9 (-> obj neg-vol s5-2) 'vol (-> obj debug-point) (-> obj debug-normal))
|
||||
)
|
||||
)
|
||||
(dotimes (s5-3 (-> obj pos-vol-count))
|
||||
(debug-draw (-> obj pos-vol s5-3))
|
||||
)
|
||||
(dotimes (s5-4 (-> obj neg-vol-count))
|
||||
(debug-draw (-> obj neg-vol s5-4))
|
||||
)
|
||||
)
|
||||
)
|
||||
(the-as symbol 0)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod dummy-10 vol-control ((obj vol-control) (arg0 vector))
|
||||
(dotimes (s4-0 (-> obj neg-vol-count))
|
||||
(if (dummy-11 (-> obj neg-vol s4-0) arg0 0.0)
|
||||
(return #f)
|
||||
)
|
||||
)
|
||||
(dotimes (s4-1 (-> obj pos-vol-count))
|
||||
(if (dummy-11 (-> obj pos-vol s4-1) arg0 0.0)
|
||||
(return #t)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -278,11 +278,13 @@
|
||||
(rolling-ring-hint-be-quick-to-next #x340)
|
||||
(rolling-ring-hint-be-quick-all #x341)
|
||||
|
||||
(sunken-helix-daxter-bad-feeling #x344)
|
||||
(sunken-blue-eco-charger-hint #x345)
|
||||
(sunken-take-it-easy-hot-pipes #x34e)
|
||||
(sunken-double-lurker-hint #x347)
|
||||
(sunken-helix-daxter-eco-rising #x348)
|
||||
(sunken-qbert-plat-hint #x34a)
|
||||
(sunken-bully-dive-hint #x34b)
|
||||
(sunken-take-it-easy-hot-pipes #x34e)
|
||||
|
||||
(sunken-blue-eco-charger-all-hint #x34d)
|
||||
|
||||
|
||||
@@ -5,3 +5,782 @@
|
||||
;; name in dgo: helix-water
|
||||
;; dgos: L1, SUN, SUNKEN
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype helix-slide-door (process-drawable)
|
||||
((root-override collide-shape :offset 112)
|
||||
)
|
||||
:heap-base #x40
|
||||
:method-count-assert 20
|
||||
:size-assert #xb0
|
||||
:flag-assert #x14004000b0
|
||||
(:states
|
||||
helix-slide-door-close
|
||||
helix-slide-door-idle-closed
|
||||
helix-slide-door-idle-open
|
||||
)
|
||||
)
|
||||
|
||||
;; Manually added!
|
||||
(define-extern *helix-slide-door* helix-slide-door)
|
||||
|
||||
(defskelgroup *helix-slide-door-sg* helix-slide-door
|
||||
0
|
||||
2
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 12 0 18)
|
||||
:longest-edge (meters 0)
|
||||
)
|
||||
|
||||
(deftype helix-button (process-drawable)
|
||||
((root-override collide-shape-moving :offset 112)
|
||||
(my-water entity-actor :offset-assert 176)
|
||||
(my-door entity-actor :offset-assert 180)
|
||||
(fcell-handle handle :offset-assert 184)
|
||||
(down-y float :offset-assert 192)
|
||||
(spawn-trans vector :inline :offset-assert 208)
|
||||
)
|
||||
:heap-base #x70
|
||||
:method-count-assert 20
|
||||
:size-assert #xe0
|
||||
:flag-assert #x14007000e0
|
||||
(:states
|
||||
helix-button-activate
|
||||
helix-button-idle-down
|
||||
helix-button-idle-up
|
||||
helix-button-quick-activate
|
||||
helix-button-startup
|
||||
)
|
||||
)
|
||||
|
||||
;; Manually added!
|
||||
(define-extern *helix-button* helix-button)
|
||||
|
||||
(defskelgroup *helix-button-sg* helix-button
|
||||
0
|
||||
2
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 3.5 0 5.4)
|
||||
:longest-edge (meters 0)
|
||||
)
|
||||
|
||||
(deftype helix-dark-eco (dark-eco-pool)
|
||||
()
|
||||
:heap-base #x70
|
||||
:method-count-assert 30
|
||||
:size-assert #xdc
|
||||
:flag-assert #x1e007000dc
|
||||
)
|
||||
|
||||
|
||||
(deftype helix-water (process-drawable)
|
||||
((last-alt-actor-consumed int32 :offset-assert 176)
|
||||
(alt-actors (array entity-actor) :offset-assert 180)
|
||||
(transv-y float :offset-assert 184)
|
||||
(start-y float :offset-assert 188)
|
||||
(end-y float :offset-assert 192)
|
||||
(dark-eco (pointer helix-dark-eco) :offset-assert 196)
|
||||
)
|
||||
:heap-base #x60
|
||||
:method-count-assert 22
|
||||
:size-assert #xc8
|
||||
:flag-assert #x16006000c8
|
||||
(:methods
|
||||
(dummy-20 (_type_) none 20)
|
||||
(dummy-21 (_type_) object 21)
|
||||
)
|
||||
(:states
|
||||
helix-water-activated
|
||||
helix-water-idle
|
||||
)
|
||||
)
|
||||
|
||||
;; Manually added!
|
||||
(define-extern *helix-water* helix-water)
|
||||
|
||||
(defstate water-vol-idle (helix-dark-eco)
|
||||
:virtual #t
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('trigger)
|
||||
(let ((a0-1 (-> self sound)))
|
||||
(set! (-> a0-1 spec pitch-mod) 2057)
|
||||
(update-vol! a0-1 100)
|
||||
)
|
||||
)
|
||||
(else
|
||||
((-> (method-of-type water-anim water-vol-idle) event) arg0 arg1 arg2 arg3)
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter
|
||||
(behavior ()
|
||||
(let ((t9-0 (-> (method-of-type dark-eco-pool water-vol-idle) enter)))
|
||||
(if t9-0
|
||||
(t9-0)
|
||||
)
|
||||
)
|
||||
(let ((a0-0 (-> self sound)))
|
||||
(set! (-> a0-0 spec pitch-mod) 1524)
|
||||
(update-vol! a0-0 58)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(let ((t9-0 (-> (method-of-type dark-eco-pool water-vol-idle) trans)))
|
||||
(if t9-0
|
||||
(t9-0)
|
||||
)
|
||||
)
|
||||
(update! (-> self sound))
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(behavior ()
|
||||
(let ((t9-0 (-> (method-of-type dark-eco-pool water-vol-idle) post)))
|
||||
(if t9-0
|
||||
((the-as (function none :behavior helix-dark-eco) t9-0))
|
||||
)
|
||||
)
|
||||
(ja-post)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate helix-slide-door-idle-open (helix-slide-door)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (case arg2
|
||||
(('trigger)
|
||||
(go helix-slide-door-close)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate helix-slide-door-close (helix-slide-door)
|
||||
: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 2)))
|
||||
(set! (-> a0-0 param 0)
|
||||
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) 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 2)) 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!)
|
||||
)
|
||||
)
|
||||
(transform-post)
|
||||
(go helix-slide-door-idle-closed)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior helix-slide-door) transform-post)
|
||||
)
|
||||
|
||||
(defstate helix-slide-door-idle-closed (helix-slide-door)
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
(logior! (-> self mask) (process-mask sleep-code))
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod init-from-entity! helix-slide-door ((obj helix-slide-door) (arg0 entity-actor))
|
||||
(let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-others))))
|
||||
(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 512))
|
||||
(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 22528.0 0.0 53248.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)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton obj *helix-slide-door-sg* '())
|
||||
(logior! (-> obj skel status) 1)
|
||||
(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 2))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> s5-1 frame-num) 0.0)
|
||||
)
|
||||
(ja-post)
|
||||
(dummy-47 (-> obj root-override))
|
||||
(set! *helix-slide-door* obj)
|
||||
(go helix-slide-door-idle-open)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defstate helix-button-startup (helix-button)
|
||||
:code
|
||||
(behavior ()
|
||||
(when (not (task-complete? *game-info* (game-task sunken-slide)))
|
||||
(let ((a0-1 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> a0-1 quad) (-> self root-override trans quad))
|
||||
(set! (-> a0-1 y) (+ 30720.0 (-> a0-1 y)))
|
||||
(let ((v1-7 (birth-pickup-at-point
|
||||
a0-1
|
||||
(pickup-type fuel-cell)
|
||||
(the float (-> self entity extra perm task))
|
||||
#f
|
||||
self
|
||||
(-> self fact)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> self fcell-handle) (ppointer->handle v1-7))
|
||||
(if v1-7
|
||||
(clear-collide-with-as (-> (the-as collectable (-> v1-7 0)) root-override))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(go helix-button-idle-up)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate helix-button-idle-up (helix-button)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('touch)
|
||||
(when *target*
|
||||
(when (logtest? (-> *target* control status) 1)
|
||||
(cond
|
||||
((and
|
||||
(and (-> self entity) (logtest? (-> self entity extra perm status) (entity-perm-status complete)))
|
||||
(not (handle->process (-> self fcell-handle)))
|
||||
)
|
||||
(go helix-button-quick-activate)
|
||||
)
|
||||
(else
|
||||
(process-entity-status! self (entity-perm-status complete) #t)
|
||||
(go helix-button-activate)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
(logior! (-> self mask) (process-mask sleep-code))
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate helix-button-activate (helix-button)
|
||||
:trans
|
||||
(the-as (function none :behavior helix-button) rider-trans)
|
||||
:code
|
||||
(behavior ()
|
||||
(local-vars (v1-7 symbol))
|
||||
(let ((a0-1 (handle->process (-> self fcell-handle))))
|
||||
(when a0-1
|
||||
(send-event a0-1 'pickup)
|
||||
(until v1-7
|
||||
(suspend)
|
||||
(set! v1-7 (or (not *target*) (zero? (logand (-> *target* state-flags) 256))))
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((gp-0 (the-as sunkencam (get-process *default-dead-pool* sunkencam #x4000)))
|
||||
(v1-11
|
||||
(when gp-0
|
||||
(let ((t9-2 (method-of-type sunkencam activate)))
|
||||
(t9-2 gp-0 self 'sunkencam (the-as pointer #x70004000))
|
||||
)
|
||||
(run-now-in-process
|
||||
gp-0
|
||||
pov-camera-init-by-other
|
||||
(-> self spawn-trans)
|
||||
*sunkencam-sg*
|
||||
"qbert-show-door-open"
|
||||
0
|
||||
#f
|
||||
'()
|
||||
)
|
||||
(-> gp-0 ppointer-override)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-11 0 seq) (the-as uint 2))
|
||||
)
|
||||
(let ((a1-5 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-5 from) self)
|
||||
(set! (-> a1-5 num-params) 0)
|
||||
(set! (-> a1-5 message) 'music)
|
||||
(let ((t9-4 send-event-function)
|
||||
(v1-15 (-> self my-water))
|
||||
)
|
||||
(t9-4
|
||||
(if v1-15
|
||||
(-> v1-15 extra process)
|
||||
)
|
||||
a1-5
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(when *target*
|
||||
(let ((gp-1 (new 'stack-no-clear 'vector)))
|
||||
(vector-! gp-1 (-> self root-override trans) (target-pos 0))
|
||||
(when (< 12288.0 (vector-xz-length gp-1))
|
||||
(set! (-> gp-1 y) 0.0)
|
||||
(vector-normalize! gp-1 4096.0)
|
||||
(TODO-RENAME-28 (-> *target* control) gp-1)
|
||||
(dummy-45 (-> self root-override))
|
||||
(dummy-35 (-> self root-override))
|
||||
)
|
||||
)
|
||||
)
|
||||
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 450)
|
||||
(suspend)
|
||||
)
|
||||
(level-hint-spawn
|
||||
(game-text-id sunken-helix-daxter-bad-feeling)
|
||||
"sksp0124"
|
||||
(the-as entity #f)
|
||||
*entity-pool*
|
||||
(game-task none)
|
||||
)
|
||||
(send-event *target* 'play-anim 'shock-in)
|
||||
(sound-play-by-name (static-sound-name "prec-button8") (new-sound-id) 1024 0 0 1 #t)
|
||||
(set! (-> self root-override transv quad) (the-as uint128 0))
|
||||
(let ((gp-3 5))
|
||||
(until (<= gp-3 0)
|
||||
(let ((f1-0 (-> self root-override transv y))
|
||||
(f0-2 (-> self root-override trans y))
|
||||
(a1-11 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(let* ((f1-1 (+ f1-0 (* -737280.0 (-> *display* seconds-per-frame))))
|
||||
(f0-3 (+ f0-2 (* f1-1 (-> *display* seconds-per-frame))))
|
||||
)
|
||||
(when (>= (-> self down-y) f0-3)
|
||||
(set! f0-3 (-> self down-y))
|
||||
(set! f1-1 (* 0.65 (- f1-1)))
|
||||
(+! gp-3 -1)
|
||||
)
|
||||
(set! (-> self root-override transv y) f1-1)
|
||||
(set! (-> a1-11 quad) (-> self root-override trans quad))
|
||||
(set! (-> a1-11 y) f0-3)
|
||||
)
|
||||
(TODO-RENAME-30 (-> self root-override) a1-11)
|
||||
)
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 375)
|
||||
(suspend)
|
||||
)
|
||||
(sound-play-by-name (static-sound-name "maindoor") (new-sound-id) 1024 0 0 1 #t)
|
||||
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 570)
|
||||
(suspend)
|
||||
)
|
||||
(let ((a1-13 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-13 from) self)
|
||||
(set! (-> a1-13 num-params) 0)
|
||||
(set! (-> a1-13 message) 'trigger)
|
||||
(let ((t9-18 send-event-function)
|
||||
(v1-66 (-> self my-door))
|
||||
)
|
||||
(t9-18
|
||||
(if v1-66
|
||||
(-> v1-66 extra process)
|
||||
)
|
||||
a1-13
|
||||
)
|
||||
)
|
||||
)
|
||||
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 1050)
|
||||
(suspend)
|
||||
)
|
||||
(let ((a1-14 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-14 from) self)
|
||||
(set! (-> a1-14 num-params) 0)
|
||||
(set! (-> a1-14 message) 'trigger)
|
||||
(let ((t9-19 send-event-function)
|
||||
(v1-74 (-> self my-water))
|
||||
)
|
||||
(t9-19
|
||||
(if v1-74
|
||||
(-> v1-74 extra process)
|
||||
)
|
||||
a1-14
|
||||
)
|
||||
)
|
||||
)
|
||||
(level-hint-spawn
|
||||
(game-text-id sunken-helix-daxter-eco-rising)
|
||||
"sksp0128"
|
||||
(the-as entity #f)
|
||||
*entity-pool*
|
||||
(game-task none)
|
||||
)
|
||||
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 600)
|
||||
(suspend)
|
||||
)
|
||||
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300)
|
||||
(send-event *target* 'play-anim 'shock-out)
|
||||
(send-event *target* 'neck 1.0 (-> self my-door extra trans))
|
||||
(suspend)
|
||||
)
|
||||
(go helix-button-idle-down)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior helix-button) rider-post)
|
||||
)
|
||||
|
||||
(defstate helix-button-quick-activate (helix-button)
|
||||
:trans
|
||||
(the-as (function none :behavior helix-button) rider-trans)
|
||||
:code
|
||||
(behavior ()
|
||||
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-0 from) self)
|
||||
(set! (-> a1-0 num-params) 0)
|
||||
(set! (-> a1-0 message) 'music)
|
||||
(let ((t9-0 send-event-function)
|
||||
(v1-1 (-> self my-water))
|
||||
)
|
||||
(t9-0
|
||||
(if v1-1
|
||||
(-> v1-1 extra process)
|
||||
)
|
||||
a1-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(sound-play-by-name (static-sound-name "prec-button8") (new-sound-id) 1024 0 0 1 #t)
|
||||
(sound-play-by-name (static-sound-name "maindoor") (new-sound-id) 1024 0 0 1 #t)
|
||||
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-3 from) self)
|
||||
(set! (-> a1-3 num-params) 0)
|
||||
(set! (-> a1-3 message) 'trigger)
|
||||
(let ((t9-5 send-event-function)
|
||||
(v1-7 (-> self my-door))
|
||||
)
|
||||
(t9-5
|
||||
(if v1-7
|
||||
(-> v1-7 extra process)
|
||||
)
|
||||
a1-3
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a1-4 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-4 from) self)
|
||||
(set! (-> a1-4 num-params) 0)
|
||||
(set! (-> a1-4 message) 'trigger)
|
||||
(let ((t9-6 send-event-function)
|
||||
(v1-11 (-> self my-water))
|
||||
)
|
||||
(t9-6
|
||||
(if v1-11
|
||||
(-> v1-11 extra process)
|
||||
)
|
||||
a1-4
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> self root-override transv quad) (the-as uint128 0))
|
||||
(let ((gp-2 5))
|
||||
(until (<= gp-2 0)
|
||||
(let ((f1-0 (-> self root-override transv y))
|
||||
(f0-0 (-> self root-override trans y))
|
||||
(a1-5 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(let* ((f1-1 (+ f1-0 (* -737280.0 (-> *display* seconds-per-frame))))
|
||||
(f0-1 (+ f0-0 (* f1-1 (-> *display* seconds-per-frame))))
|
||||
)
|
||||
(when (>= (-> self down-y) f0-1)
|
||||
(set! f0-1 (-> self down-y))
|
||||
(set! f1-1 (* 0.65 (- f1-1)))
|
||||
(+! gp-2 -1)
|
||||
)
|
||||
(set! (-> self root-override transv y) f1-1)
|
||||
(set! (-> a1-5 quad) (-> self root-override trans quad))
|
||||
(set! (-> a1-5 y) f0-1)
|
||||
)
|
||||
(TODO-RENAME-30 (-> self root-override) a1-5)
|
||||
)
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(go helix-button-idle-down)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior helix-button) rider-post)
|
||||
)
|
||||
|
||||
(defstate helix-button-idle-down (helix-button)
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod init-from-entity! helix-button ((obj helix-button) (arg0 entity-actor))
|
||||
(set! (-> obj fcell-handle) (the-as handle #f))
|
||||
(set! (-> obj my-water) (entity-actor-lookup arg0 'alt-actor 0))
|
||||
(set! (-> obj my-door) (entity-actor-lookup arg0 'alt-actor 1))
|
||||
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-others))))
|
||||
(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) 0)
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 14336.0 0.0 22118.4)
|
||||
(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)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton obj *helix-button-sg* '())
|
||||
(logior! (-> obj skel status) 1)
|
||||
(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 2))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> s5-1 frame-num) 0.0)
|
||||
)
|
||||
(set! (-> obj spawn-trans quad) (-> obj root-override trans quad))
|
||||
(set! (-> obj root-override trans y) (+ -26624.0 (-> obj root-override trans y)))
|
||||
(set! (-> obj down-y) (+ -6553.6 (-> obj root-override trans y)))
|
||||
(set! (-> obj fact)
|
||||
(new 'process 'fact-info obj (pickup-type eco-pill-random) (-> *FACT-bank* default-pill-inc))
|
||||
)
|
||||
(ja-post)
|
||||
(dummy-47 (-> obj root-override))
|
||||
(set! *helix-button* obj)
|
||||
(go helix-button-startup)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod dummy-21 helix-water ((obj helix-water))
|
||||
(let ((s5-0 (+ (-> obj last-alt-actor-consumed) 1)))
|
||||
(when (< s5-0 (-> obj alt-actors length))
|
||||
(let* ((v1-5 (-> obj alt-actors s5-0))
|
||||
(s4-0 (if v1-5
|
||||
(-> v1-5 extra process)
|
||||
)
|
||||
)
|
||||
(a0-3 (if (and (nonzero? s4-0) (type-type? (-> s4-0 type) process-drawable))
|
||||
s4-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(+ -1638.4 (-> obj root trans y))
|
||||
(cond
|
||||
(a0-3
|
||||
(when (< (-> (the-as process-drawable a0-3) root trans y) (-> obj root trans y))
|
||||
(set! (-> obj last-alt-actor-consumed) s5-0)
|
||||
(case (-> a0-3 type)
|
||||
((babak)
|
||||
(send-event a0-3 'instant-death)
|
||||
)
|
||||
((ecovent)
|
||||
(send-event a0-3 'show-particles #f)
|
||||
)
|
||||
((launcher)
|
||||
(send-event a0-3 'instant-death)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(set! (-> obj last-alt-actor-consumed) s5-0)
|
||||
s5-0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate helix-water-idle (helix-water)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(let ((v1-0 arg2))
|
||||
(the-as object (cond
|
||||
((= v1-0 'trigger)
|
||||
(go helix-water-activated)
|
||||
)
|
||||
((= v1-0 'music)
|
||||
(set-setting! *setting-control* self 'music 'danger 0.0 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(set! (-> self root trans y) (-> self start-y))
|
||||
(set! (-> self last-alt-actor-consumed) -1)
|
||||
(set! (-> self transv-y) 9216.0)
|
||||
(suspend)
|
||||
(send-event (ppointer->process (-> self dark-eco)) 'move-to (-> self root trans))
|
||||
(while #t
|
||||
(logior! (-> self mask) (process-mask sleep-code))
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior helix-water) ja-post)
|
||||
)
|
||||
|
||||
(defstate helix-water-activated (helix-water)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('notify)
|
||||
(when (= (-> arg0 type) launcherdoor)
|
||||
(clear-pending-settings-from-process *setting-control* self 'music)
|
||||
(go helix-water-idle)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(set! (-> self root scale y) (seek (-> self root scale y) 0.8 (* 0.667 (-> *display* seconds-per-frame))))
|
||||
(when *target*
|
||||
(let ((f0-4 (-> (target-pos 0) y)))
|
||||
(when (zero? (logand (-> *target* state-flags) 256))
|
||||
(let* ((f0-5 (- f0-4 (-> self root trans y)))
|
||||
(f0-6 (+ -40960.0 f0-5))
|
||||
(f0-7 (* 0.000024414063 f0-6))
|
||||
)
|
||||
(cond
|
||||
((< f0-7 0.0)
|
||||
(set! f0-7 0.0)
|
||||
)
|
||||
((< 1.0 f0-7)
|
||||
(set! f0-7 1.0)
|
||||
)
|
||||
)
|
||||
(set! (-> self transv-y) (+ 3584.0 (* 12800.0 f0-7)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! (-> self root trans y) (* (-> self transv-y) (-> *display* seconds-per-frame)))
|
||||
(if (< (-> self end-y) (-> self root trans y))
|
||||
(set! (-> self root trans y) (-> self end-y))
|
||||
)
|
||||
(send-event (ppointer->process (-> self dark-eco)) 'move-to (-> self root trans))
|
||||
(dummy-21 self)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(send-event (ppointer->process (-> self dark-eco)) 'trigger)
|
||||
(while #t
|
||||
(logior! (-> self mask) (process-mask sleep-code))
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior helix-water) ja-post)
|
||||
)
|
||||
|
||||
(defmethod relocate helix-water ((obj helix-water) (arg0 int))
|
||||
(if (nonzero? (-> obj alt-actors))
|
||||
(&+! (-> obj alt-actors) arg0)
|
||||
)
|
||||
(the-as
|
||||
helix-water
|
||||
((the-as (function process-drawable int process-drawable) (find-parent-method helix-water 7)) obj arg0)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod init-from-entity! helix-water ((obj helix-water) (arg0 entity-actor))
|
||||
(set! (-> obj last-alt-actor-consumed) -1)
|
||||
(set! (-> obj transv-y) 9216.0)
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(set! (-> obj start-y) (+ -49152.0 (-> obj root trans y)))
|
||||
(set! (-> obj end-y) (+ 851968.0 (-> obj start-y)))
|
||||
(set-vector! (-> obj root scale) 1.0 0.8 1.0 1.0)
|
||||
(let ((s4-0 (entity-actor-count arg0 'alt-actor)))
|
||||
(set! (-> obj alt-actors) (the-as (array entity-actor) (new 'process 'boxed-array entity-actor s4-0)))
|
||||
(dotimes (s3-0 s4-0)
|
||||
(set! (-> obj alt-actors s3-0) (entity-actor-lookup arg0 'alt-actor s3-0))
|
||||
)
|
||||
)
|
||||
(set! (-> obj root trans y) (-> obj start-y))
|
||||
(let ((s5-1 (get-process *default-dead-pool* helix-dark-eco #x4000)))
|
||||
(set! (-> obj dark-eco)
|
||||
(the-as
|
||||
(pointer helix-dark-eco)
|
||||
(when s5-1
|
||||
(let ((t9-6 (method-of-type helix-dark-eco activate)))
|
||||
(t9-6 (the-as helix-dark-eco s5-1) obj 'helix-dark-eco (the-as pointer #x70004000))
|
||||
)
|
||||
(run-now-in-process s5-1 water-vol-init-by-other (-> obj entity))
|
||||
(-> s5-1 ppointer)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! *helix-water* obj)
|
||||
(go helix-water-idle)
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -187,11 +187,12 @@
|
||||
)
|
||||
|
||||
(deftype sunkencam (pov-camera)
|
||||
((seq uint64 :offset-assert 224)
|
||||
((ppointer-override (pointer sunkencam) :score 100 :offset 24)
|
||||
(seq uint64 :offset-assert 224)
|
||||
)
|
||||
:heap-base #x80
|
||||
:method-count-assert 30
|
||||
:size-assert #xe8
|
||||
:heap-base #x80
|
||||
:flag-assert #x1e008000e8
|
||||
)
|
||||
|
||||
|
||||
@@ -5,3 +5,181 @@
|
||||
;; name in dgo: minecart
|
||||
;; dgos: L1, VI3
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(defskelgroup *minecartsteel-sg* minecartsteel
|
||||
0
|
||||
4
|
||||
((1 (meters 20)) (2 (meters 40)) (3 (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 4)
|
||||
:longest-edge (meters 0)
|
||||
)
|
||||
|
||||
(deftype minecartsteel (process-drawable)
|
||||
((root-override collide-shape-moving :offset 112)
|
||||
(index int32 :offset-assert 176)
|
||||
(anim spool-anim :offset-assert 180)
|
||||
(sync sync-info :inline :offset-assert 184)
|
||||
)
|
||||
:heap-base #x50
|
||||
:method-count-assert 21
|
||||
:size-assert #xc0
|
||||
:flag-assert #x15005000c0
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defstate idle (minecartsteel)
|
||||
:virtual #t
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(let ((v1-0 arg2))
|
||||
(the-as object (when (or (= v1-0 'touch) (= v1-0 'attack))
|
||||
(when (= (-> arg0 type) target)
|
||||
(let ((a2-1 (new 'stack 'collide-overlap-result)))
|
||||
(if (not (dummy-39 (-> self root-override) (-> *target* control) a2-1))
|
||||
(send-event arg0 'no-look-around 450)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:trans
|
||||
(the-as (function none :behavior minecartsteel) rider-trans)
|
||||
:code
|
||||
(behavior ()
|
||||
(ja-channel-set! 1)
|
||||
(let ((v1-2 (-> self skel root-channel 0)))
|
||||
(set! (-> v1-2 frame-group) (the-as art-joint-anim (-> self anim)))
|
||||
)
|
||||
(while #t
|
||||
(let ((gp-0 (-> self skel root-channel 0)))
|
||||
(set! (-> gp-0 num-func) num-func-identity)
|
||||
(set! (-> gp-0 frame-num)
|
||||
(* (get-current-phase (-> self sync)) (the float (+ (-> (if (> (-> self skel active-channels) 0)
|
||||
(-> self skel root-channel 0 frame-group)
|
||||
)
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a1-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 4))))
|
||||
(update-trans! (-> self sound) a1-1)
|
||||
)
|
||||
(update! (-> self sound))
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior minecartsteel) rider-post)
|
||||
)
|
||||
|
||||
(defbehavior minecartsteel-initialize-by-other minecartsteel ((arg0 entity-actor) (arg1 float))
|
||||
(let ((s4-0 (new 'process 'collide-shape-moving self (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)
|
||||
)
|
||||
(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) 4)
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 4915.2 0.0 13107.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! (-> self root-override) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! self arg0)
|
||||
(logclear! (-> self mask) (process-mask actor-pause))
|
||||
(quaternion-identity! (-> self root-override quat))
|
||||
(initialize-skeleton self *minecartsteel-sg* '())
|
||||
(set! (-> self draw origin-joint-index) (the-as uint 3))
|
||||
(logior! (-> self skel status) 1)
|
||||
(load-params! (-> self sync) self (the-as uint 9000) arg1 0.15 0.15)
|
||||
(set! (-> self sound) (new
|
||||
'process
|
||||
'ambient-sound
|
||||
(new 'static 'sound-spec
|
||||
:mask #x80
|
||||
:num 1.0
|
||||
:group #x1
|
||||
:sound-name (static-sound-name "v3-cartride")
|
||||
:volume #x400
|
||||
:fo-max 30
|
||||
)
|
||||
(-> self root-override trans)
|
||||
)
|
||||
)
|
||||
(set! (-> self index) (res-lump-value arg0 'index int))
|
||||
(let ((v1-33 (-> self index)))
|
||||
(set! (-> self anim)
|
||||
(the-as
|
||||
spool-anim
|
||||
(cond
|
||||
((zero? v1-33)
|
||||
(-> self draw art-group data 5)
|
||||
)
|
||||
((= v1-33 1)
|
||||
(let ((a0-17 (-> self sync))
|
||||
(t9-12 (method-of-type sync-info setup-params!))
|
||||
(a1-11 9000)
|
||||
(f0-7 (+ 0.8 arg1))
|
||||
)
|
||||
(t9-12 a0-17 (the-as uint a1-11) (- f0-7 (* (the float (the int (/ f0-7 1.0))) 1.0)) 0.15 0.15)
|
||||
)
|
||||
(-> self draw art-group data 6)
|
||||
)
|
||||
(else
|
||||
(let ((a0-18 (-> self sync))
|
||||
(t9-13 (method-of-type sync-info setup-params!))
|
||||
(a1-12 9000)
|
||||
(f0-10 (+ 0.13 arg1))
|
||||
)
|
||||
(t9-13 a0-18 (the-as uint a1-12) (- f0-10 (* (the float (the int (/ f0-10 1.0))) 1.0)) 0.15 0.15)
|
||||
)
|
||||
(-> self draw art-group data 7)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(go-virtual idle)
|
||||
)
|
||||
|
||||
(defmethod init-from-entity! minecartsteel ((obj minecartsteel) (arg0 entity-actor))
|
||||
(dotimes (s4-0 4)
|
||||
(let ((s3-0 (get-process *default-dead-pool* minecartsteel #x4000)))
|
||||
(when s3-0
|
||||
(let ((t9-1 (method-of-type minecartsteel activate)))
|
||||
(t9-1 (the-as minecartsteel s3-0) obj 'minecartsteel (the-as pointer #x70004000))
|
||||
)
|
||||
(run-now-in-process s3-0 minecartsteel-initialize-by-other arg0 (* 0.2 (the float (+ s4-0 1))))
|
||||
(-> s3-0 ppointer)
|
||||
)
|
||||
)
|
||||
)
|
||||
(minecartsteel-initialize-by-other arg0 0.0)
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -33,7 +33,8 @@ files_with_modifications = [
|
||||
"default-menu",
|
||||
"collide-shape",
|
||||
"cam-states",
|
||||
"plant-boss"
|
||||
"plant-boss",
|
||||
"helix-water"
|
||||
]
|
||||
|
||||
for file in files:
|
||||
|
||||
+2
-2
@@ -333,9 +333,9 @@
|
||||
(let ((s2-0 (-> *volume-descriptor* pos-vol *volume-descriptor-current*)))
|
||||
(set! (-> s2-0 volume-type) arg1)
|
||||
(set! (-> s2-0 point-count) 0)
|
||||
(set! (-> s2-0 first-point) (-> *volume-point* data *volume-point-current*))
|
||||
(set! (-> s2-0 first-point) (the-as (pointer vector) (-> *volume-point* data *volume-point-current*)))
|
||||
(set! (-> s2-0 normal-count) 0)
|
||||
(set! (-> s2-0 first-normal) (-> *volume-normal* data *volume-normal-current*))
|
||||
(set! (-> s2-0 first-normal) (the-as (pointer vector) (-> *volume-normal* data *volume-normal-current*)))
|
||||
(set! *volume-descriptor-current* (+ *volume-descriptor-current* 1))
|
||||
(+! (-> self num-volumes) 1)
|
||||
(dotimes (s1-0 (the-as int (-> sv-16 elt-count)))
|
||||
|
||||
+2
-2
@@ -391,9 +391,9 @@
|
||||
:flag-assert #x38000000b8
|
||||
(:methods
|
||||
(new (symbol type process-drawable collide-list-enum) _type_ 0)
|
||||
(TODO-RENAME-28 (_type_ vector) none 28)
|
||||
(TODO-RENAME-28 (_type_ vector) object 28)
|
||||
(dummy-29 (_type_ int) none 29)
|
||||
(TODO-RENAME-30 (_type_ vector) none 30)
|
||||
(TODO-RENAME-30 (_type_ vector) object 30)
|
||||
(dummy-31 (_type_) none 31)
|
||||
(dummy-32 (_type_ object uint) none 32)
|
||||
(dummy-33 (_type_ vector uint) none 33)
|
||||
|
||||
+16
-16
@@ -3,22 +3,22 @@
|
||||
|
||||
;; definition of type plane-volume
|
||||
(deftype plane-volume (structure)
|
||||
((volume-type symbol :offset-assert 0)
|
||||
(point-count int16 :offset-assert 4)
|
||||
(normal-count int16 :offset-assert 6)
|
||||
(first-point vector :offset-assert 8)
|
||||
(first-normal vector :offset-assert 12)
|
||||
(num-planes int32 :offset-assert 16)
|
||||
(plane uint32 :offset-assert 20)
|
||||
((volume-type symbol :offset-assert 0)
|
||||
(point-count int16 :offset-assert 4)
|
||||
(normal-count int16 :offset-assert 6)
|
||||
(first-point (pointer vector) :offset-assert 8)
|
||||
(first-normal (pointer vector) :offset-assert 12)
|
||||
(num-planes int32 :offset-assert 16)
|
||||
(plane (inline-array plane) :offset-assert 20)
|
||||
)
|
||||
:pack-me
|
||||
:method-count-assert 12
|
||||
:size-assert #x18
|
||||
:flag-assert #xc00000018
|
||||
(:methods
|
||||
(dummy-9 () none 9)
|
||||
(dummy-10 () none 10)
|
||||
(dummy-11 () none 11)
|
||||
(dummy-9 (_type_ symbol vector-array vector-array) symbol 9)
|
||||
(debug-draw (_type_) none 10)
|
||||
(dummy-11 (_type_ vector float) symbol 11)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -43,16 +43,16 @@
|
||||
(pos-vol plane-volume 32 :inline :offset-assert 16)
|
||||
(neg-vol-count int32 :offset-assert 784)
|
||||
(neg-vol plane-volume 32 :inline :offset-assert 788)
|
||||
(debug-point basic :offset-assert 1556)
|
||||
(debug-normal basic :offset-assert 1560)
|
||||
(debug-point vector-array :offset-assert 1556)
|
||||
(debug-normal vector-array :offset-assert 1560)
|
||||
)
|
||||
:method-count-assert 12
|
||||
:size-assert #x61c
|
||||
:flag-assert #xc0000061c
|
||||
(:methods
|
||||
(new (symbol type process-drawable) _type_ 0)
|
||||
(dummy-9 (_type_) none 9)
|
||||
(dummy-10 (_type_ vector) none 10)
|
||||
(dummy-9 (_type_) symbol 9)
|
||||
(dummy-10 (_type_ vector) symbol 10)
|
||||
(TODO-RENAME-11 (_type_) symbol 11)
|
||||
)
|
||||
)
|
||||
@@ -95,7 +95,7 @@
|
||||
(a0-8 (-> (the-as vol-control gp-0) pos-vol (-> (the-as vol-control gp-0) pos-vol-count)))
|
||||
)
|
||||
(set! (-> a0-8 num-planes) (the-as int (-> s2-0 elt-count)))
|
||||
(set! (-> a0-8 plane) (the-as uint v1-12))
|
||||
(set! (-> a0-8 plane) (the-as (inline-array plane) v1-12))
|
||||
)
|
||||
(+! (-> (the-as vol-control gp-0) pos-vol-count) 1)
|
||||
(+! s3-0 1)
|
||||
@@ -117,7 +117,7 @@
|
||||
(a0-19 (-> (the-as vol-control gp-0) neg-vol (-> (the-as vol-control gp-0) neg-vol-count)))
|
||||
)
|
||||
(set! (-> a0-19 num-planes) (the-as int (-> s2-1 elt-count)))
|
||||
(set! (-> a0-19 plane) (the-as uint v1-31))
|
||||
(set! (-> a0-19 plane) (the-as (inline-array plane) v1-31))
|
||||
)
|
||||
(+! (-> (the-as vol-control gp-0) neg-vol-count) 1)
|
||||
(+! s3-1 1)
|
||||
|
||||
+279
@@ -0,0 +1,279 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for function plane-volume-intersect-dist
|
||||
(defun plane-volume-intersect-dist ((arg0 vector) (arg1 vector) (arg2 vector))
|
||||
(let ((f0-1 (vector-dot arg1 arg0))
|
||||
(f1-1 (vector-dot arg2 arg0))
|
||||
)
|
||||
(if (< 0.00001 (fabs f1-1))
|
||||
(/ (- (-> arg0 w) f0-1) f1-1)
|
||||
409600000.0
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 9 of type plane-volume
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; Used lq/sq
|
||||
(defmethod dummy-9 plane-volume ((obj plane-volume) (arg0 symbol) (arg1 vector-array) (arg2 vector-array))
|
||||
(local-vars
|
||||
(sv-144 vector)
|
||||
(sv-148 float)
|
||||
(sv-152 int)
|
||||
(sv-160 vector)
|
||||
(sv-176 vector)
|
||||
(sv-192 vector)
|
||||
(sv-208 vector)
|
||||
(sv-224 vector)
|
||||
(sv-240 int)
|
||||
(sv-256 int)
|
||||
)
|
||||
(set! (-> obj volume-type) arg0)
|
||||
(set! (-> obj point-count) 0)
|
||||
(set! (-> obj first-point) (the-as (pointer vector) (-> arg1 data (-> arg1 length))))
|
||||
(set! (-> obj normal-count) 0)
|
||||
(set! (-> obj first-normal) (the-as (pointer vector) (-> arg2 data (-> arg2 length))))
|
||||
(dotimes (s3-0 (-> obj num-planes))
|
||||
(set! sv-176 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-176 quad) (the-as uint128 0))
|
||||
(set! sv-192 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-192 quad) (the-as uint128 0))
|
||||
(set! sv-208 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-208 quad) (the-as uint128 0))
|
||||
(set! sv-224 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-224 quad) (the-as uint128 0))
|
||||
0.0
|
||||
0.0
|
||||
0.0
|
||||
(set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0))
|
||||
(let ((s1-0 (new-stack-vector0))
|
||||
(s0-0 0)
|
||||
(s2-0 (-> obj plane))
|
||||
)
|
||||
(set! sv-240 0)
|
||||
(while (< sv-240 (-> obj num-planes))
|
||||
(when (!= s3-0 sv-240)
|
||||
(vector-float*! sv-176 (the-as vector (-> s2-0 sv-240)) (-> s2-0 sv-240 w))
|
||||
(vector-cross! sv-192 (the-as vector (-> s2-0 sv-240)) (the-as vector (-> s2-0 s3-0)))
|
||||
(vector-normalize! sv-192 1.0)
|
||||
(vector-cross! sv-208 sv-192 (the-as vector (-> s2-0 sv-240)))
|
||||
(vector-normalize! sv-208 1.0)
|
||||
(let ((f0-4 (plane-volume-intersect-dist (-> s2-0 s3-0) sv-176 sv-208)))
|
||||
(when (!= f0-4 409600000.0)
|
||||
(vector+float*! sv-224 sv-176 sv-208 f0-4)
|
||||
(set! sv-144 (new-stack-vector0))
|
||||
(set! sv-148 0.0)
|
||||
(set! sv-152 0)
|
||||
(set! sv-160 (new-stack-vector0))
|
||||
(set! (-> sv-144 quad) (-> sv-224 quad))
|
||||
(set! sv-256 0)
|
||||
(while (< sv-256 (-> obj num-planes))
|
||||
(when (and (!= sv-256 s3-0) (!= sv-256 sv-240))
|
||||
(let ((f30-0 (plane-volume-intersect-dist (-> s2-0 sv-256) sv-144 sv-192)))
|
||||
(cond
|
||||
((= f30-0 409600000.0)
|
||||
)
|
||||
((zero? sv-152)
|
||||
(vector+float*! sv-144 sv-144 sv-192 f30-0)
|
||||
(set! (-> sv-160 quad) (-> s2-0 sv-256 quad))
|
||||
(set! sv-148 8192000.0)
|
||||
(set! sv-152 1)
|
||||
)
|
||||
((begin (vector-float*! sv-224 sv-192 f30-0) (>= (vector-dot sv-224 sv-160) 0.0))
|
||||
)
|
||||
((>= (vector-dot sv-224 (the-as vector (-> s2-0 sv-256))) 0.0)
|
||||
(when (< (fabs f30-0) (fabs sv-148))
|
||||
(set! sv-148 f30-0)
|
||||
(set! sv-152 (+ sv-152 1))
|
||||
)
|
||||
)
|
||||
(else
|
||||
(vector+float*! sv-144 sv-144 sv-192 f30-0)
|
||||
(set! (-> sv-160 quad) (-> s2-0 sv-256 quad))
|
||||
(set! sv-152 (+ sv-152 1))
|
||||
(if (< (fabs f30-0) (fabs sv-148))
|
||||
(set! sv-148 (- sv-148 f30-0))
|
||||
(set! sv-148 0.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! sv-256 (+ sv-256 1))
|
||||
)
|
||||
(cond
|
||||
((zero? sv-152)
|
||||
)
|
||||
((= sv-148 0.0)
|
||||
)
|
||||
(else
|
||||
(dotimes (v1-70 (-> obj num-planes))
|
||||
(when (and (!= v1-70 s3-0) (!= v1-70 sv-240))
|
||||
(if (< 4096.0 (- (vector-dot sv-144 (the-as vector (-> s2-0 v1-70))) (the-as float (-> s2-0 v1-70 w))))
|
||||
(goto cfg-42)
|
||||
)
|
||||
)
|
||||
)
|
||||
(vector+float*! sv-224 sv-144 sv-192 sv-148)
|
||||
(cond
|
||||
((< (-> arg1 allocated-length) (+ (-> arg1 length) 2))
|
||||
(format 0 "ERROR <AG>: vol-control #x~X out of volume points~%" obj)
|
||||
)
|
||||
(else
|
||||
(set! (-> arg1 data (-> arg1 length) quad) (-> sv-144 quad))
|
||||
(set! (-> arg1 data (+ (-> arg1 length) 1) quad) (-> sv-224 quad))
|
||||
(+! (-> arg1 length) 2)
|
||||
(+! (-> obj point-count) 2)
|
||||
)
|
||||
)
|
||||
(vector+! s1-0 s1-0 sv-144)
|
||||
(vector+! s1-0 s1-0 sv-224)
|
||||
(+! s0-0 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(label cfg-42)
|
||||
(set! sv-240 (+ sv-240 1))
|
||||
)
|
||||
(when (nonzero? s0-0)
|
||||
(vector-float*! s1-0 s1-0 (/ 1.0 (the float s0-0)))
|
||||
(cond
|
||||
((< (-> arg2 allocated-length) (+ (-> arg2 length) 2))
|
||||
(format 0 "ERROR <AG>: vol-control #x~X out of volume normals~%" obj)
|
||||
)
|
||||
(else
|
||||
(set! (-> arg2 data (-> arg2 length) quad) (-> s1-0 quad))
|
||||
(set! (-> arg2 data (+ (-> arg2 length) 1) quad) (-> s2-0 s3-0 quad))
|
||||
(+! (-> arg2 length) 2)
|
||||
(let ((v1-112 (+ (-> obj normal-count) 2)))
|
||||
(set! (-> obj normal-count) v1-112)
|
||||
v1-112
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
;; definition for method 10 of type plane-volume
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod debug-draw plane-volume ((obj plane-volume))
|
||||
(let* ((v1-0 (-> obj volume-type))
|
||||
(s5-0 (cond
|
||||
((= v1-0 'vol)
|
||||
(the-as uint #x8000c000)
|
||||
)
|
||||
((= v1-0 'pvol)
|
||||
(the-as uint #x80808080)
|
||||
)
|
||||
(else
|
||||
(the-as uint #x800000c0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(s4-0 (-> obj first-point))
|
||||
)
|
||||
(dotimes (s3-0 (/ (-> obj point-count) 2))
|
||||
(add-debug-line
|
||||
#t
|
||||
(bucket-id debug-draw1)
|
||||
(the-as vector s4-0)
|
||||
(the-as vector (&-> s4-0 4))
|
||||
(the-as rgba s5-0)
|
||||
#f
|
||||
(the-as rgba -1)
|
||||
)
|
||||
(set! s4-0 (&-> s4-0 8))
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type plane-volume
|
||||
(defmethod dummy-11 plane-volume ((obj plane-volume) (arg0 vector) (arg1 float))
|
||||
(dotimes (v1-0 (-> obj num-planes))
|
||||
(if (< arg1 (- (vector-dot arg0 (the-as vector (-> obj plane v1-0))) (the-as float (-> obj plane v1-0 w))))
|
||||
(return #f)
|
||||
)
|
||||
)
|
||||
#t
|
||||
)
|
||||
|
||||
;; definition for method 9 of type vol-control
|
||||
;; INFO: Return type mismatch int vs symbol.
|
||||
(defmethod dummy-9 vol-control ((obj vol-control))
|
||||
(with-pp
|
||||
(let ((a0-1 obj))
|
||||
(when (and (and *display-vol-marks* (logtest? (-> a0-1 flags) 1)) (logtest? (-> obj flags) 2))
|
||||
(when (zero? (-> obj debug-point))
|
||||
(let ((s5-0 pp))
|
||||
(let ((s6-1 (-> obj process)))
|
||||
)
|
||||
(let ((s4-0 0))
|
||||
(dotimes (v1-8 (-> obj pos-vol-count))
|
||||
(+! s4-0 (-> obj pos-vol v1-8 num-planes))
|
||||
)
|
||||
(dotimes (v1-11 (-> obj neg-vol-count))
|
||||
(+! s4-0 (-> obj neg-vol v1-11 num-planes))
|
||||
)
|
||||
(set! (-> obj debug-point) (new 'debug 'vector-array (* 10 s4-0)))
|
||||
(set! (-> obj debug-normal) (new 'debug 'vector-array (* 10 s4-0)))
|
||||
)
|
||||
(let ((s6-2 s5-0))
|
||||
)
|
||||
)
|
||||
(set! (-> obj debug-point length) 0)
|
||||
(set! (-> obj debug-normal length) 0)
|
||||
(dotimes (s5-1 (-> obj pos-vol-count))
|
||||
(dummy-9 (-> obj pos-vol s5-1) 'vol (-> obj debug-point) (-> obj debug-normal))
|
||||
)
|
||||
(dotimes (s5-2 (-> obj neg-vol-count))
|
||||
(dummy-9 (-> obj neg-vol s5-2) 'vol (-> obj debug-point) (-> obj debug-normal))
|
||||
)
|
||||
)
|
||||
(dotimes (s5-3 (-> obj pos-vol-count))
|
||||
(debug-draw (-> obj pos-vol s5-3))
|
||||
)
|
||||
(dotimes (s5-4 (-> obj neg-vol-count))
|
||||
(debug-draw (-> obj neg-vol s5-4))
|
||||
)
|
||||
)
|
||||
)
|
||||
(the-as symbol 0)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 10 of type vol-control
|
||||
(defmethod dummy-10 vol-control ((obj vol-control) (arg0 vector))
|
||||
(dotimes (s4-0 (-> obj neg-vol-count))
|
||||
(if (dummy-11 (-> obj neg-vol s4-0) arg0 0.0)
|
||||
(return #f)
|
||||
)
|
||||
)
|
||||
(dotimes (s4-1 (-> obj pos-vol-count))
|
||||
(if (dummy-11 (-> obj pos-vol s4-1) arg0 0.0)
|
||||
(return #t)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
+1
@@ -76,6 +76,7 @@
|
||||
)
|
||||
|
||||
;; definition for function plat-trans
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
;; Used lq/sq
|
||||
(defbehavior plat-trans baseplat ()
|
||||
(rider-trans)
|
||||
|
||||
+836
@@ -0,0 +1,836 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type helix-slide-door
|
||||
(deftype helix-slide-door (process-drawable)
|
||||
((root-override collide-shape :offset 112)
|
||||
)
|
||||
:heap-base #x40
|
||||
:method-count-assert 20
|
||||
:size-assert #xb0
|
||||
:flag-assert #x14004000b0
|
||||
(:states
|
||||
helix-slide-door-close
|
||||
helix-slide-door-idle-closed
|
||||
helix-slide-door-idle-open
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type helix-slide-door
|
||||
(defmethod inspect helix-slide-door ((obj helix-slide-door))
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup *helix-slide-door-sg* helix-slide-door
|
||||
0
|
||||
2
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 12 0 18)
|
||||
:longest-edge (meters 0)
|
||||
)
|
||||
|
||||
;; definition of type helix-button
|
||||
(deftype helix-button (process-drawable)
|
||||
((root-override collide-shape-moving :offset 112)
|
||||
(my-water entity-actor :offset-assert 176)
|
||||
(my-door entity-actor :offset-assert 180)
|
||||
(fcell-handle handle :offset-assert 184)
|
||||
(down-y float :offset-assert 192)
|
||||
(spawn-trans vector :inline :offset-assert 208)
|
||||
)
|
||||
:heap-base #x70
|
||||
:method-count-assert 20
|
||||
:size-assert #xe0
|
||||
:flag-assert #x14007000e0
|
||||
(:states
|
||||
helix-button-activate
|
||||
helix-button-idle-down
|
||||
helix-button-idle-up
|
||||
helix-button-quick-activate
|
||||
helix-button-startup
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type helix-button
|
||||
(defmethod inspect helix-button ((obj helix-button))
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~T~Tmy-water: ~A~%" (-> obj my-water))
|
||||
(format #t "~T~Tmy-door: ~A~%" (-> obj my-door))
|
||||
(format #t "~T~Tfcell-handle: ~D~%" (-> obj fcell-handle))
|
||||
(format #t "~T~Tdown-y: ~f~%" (-> obj down-y))
|
||||
(format #t "~T~Tspawn-trans: #<vector @ #x~X>~%" (-> obj spawn-trans))
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup *helix-button-sg* helix-button
|
||||
0
|
||||
2
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 3.5 0 5.4)
|
||||
:longest-edge (meters 0)
|
||||
)
|
||||
|
||||
;; definition of type helix-dark-eco
|
||||
(deftype helix-dark-eco (dark-eco-pool)
|
||||
()
|
||||
:heap-base #x70
|
||||
:method-count-assert 30
|
||||
:size-assert #xdc
|
||||
:flag-assert #x1e007000dc
|
||||
)
|
||||
|
||||
;; definition for method 3 of type helix-dark-eco
|
||||
(defmethod inspect helix-dark-eco ((obj helix-dark-eco))
|
||||
(let ((t9-0 (method-of-type dark-eco-pool inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition of type helix-water
|
||||
(deftype helix-water (process-drawable)
|
||||
((last-alt-actor-consumed int32 :offset-assert 176)
|
||||
(alt-actors (array entity-actor) :offset-assert 180)
|
||||
(transv-y float :offset-assert 184)
|
||||
(start-y float :offset-assert 188)
|
||||
(end-y float :offset-assert 192)
|
||||
(dark-eco (pointer helix-dark-eco) :offset-assert 196)
|
||||
)
|
||||
:heap-base #x60
|
||||
:method-count-assert 22
|
||||
:size-assert #xc8
|
||||
:flag-assert #x16006000c8
|
||||
(:methods
|
||||
(dummy-20 (_type_) none 20)
|
||||
(dummy-21 (_type_) object 21)
|
||||
)
|
||||
(:states
|
||||
helix-water-activated
|
||||
helix-water-idle
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type helix-water
|
||||
(defmethod inspect helix-water ((obj helix-water))
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~T~Tlast-alt-actor-consumed: ~D~%" (-> obj last-alt-actor-consumed))
|
||||
(format #t "~T~Talt-actors: ~A~%" (-> obj alt-actors))
|
||||
(format #t "~T~Ttransv-y: ~f~%" (-> obj transv-y))
|
||||
(format #t "~T~Tstart-y: ~f~%" (-> obj start-y))
|
||||
(format #t "~T~Tend-y: ~f~%" (-> obj end-y))
|
||||
(format #t "~T~Tdark-eco: #x~X~%" (-> obj dark-eco))
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate water-vol-idle (helix-dark-eco)
|
||||
:virtual #t
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('trigger)
|
||||
(let ((a0-1 (-> self sound)))
|
||||
(set! (-> a0-1 spec pitch-mod) 2057)
|
||||
(update-vol! a0-1 100)
|
||||
)
|
||||
)
|
||||
(else
|
||||
((-> (method-of-type water-anim water-vol-idle) event) arg0 arg1 arg2 arg3)
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter
|
||||
(behavior ()
|
||||
(let ((t9-0 (-> (method-of-type dark-eco-pool water-vol-idle) enter)))
|
||||
(if t9-0
|
||||
(t9-0)
|
||||
)
|
||||
)
|
||||
(let ((a0-0 (-> self sound)))
|
||||
(set! (-> a0-0 spec pitch-mod) 1524)
|
||||
(update-vol! a0-0 58)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(let ((t9-0 (-> (method-of-type dark-eco-pool water-vol-idle) trans)))
|
||||
(if t9-0
|
||||
(t9-0)
|
||||
)
|
||||
)
|
||||
(update! (-> self sound))
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(behavior ()
|
||||
(let ((t9-0 (-> (method-of-type dark-eco-pool water-vol-idle) post)))
|
||||
(if t9-0
|
||||
((the-as (function none :behavior helix-dark-eco) t9-0))
|
||||
)
|
||||
)
|
||||
(ja-post)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate helix-slide-door-idle-open (helix-slide-door)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) (case arg2
|
||||
(('trigger)
|
||||
(go helix-slide-door-close)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate helix-slide-door-close (helix-slide-door)
|
||||
: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 2)))
|
||||
(set! (-> a0-0 param 0)
|
||||
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 2)) 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 2)) 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!)
|
||||
)
|
||||
)
|
||||
(transform-post)
|
||||
(go helix-slide-door-idle-closed)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior helix-slide-door) transform-post)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate helix-slide-door-idle-closed (helix-slide-door)
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
(logior! (-> self mask) (process-mask sleep-code))
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type helix-slide-door
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! helix-slide-door ((obj helix-slide-door) (arg0 entity-actor))
|
||||
(let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-others))))
|
||||
(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 512))
|
||||
(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 22528.0 0.0 53248.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)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton obj *helix-slide-door-sg* '())
|
||||
(logior! (-> obj skel status) 1)
|
||||
(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 2))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> s5-1 frame-num) 0.0)
|
||||
)
|
||||
(ja-post)
|
||||
(dummy-47 (-> obj root-override))
|
||||
(set! *helix-slide-door* obj)
|
||||
(go helix-slide-door-idle-open)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate helix-button-startup (helix-button)
|
||||
:code
|
||||
(behavior ()
|
||||
(when (not (task-complete? *game-info* (game-task sunken-slide)))
|
||||
(let ((a0-1 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> a0-1 quad) (-> self root-override trans quad))
|
||||
(set! (-> a0-1 y) (+ 30720.0 (-> a0-1 y)))
|
||||
(let ((v1-7 (birth-pickup-at-point
|
||||
a0-1
|
||||
(pickup-type fuel-cell)
|
||||
(the float (-> self entity extra perm task))
|
||||
#f
|
||||
self
|
||||
(-> self fact)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> self fcell-handle) (ppointer->handle v1-7))
|
||||
(if v1-7
|
||||
(clear-collide-with-as (-> (the-as collectable (-> v1-7 0)) root-override))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(go helix-button-idle-up)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate helix-button-idle-up (helix-button)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('touch)
|
||||
(when *target*
|
||||
(when (logtest? (-> *target* control status) 1)
|
||||
(cond
|
||||
((and
|
||||
(and (-> self entity) (logtest? (-> self entity extra perm status) (entity-perm-status complete)))
|
||||
(not (handle->process (-> self fcell-handle)))
|
||||
)
|
||||
(go helix-button-quick-activate)
|
||||
)
|
||||
(else
|
||||
(process-entity-status! self (entity-perm-status complete) #t)
|
||||
(go helix-button-activate)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
(logior! (-> self mask) (process-mask sleep-code))
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate helix-button-activate (helix-button)
|
||||
:trans
|
||||
(the-as (function none :behavior helix-button) rider-trans)
|
||||
:code
|
||||
(behavior ()
|
||||
(local-vars (v1-7 symbol))
|
||||
(let ((a0-1 (handle->process (-> self fcell-handle))))
|
||||
(when a0-1
|
||||
(send-event a0-1 'pickup)
|
||||
(until v1-7
|
||||
(suspend)
|
||||
(set! v1-7 (or (not *target*) (zero? (logand (-> *target* state-flags) 256))))
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((gp-0 (the-as sunkencam (get-process *default-dead-pool* sunkencam #x4000)))
|
||||
(v1-11
|
||||
(when gp-0
|
||||
(let ((t9-2 (method-of-type sunkencam activate)))
|
||||
(t9-2 gp-0 self 'sunkencam (the-as pointer #x70004000))
|
||||
)
|
||||
(run-now-in-process
|
||||
gp-0
|
||||
pov-camera-init-by-other
|
||||
(-> self spawn-trans)
|
||||
*sunkencam-sg*
|
||||
"qbert-show-door-open"
|
||||
0
|
||||
#f
|
||||
'()
|
||||
)
|
||||
(-> gp-0 ppointer-override)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-11 0 seq) (the-as uint 2))
|
||||
)
|
||||
(let ((a1-5 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-5 from) self)
|
||||
(set! (-> a1-5 num-params) 0)
|
||||
(set! (-> a1-5 message) 'music)
|
||||
(let ((t9-4 send-event-function)
|
||||
(v1-15 (-> self my-water))
|
||||
)
|
||||
(t9-4
|
||||
(if v1-15
|
||||
(-> v1-15 extra process)
|
||||
)
|
||||
a1-5
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(when *target*
|
||||
(let ((gp-1 (new 'stack-no-clear 'vector)))
|
||||
(vector-! gp-1 (-> self root-override trans) (target-pos 0))
|
||||
(when (< 12288.0 (vector-xz-length gp-1))
|
||||
(set! (-> gp-1 y) 0.0)
|
||||
(vector-normalize! gp-1 4096.0)
|
||||
(TODO-RENAME-28 (-> *target* control) gp-1)
|
||||
(dummy-45 (-> self root-override))
|
||||
(dummy-35 (-> self root-override))
|
||||
)
|
||||
)
|
||||
)
|
||||
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 450)
|
||||
(suspend)
|
||||
)
|
||||
(level-hint-spawn
|
||||
(game-text-id sunken-helix-daxter-bad-feeling)
|
||||
"sksp0124"
|
||||
(the-as entity #f)
|
||||
*entity-pool*
|
||||
(game-task none)
|
||||
)
|
||||
(send-event *target* 'play-anim 'shock-in)
|
||||
(sound-play-by-name (static-sound-name "prec-button8") (new-sound-id) 1024 0 0 1 #t)
|
||||
(set! (-> self root-override transv quad) (the-as uint128 0))
|
||||
(let ((gp-3 5))
|
||||
(until (<= gp-3 0)
|
||||
(let ((f1-0 (-> self root-override transv y))
|
||||
(f0-2 (-> self root-override trans y))
|
||||
(a1-11 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(let* ((f1-1 (+ f1-0 (* -737280.0 (-> *display* seconds-per-frame))))
|
||||
(f0-3 (+ f0-2 (* f1-1 (-> *display* seconds-per-frame))))
|
||||
)
|
||||
(when (>= (-> self down-y) f0-3)
|
||||
(set! f0-3 (-> self down-y))
|
||||
(set! f1-1 (* 0.65 (- f1-1)))
|
||||
(+! gp-3 -1)
|
||||
)
|
||||
(set! (-> self root-override transv y) f1-1)
|
||||
(set! (-> a1-11 quad) (-> self root-override trans quad))
|
||||
(set! (-> a1-11 y) f0-3)
|
||||
)
|
||||
(TODO-RENAME-30 (-> self root-override) a1-11)
|
||||
)
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 375)
|
||||
(suspend)
|
||||
)
|
||||
(sound-play-by-name (static-sound-name "maindoor") (new-sound-id) 1024 0 0 1 #t)
|
||||
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 570)
|
||||
(suspend)
|
||||
)
|
||||
(let ((a1-13 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-13 from) self)
|
||||
(set! (-> a1-13 num-params) 0)
|
||||
(set! (-> a1-13 message) 'trigger)
|
||||
(let ((t9-18 send-event-function)
|
||||
(v1-66 (-> self my-door))
|
||||
)
|
||||
(t9-18
|
||||
(if v1-66
|
||||
(-> v1-66 extra process)
|
||||
)
|
||||
a1-13
|
||||
)
|
||||
)
|
||||
)
|
||||
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 1050)
|
||||
(suspend)
|
||||
)
|
||||
(let ((a1-14 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-14 from) self)
|
||||
(set! (-> a1-14 num-params) 0)
|
||||
(set! (-> a1-14 message) 'trigger)
|
||||
(let ((t9-19 send-event-function)
|
||||
(v1-74 (-> self my-water))
|
||||
)
|
||||
(t9-19
|
||||
(if v1-74
|
||||
(-> v1-74 extra process)
|
||||
)
|
||||
a1-14
|
||||
)
|
||||
)
|
||||
)
|
||||
(level-hint-spawn
|
||||
(game-text-id sunken-helix-daxter-eco-rising)
|
||||
"sksp0128"
|
||||
(the-as entity #f)
|
||||
*entity-pool*
|
||||
(game-task none)
|
||||
)
|
||||
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 600)
|
||||
(suspend)
|
||||
)
|
||||
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300)
|
||||
(send-event *target* 'play-anim 'shock-out)
|
||||
(send-event *target* 'neck 1.0 (-> self my-door extra trans))
|
||||
(suspend)
|
||||
)
|
||||
(go helix-button-idle-down)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior helix-button) rider-post)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate helix-button-quick-activate (helix-button)
|
||||
:trans
|
||||
(the-as (function none :behavior helix-button) rider-trans)
|
||||
:code
|
||||
(behavior ()
|
||||
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-0 from) self)
|
||||
(set! (-> a1-0 num-params) 0)
|
||||
(set! (-> a1-0 message) 'music)
|
||||
(let ((t9-0 send-event-function)
|
||||
(v1-1 (-> self my-water))
|
||||
)
|
||||
(t9-0
|
||||
(if v1-1
|
||||
(-> v1-1 extra process)
|
||||
)
|
||||
a1-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(sound-play-by-name (static-sound-name "prec-button8") (new-sound-id) 1024 0 0 1 #t)
|
||||
(sound-play-by-name (static-sound-name "maindoor") (new-sound-id) 1024 0 0 1 #t)
|
||||
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-3 from) self)
|
||||
(set! (-> a1-3 num-params) 0)
|
||||
(set! (-> a1-3 message) 'trigger)
|
||||
(let ((t9-5 send-event-function)
|
||||
(v1-7 (-> self my-door))
|
||||
)
|
||||
(t9-5
|
||||
(if v1-7
|
||||
(-> v1-7 extra process)
|
||||
)
|
||||
a1-3
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a1-4 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-4 from) self)
|
||||
(set! (-> a1-4 num-params) 0)
|
||||
(set! (-> a1-4 message) 'trigger)
|
||||
(let ((t9-6 send-event-function)
|
||||
(v1-11 (-> self my-water))
|
||||
)
|
||||
(t9-6
|
||||
(if v1-11
|
||||
(-> v1-11 extra process)
|
||||
)
|
||||
a1-4
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> self root-override transv quad) (the-as uint128 0))
|
||||
(let ((gp-2 5))
|
||||
(until (<= gp-2 0)
|
||||
(let ((f1-0 (-> self root-override transv y))
|
||||
(f0-0 (-> self root-override trans y))
|
||||
(a1-5 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(let* ((f1-1 (+ f1-0 (* -737280.0 (-> *display* seconds-per-frame))))
|
||||
(f0-1 (+ f0-0 (* f1-1 (-> *display* seconds-per-frame))))
|
||||
)
|
||||
(when (>= (-> self down-y) f0-1)
|
||||
(set! f0-1 (-> self down-y))
|
||||
(set! f1-1 (* 0.65 (- f1-1)))
|
||||
(+! gp-2 -1)
|
||||
)
|
||||
(set! (-> self root-override transv y) f1-1)
|
||||
(set! (-> a1-5 quad) (-> self root-override trans quad))
|
||||
(set! (-> a1-5 y) f0-1)
|
||||
)
|
||||
(TODO-RENAME-30 (-> self root-override) a1-5)
|
||||
)
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(go helix-button-idle-down)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior helix-button) rider-post)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate helix-button-idle-down (helix-button)
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type helix-button
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
;; Used lq/sq
|
||||
(defmethod init-from-entity! helix-button ((obj helix-button) (arg0 entity-actor))
|
||||
(set! (-> obj fcell-handle) (the-as handle #f))
|
||||
(set! (-> obj my-water) (entity-actor-lookup arg0 'alt-actor 0))
|
||||
(set! (-> obj my-door) (entity-actor-lookup arg0 'alt-actor 1))
|
||||
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-others))))
|
||||
(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) 0)
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 14336.0 0.0 22118.4)
|
||||
(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)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton obj *helix-button-sg* '())
|
||||
(logior! (-> obj skel status) 1)
|
||||
(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 2))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> s5-1 frame-num) 0.0)
|
||||
)
|
||||
(set! (-> obj spawn-trans quad) (-> obj root-override trans quad))
|
||||
(set! (-> obj root-override trans y) (+ -26624.0 (-> obj root-override trans y)))
|
||||
(set! (-> obj down-y) (+ -6553.6 (-> obj root-override trans y)))
|
||||
(set! (-> obj fact)
|
||||
(new 'process 'fact-info obj (pickup-type eco-pill-random) (-> *FACT-bank* default-pill-inc))
|
||||
)
|
||||
(ja-post)
|
||||
(dummy-47 (-> obj root-override))
|
||||
(set! *helix-button* obj)
|
||||
(go helix-button-startup)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 21 of type helix-water
|
||||
(defmethod dummy-21 helix-water ((obj helix-water))
|
||||
(let ((s5-0 (+ (-> obj last-alt-actor-consumed) 1)))
|
||||
(when (< s5-0 (-> obj alt-actors length))
|
||||
(let* ((v1-5 (-> obj alt-actors s5-0))
|
||||
(s4-0 (if v1-5
|
||||
(-> v1-5 extra process)
|
||||
)
|
||||
)
|
||||
(a0-3 (if (and (nonzero? s4-0) (type-type? (-> s4-0 type) process-drawable))
|
||||
s4-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(+ -1638.4 (-> obj root trans y))
|
||||
(cond
|
||||
(a0-3
|
||||
(when (< (-> (the-as process-drawable a0-3) root trans y) (-> obj root trans y))
|
||||
(set! (-> obj last-alt-actor-consumed) s5-0)
|
||||
(case (-> a0-3 type)
|
||||
((babak)
|
||||
(send-event a0-3 'instant-death)
|
||||
)
|
||||
((ecovent)
|
||||
(send-event a0-3 'show-particles #f)
|
||||
)
|
||||
((launcher)
|
||||
(send-event a0-3 'instant-death)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(set! (-> obj last-alt-actor-consumed) s5-0)
|
||||
s5-0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate helix-water-idle (helix-water)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(let ((v1-0 arg2))
|
||||
(the-as object (cond
|
||||
((= v1-0 'trigger)
|
||||
(go helix-water-activated)
|
||||
)
|
||||
((= v1-0 'music)
|
||||
(set-setting! *setting-control* self 'music 'danger 0.0 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(set! (-> self root trans y) (-> self start-y))
|
||||
(set! (-> self last-alt-actor-consumed) -1)
|
||||
(set! (-> self transv-y) 9216.0)
|
||||
(suspend)
|
||||
(send-event (ppointer->process (-> self dark-eco)) 'move-to (-> self root trans))
|
||||
(while #t
|
||||
(logior! (-> self mask) (process-mask sleep-code))
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior helix-water) ja-post)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate helix-water-activated (helix-water)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('notify)
|
||||
(when (= (-> arg0 type) launcherdoor)
|
||||
(clear-pending-settings-from-process *setting-control* self 'music)
|
||||
(go helix-water-idle)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(set! (-> self root scale y) (seek (-> self root scale y) 0.8 (* 0.667 (-> *display* seconds-per-frame))))
|
||||
(when *target*
|
||||
(let ((f0-4 (-> (target-pos 0) y)))
|
||||
(when (zero? (logand (-> *target* state-flags) 256))
|
||||
(let* ((f0-5 (- f0-4 (-> self root trans y)))
|
||||
(f0-6 (+ -40960.0 f0-5))
|
||||
(f0-7 (* 0.000024414063 f0-6))
|
||||
)
|
||||
(cond
|
||||
((< f0-7 0.0)
|
||||
(set! f0-7 0.0)
|
||||
)
|
||||
((< 1.0 f0-7)
|
||||
(set! f0-7 1.0)
|
||||
)
|
||||
)
|
||||
(set! (-> self transv-y) (+ 3584.0 (* 12800.0 f0-7)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! (-> self root trans y) (* (-> self transv-y) (-> *display* seconds-per-frame)))
|
||||
(if (< (-> self end-y) (-> self root trans y))
|
||||
(set! (-> self root trans y) (-> self end-y))
|
||||
)
|
||||
(send-event (ppointer->process (-> self dark-eco)) 'move-to (-> self root trans))
|
||||
(dummy-21 self)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(send-event (ppointer->process (-> self dark-eco)) 'trigger)
|
||||
(while #t
|
||||
(logior! (-> self mask) (process-mask sleep-code))
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior helix-water) ja-post)
|
||||
)
|
||||
|
||||
;; definition for method 7 of type helix-water
|
||||
;; INFO: Return type mismatch process-drawable vs helix-water.
|
||||
(defmethod relocate helix-water ((obj helix-water) (arg0 int))
|
||||
(if (nonzero? (-> obj alt-actors))
|
||||
(&+! (-> obj alt-actors) arg0)
|
||||
)
|
||||
(the-as
|
||||
helix-water
|
||||
((the-as (function process-drawable int process-drawable) (find-parent-method helix-water 7)) obj arg0)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type helix-water
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! helix-water ((obj helix-water) (arg0 entity-actor))
|
||||
(set! (-> obj last-alt-actor-consumed) -1)
|
||||
(set! (-> obj transv-y) 9216.0)
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(set! (-> obj start-y) (+ -49152.0 (-> obj root trans y)))
|
||||
(set! (-> obj end-y) (+ 851968.0 (-> obj start-y)))
|
||||
(set-vector! (-> obj root scale) 1.0 0.8 1.0 1.0)
|
||||
(let ((s4-0 (entity-actor-count arg0 'alt-actor)))
|
||||
(set! (-> obj alt-actors) (the-as (array entity-actor) (new 'process 'boxed-array entity-actor s4-0)))
|
||||
(dotimes (s3-0 s4-0)
|
||||
(set! (-> obj alt-actors s3-0) (entity-actor-lookup arg0 'alt-actor s3-0))
|
||||
)
|
||||
)
|
||||
(set! (-> obj root trans y) (-> obj start-y))
|
||||
(let ((s5-1 (get-process *default-dead-pool* helix-dark-eco #x4000)))
|
||||
(set! (-> obj dark-eco)
|
||||
(the-as
|
||||
(pointer helix-dark-eco)
|
||||
(when s5-1
|
||||
(let ((t9-6 (method-of-type helix-dark-eco activate)))
|
||||
(t9-6 (the-as helix-dark-eco s5-1) obj 'helix-dark-eco (the-as pointer #x70004000))
|
||||
)
|
||||
(run-now-in-process s5-1 water-vol-init-by-other (-> obj entity))
|
||||
(-> s5-1 ppointer)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! *helix-water* obj)
|
||||
(go helix-water-idle)
|
||||
(none)
|
||||
)
|
||||
+2
-1
@@ -198,7 +198,8 @@
|
||||
|
||||
;; definition of type sunkencam
|
||||
(deftype sunkencam (pov-camera)
|
||||
((seq uint64 :offset-assert 224)
|
||||
((ppointer-override (pointer sunkencam) :offset 24)
|
||||
(seq uint64 :offset-assert 224)
|
||||
)
|
||||
:heap-base #x80
|
||||
:method-count-assert 30
|
||||
|
||||
+195
@@ -0,0 +1,195 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup *minecartsteel-sg* minecartsteel
|
||||
0
|
||||
4
|
||||
((1 (meters 20)) (2 (meters 40)) (3 (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 4)
|
||||
:longest-edge (meters 0)
|
||||
)
|
||||
|
||||
;; definition of type minecartsteel
|
||||
(deftype minecartsteel (process-drawable)
|
||||
((root-override collide-shape-moving :offset 112)
|
||||
(index int32 :offset-assert 176)
|
||||
(anim spool-anim :offset-assert 180)
|
||||
(sync sync-info :inline :offset-assert 184)
|
||||
)
|
||||
:heap-base #x50
|
||||
:method-count-assert 21
|
||||
:size-assert #xc0
|
||||
:flag-assert #x15005000c0
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type minecartsteel
|
||||
(defmethod inspect minecartsteel ((obj minecartsteel))
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~T~Tindex: ~D~%" (-> obj index))
|
||||
(format #t "~T~Tanim: ~A~%" (-> obj anim))
|
||||
(format #t "~T~Tsync: #<sync-info @ #x~X>~%" (-> obj sync))
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (minecartsteel)
|
||||
:virtual #t
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(let ((v1-0 arg2))
|
||||
(the-as object (when (or (= v1-0 'touch) (= v1-0 'attack))
|
||||
(when (= (-> arg0 type) target)
|
||||
(let ((a2-1 (new 'stack 'collide-overlap-result)))
|
||||
(if (not (dummy-39 (-> self root-override) (-> *target* control) a2-1))
|
||||
(send-event arg0 'no-look-around 450)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:trans
|
||||
(the-as (function none :behavior minecartsteel) rider-trans)
|
||||
:code
|
||||
(behavior ()
|
||||
(ja-channel-set! 1)
|
||||
(let ((v1-2 (-> self skel root-channel 0)))
|
||||
(set! (-> v1-2 frame-group) (the-as art-joint-anim (-> self anim)))
|
||||
)
|
||||
(while #t
|
||||
(let ((gp-0 (-> self skel root-channel 0)))
|
||||
(set! (-> gp-0 num-func) num-func-identity)
|
||||
(set! (-> gp-0 frame-num)
|
||||
(* (get-current-phase (-> self sync)) (the float (+ (-> (if (> (-> self skel active-channels) 0)
|
||||
(-> self skel root-channel 0 frame-group)
|
||||
)
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a1-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 4))))
|
||||
(update-trans! (-> self sound) a1-1)
|
||||
)
|
||||
(update! (-> self sound))
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior minecartsteel) rider-post)
|
||||
)
|
||||
|
||||
;; definition for function minecartsteel-initialize-by-other
|
||||
(defbehavior minecartsteel-initialize-by-other minecartsteel ((arg0 entity-actor) (arg1 float))
|
||||
(let ((s4-0 (new 'process 'collide-shape-moving self (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)
|
||||
)
|
||||
(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) 4)
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 4915.2 0.0 13107.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! (-> self root-override) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! self arg0)
|
||||
(logclear! (-> self mask) (process-mask actor-pause))
|
||||
(quaternion-identity! (-> self root-override quat))
|
||||
(initialize-skeleton self *minecartsteel-sg* '())
|
||||
(set! (-> self draw origin-joint-index) (the-as uint 3))
|
||||
(logior! (-> self skel status) 1)
|
||||
(load-params! (-> self sync) self (the-as uint 9000) arg1 0.15 0.15)
|
||||
(set! (-> self sound) (new
|
||||
'process
|
||||
'ambient-sound
|
||||
(new 'static 'sound-spec
|
||||
:mask #x80
|
||||
:num 1.0
|
||||
:group #x1
|
||||
:sound-name (static-sound-name "v3-cartride")
|
||||
:volume #x400
|
||||
:fo-max 30
|
||||
)
|
||||
(-> self root-override trans)
|
||||
)
|
||||
)
|
||||
(set! (-> self index) (res-lump-value arg0 'index int))
|
||||
(let ((v1-33 (-> self index)))
|
||||
(set! (-> self anim)
|
||||
(the-as
|
||||
spool-anim
|
||||
(cond
|
||||
((zero? v1-33)
|
||||
(-> self draw art-group data 5)
|
||||
)
|
||||
((= v1-33 1)
|
||||
(let ((a0-17 (-> self sync))
|
||||
(t9-12 (method-of-type sync-info setup-params!))
|
||||
(a1-11 9000)
|
||||
(f0-7 (+ 0.8 arg1))
|
||||
)
|
||||
(t9-12 a0-17 (the-as uint a1-11) (- f0-7 (* (the float (the int (/ f0-7 1.0))) 1.0)) 0.15 0.15)
|
||||
)
|
||||
(-> self draw art-group data 6)
|
||||
)
|
||||
(else
|
||||
(let ((a0-18 (-> self sync))
|
||||
(t9-13 (method-of-type sync-info setup-params!))
|
||||
(a1-12 9000)
|
||||
(f0-10 (+ 0.13 arg1))
|
||||
)
|
||||
(t9-13 a0-18 (the-as uint a1-12) (- f0-10 (* (the float (the int (/ f0-10 1.0))) 1.0)) 0.15 0.15)
|
||||
)
|
||||
(-> self draw art-group data 7)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(go-virtual idle)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type minecartsteel
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! minecartsteel ((obj minecartsteel) (arg0 entity-actor))
|
||||
(dotimes (s4-0 4)
|
||||
(let ((s3-0 (get-process *default-dead-pool* minecartsteel #x4000)))
|
||||
(when s3-0
|
||||
(let ((t9-1 (method-of-type minecartsteel activate)))
|
||||
(t9-1 (the-as minecartsteel s3-0) obj 'minecartsteel (the-as pointer #x70004000))
|
||||
)
|
||||
(run-now-in-process s3-0 minecartsteel-initialize-by-other arg0 (* 0.2 (the float (+ s4-0 1))))
|
||||
(-> s3-0 ppointer)
|
||||
)
|
||||
)
|
||||
)
|
||||
(minecartsteel-initialize-by-other arg0 0.0)
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user