[jak2] fill in a lot of flags for decomp + mouse macros (#2927)

Also changed the default type of enums to `int64` (same as `int`).
This commit is contained in:
ManDude
2023-08-22 16:39:52 +01:00
committed by GitHub
parent 16af1837d1
commit 04269ffa86
104 changed files with 2472 additions and 1778 deletions
+16
View File
@@ -624,6 +624,22 @@
`(logtest? (cpad-hold ,pad-idx) (pad-buttons ,@buttons))
)
(defmacro mouse-pressed ()
`(-> *mouse* button0-rel 0)
)
(defmacro mouse-hold ()
`(-> *mouse* button0-abs 0)
)
(defmacro mouse-pressed? (&rest buttons)
`(logtest? (mouse-pressed) (mouse-buttons ,@buttons))
)
(defmacro mouse-hold? (&rest buttons)
`(logtest? (mouse-hold) (mouse-buttons ,@buttons))
)
(defmacro res-lump-data (lump name type &key (tag-ptr (the-as (pointer res-tag) #f)) &key (time -1000000000.0))
"Helper macro to get data from a res-lump without interpolation."
`(the-as ,type ((method-of-type res-lump get-property-data)
+1 -1
View File
@@ -21,7 +21,7 @@
)
;; definition for function matrix-local->world
(defun matrix-local->world ((smooth? symbol))
(defun matrix-local->world ((smooth? symbol) (arg1 symbol))
"Returns [[*math-camera*]]'s `inv-camera-rot-smooth` if `smooth?` is true, else return `inv-camera-rot`"
(if smooth?
(-> *math-camera* inv-camera-rot-smooth)
+7 -3
View File
@@ -128,7 +128,7 @@
(let ((v1-0 (new 'stack-no-clear 'vector)))
(vector-! v1-0 (the-as vector (-> *mouse* pos)) (-> *mouse* pos 1))
(cond
((logtest? (-> *mouse* button0-abs 0) 1)
((mouse-hold? left)
(let ((a0-7 (new 'stack-no-clear 'vector)))
0.0
(vector-! a0-7 (-> *math-camera* trans) (-> *setting-control* cam-current mouse-tumble-point))
@@ -161,11 +161,11 @@
)
)
)
((logtest? (-> *mouse* button0-abs 0) 2)
((mouse-hold? right)
(+! (-> arg1 x) (* (-> v1-0 x) (-> *CAM_FREE-bank* speed)))
(set! (-> arg1 z) (+ (-> arg1 z) (* (-> v1-0 y) (-> *CAM_FREE-bank* speed))))
)
((logtest? (-> *mouse* button0-abs 0) 4)
((mouse-hold? middle)
(+! (-> arg1 x) (* (-> v1-0 x) (-> *CAM_FREE-bank* speed)))
(set! (-> arg1 y) (+ (-> arg1 y) (* (-> v1-0 y) (-> *CAM_FREE-bank* speed))))
)
@@ -514,3 +514,7 @@
(none)
)
)
+1 -1
View File
@@ -1160,7 +1160,7 @@
)
((and (logtest? (focus-status dark) (-> obj process focus-status))
(nonzero? (-> obj process darkjak))
(logtest? (-> obj process darkjak stage) 32)
(logtest? (-> obj process darkjak stage) (darkjak-stage giant))
)
(set! (-> obj swim-height) 16384.0)
)
+5 -6
View File
@@ -1605,6 +1605,7 @@
)
;; definition for method 3 of type debug-vertex-stats
;; INFO: this function exists in multiple non-identical object files
(defmethod inspect debug-vertex-stats ((obj debug-vertex-stats))
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~Tlength: ~D~%" (-> obj length))
@@ -1726,8 +1727,7 @@
;; definition (debug) for function add-debug-cursor
;; INFO: Used lq/sq
;; WARN: Return type mismatch int vs none.
(defun-debug add-debug-cursor ((enable symbol) (bucket bucket-id) (x int) (y int) (arg4 int))
(defun-debug add-debug-cursor ((enable symbol) (bucket bucket-id) (x int) (y int) (arg4 mouse-buttons))
(when enable
(with-dma-buffer-add-bucket ((buf (-> *display* frames (-> *display* on-screen) global-buf))
bucket
@@ -1740,13 +1740,13 @@
(+ x -5)
(+ y -4)
(cond
((= v1-7 1)
((= v1-7 (mouse-buttons left))
(font-color red)
)
((= v1-7 2)
((= v1-7 (mouse-buttons right))
(font-color yellow)
)
((= v1-7 4)
((= v1-7 (mouse-buttons middle))
(font-color green)
)
(else
@@ -1759,7 +1759,6 @@
)
)
0
(none)
)
;; this part is debug only
+35 -26
View File
@@ -3989,7 +3989,7 @@
)
(logior! (-> *game-info* features) (game-feature darkjak))
(logior! (-> *game-info* debug-features) (game-feature darkjak))
(send-event *target* 'change-mode 'darkjak #f 3)
(send-event *target* 'change-mode 'darkjak #f (darkjak-stage force-on active))
)
)
(function "indax" #f ,(lambda ()
@@ -4050,7 +4050,7 @@
)
(logior! (-> *game-info* features) (game-feature darkjak))
(logior! (-> *game-info* debug-features) (game-feature darkjak))
(send-event *target* 'change-mode 'darkjak #f 3)
(send-event *target* 'change-mode 'darkjak #f (darkjak-stage force-on active))
)
)
(function "rapid" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg))
@@ -4059,37 +4059,46 @@
)
(logior! (-> *game-info* features) (game-feature darkjak))
(logior! (-> *game-info* debug-features) (game-feature darkjak))
(send-event *target* 'change-mode 'darkjak #f 2)
(send-event *target* 'change-mode 'darkjak #f (darkjak-stage active))
)
)
(function "bomb0" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(send-event *target* 'change-mode 'darkjak #f 7)
)
)
(function "bomb1" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(send-event *target* 'change-mode 'darkjak #f 15)
)
)
(function "invinc" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(send-event *target* 'change-mode 'darkjak #f 31)
)
)
(function "giant" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(send-event *target* 'change-mode 'darkjak #f 63)
(send-event *target* 'change-mode 'darkjak #f (darkjak-stage force-on active bomb0))
)
)
(function
"bomb1"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(send-event *target* 'change-mode 'darkjak #f (darkjak-stage force-on active bomb0 bomb1))
)
)
(function
"invinc"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(send-event *target* 'change-mode 'darkjak #f (darkjak-stage force-on active bomb0 bomb1 invinc))
)
)
(function
"giant"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(send-event *target* 'change-mode 'darkjak #f (darkjak-stage force-on active bomb0 bomb1 invinc giant))
)
)
)
(menu
"Gun"
@@ -6092,7 +6101,7 @@
)
(logior! (-> *game-info* features) (game-feature darkjak))
(logior! (-> *game-info* debug-features) (game-feature darkjak))
(send-event *target* 'change-mode 'darkjak #f 3)
(send-event *target* 'change-mode 'darkjak #f (darkjak-stage force-on active))
)
)
(function "indax" #f ,(lambda ()
+13 -9
View File
@@ -1460,19 +1460,19 @@
*stdcon*
"~16S~16S~16S~%"
(editable-command->string
(if (and (nonzero? (-> obj command 1)) (or (zero? (-> obj command 0)) (logtest? (-> *mouse* button0-abs 0) 1)))
(if (and (nonzero? (-> obj command 1)) (or (zero? (-> obj command 0)) (mouse-hold? left)))
(the-as editable-command (-> obj command 1))
(the-as editable-command (-> obj command 0))
)
)
(editable-command->string
(if (and (nonzero? (-> obj command 5)) (or (zero? (-> obj command 4)) (logtest? (-> *mouse* button0-abs 0) 4)))
(if (and (nonzero? (-> obj command 5)) (or (zero? (-> obj command 4)) (mouse-hold? middle)))
(the-as editable-command (-> obj command 5))
(the-as editable-command (-> obj command 4))
)
)
(editable-command->string
(if (and (nonzero? (-> obj command 3)) (or (zero? (-> obj command 2)) (logtest? (-> *mouse* button0-abs 0) 2)))
(if (and (nonzero? (-> obj command 3)) (or (zero? (-> obj command 2)) (mouse-hold? right)))
(the-as editable-command (-> obj command 3))
(the-as editable-command (-> obj command 2))
)
@@ -2026,19 +2026,19 @@
)
)
)
(if (logtest? (-> *mouse* button0-rel 0) 1)
(if (mouse-pressed? left)
(editable-array-method-9 gp-0 (the-as editable-command (-> self command 0)) (the-as editable-array *mouse*))
)
(if (logtest? (-> *mouse* button0-abs 0) 1)
(if (mouse-hold? left)
(editable-array-method-9 gp-0 (the-as editable-command (-> self command 1)) (the-as editable-array *mouse*))
)
(if (logtest? (-> *mouse* button0-rel 0) 2)
(if (mouse-pressed? right)
(editable-array-method-9 gp-0 (the-as editable-command (-> self command 2)) (the-as editable-array *mouse*))
)
(if (logtest? (-> *mouse* button0-abs 0) 2)
(if (mouse-hold? right)
(editable-array-method-9 gp-0 (the-as editable-command (-> self command 3)) (the-as editable-array *mouse*))
)
(when (logtest? (-> *mouse* button0-rel 0) 4)
(when (mouse-pressed? middle)
(let ((a2-11 (-> self command 4)))
(case a2-11
((36)
@@ -2053,7 +2053,7 @@
)
)
)
(if (logtest? (-> *mouse* button0-abs 0) 4)
(if (mouse-hold? middle)
(editable-array-method-9 gp-0 (the-as editable-command (-> self command 5)) (the-as editable-array *mouse*))
)
)
@@ -2619,3 +2619,7 @@
*debug-hook*
)
)
+54 -59
View File
@@ -1539,7 +1539,7 @@
(nav-graph-editor-method-34 obj)
(nav-graph-editor-method-32 obj (-> obj selected-node-edge?) (-> obj selected-index))
(cond
((not (logtest? (-> *mouse* button0-abs 0) 1))
((not (mouse-hold? left))
(let ((a0-4 (nav-graph-editor-method-49 obj)))
(vector-!
(-> a0-4 move-vec)
@@ -1590,12 +1590,12 @@
(defstate adjust-plane (nav-graph-editor)
:virtual #t
:trans (behavior ()
(if (logtest? (-> *mouse* button0-abs 0) 1)
(if (mouse-hold? left)
(go-virtual move-plane)
)
(when (and (logtest? (-> *mouse* button0-abs 0) 4) (>= (-> self selected-index) 0))
(logand! (-> *mouse* button0-abs 0) -5)
(logand! (-> *mouse* button0-rel 0) -5)
(when (and (mouse-hold? middle) (>= (-> self selected-index) 0))
(logclear! (-> *mouse* button0-abs 0) (mouse-buttons middle))
(logclear! (-> *mouse* button0-rel 0) (mouse-buttons middle))
(set! (-> self plane-height) (-> self nav-graph node-array data (-> self selected-index) position y))
)
(nav-graph-editor-method-41 self)
@@ -1622,7 +1622,7 @@
(none)
)
:trans (behavior ()
(if (not (logtest? (-> *mouse* button0-abs 0) 1))
(if (not (mouse-hold? left))
(go-virtual adjust-plane)
)
(none)
@@ -1668,12 +1668,13 @@
)
)
(cond
((and (logtest? (-> *mouse* button0-rel 0) 1)
(begin (logand! (-> *mouse* button0-abs 0) -2) (let ((v1-20 (logand -2 (-> *mouse* button0-rel 0))))
(set! (-> *mouse* button0-rel 0) v1-20)
(and v1-20 (!= (-> obj selected-index) (-> obj edge-src)))
)
)
((and (mouse-pressed? left) (begin
(logclear! (-> *mouse* button0-abs 0) (mouse-buttons left))
(let ((v1-20 (logclear (-> *mouse* button0-rel 0) (mouse-buttons left))))
(set! (-> *mouse* button0-rel 0) v1-20)
(and v1-20 (!= (-> obj selected-index) (-> obj edge-src)))
)
)
)
(cond
((>= (-> obj selected-index) 0)
@@ -1692,12 +1693,12 @@
(nav-graph-editor-method-47 obj)
(set! (-> obj edge-src) (-> obj edge-dst))
)
((logtest? (-> *mouse* button0-rel 0) 2)
((mouse-pressed? right)
(if (= (-> obj edge-dst) -2)
(nav-graph-editor-method-58 obj)
)
(logand! (-> *mouse* button0-abs 0) -3)
(logand! (-> *mouse* button0-rel 0) -3)
(logclear! (-> *mouse* button0-abs 0) (mouse-buttons right))
(logclear! (-> *mouse* button0-rel 0) (mouse-buttons right))
(go (method-of-object obj create))
)
)
@@ -1742,15 +1743,12 @@
(nav-graph-editor-method-43 obj)
(nav-graph-editor-method-32 obj (-> obj selected-node-edge?) (-> obj selected-index))
(cond
((logtest? (-> *mouse* button0-rel 0) 1)
(logand! (-> *mouse* button0-abs 0) -2)
(logand! (-> *mouse* button0-rel 0) -2)
((mouse-pressed? left)
(logclear! (-> *mouse* button0-abs 0) (mouse-buttons left))
(logclear! (-> *mouse* button0-rel 0) (mouse-buttons left))
(go (method-of-object obj create-edge))
)
((and (logtest? (-> *mouse* button0-rel 0) 2)
(>= (-> obj selected-index) 0)
(not (-> obj selected-node-edge?))
)
((and (mouse-pressed? right) (>= (-> obj selected-index) 0) (not (-> obj selected-node-edge?)))
)
(else
(nav-graph-editor-method-59 obj)
@@ -1798,19 +1796,19 @@
(nav-graph-editor-method-42 self)
(nav-graph-editor-method-32 self (-> self selected-node-edge?) (-> self selected-index))
(cond
((and (logtest? (-> *mouse* button0-abs 0) 1) (>= (-> self selected-index) 0))
(logand! (-> *mouse* button0-abs 0) -2)
(logand! (-> *mouse* button0-rel 0) -2)
((and (mouse-hold? left) (>= (-> self selected-index) 0))
(logclear! (-> *mouse* button0-abs 0) (mouse-buttons left))
(logclear! (-> *mouse* button0-rel 0) (mouse-buttons left))
(nav-graph-editor-method-53 self (-> self edge-visibility) (-> self selected-index))
)
((and (logtest? (-> *mouse* button0-abs 0) 4) (>= (-> self selected-index) 0))
(logand! (-> *mouse* button0-abs 0) -5)
(logand! (-> *mouse* button0-rel 0) -5)
((and (mouse-hold? middle) (>= (-> self selected-index) 0))
(logclear! (-> *mouse* button0-abs 0) (mouse-buttons middle))
(logclear! (-> *mouse* button0-rel 0) (mouse-buttons middle))
(nav-graph-editor-method-57 self (-> self edge-visibility) (-> self selected-index))
)
((logtest? (-> *mouse* button0-abs 0) 2)
(logand! (-> *mouse* button0-abs 0) -3)
(logand! (-> *mouse* button0-rel 0) -3)
((mouse-hold? right)
(logclear! (-> *mouse* button0-abs 0) (mouse-buttons right))
(logclear! (-> *mouse* button0-rel 0) (mouse-buttons right))
(go-virtual adjust-minimap)
)
)
@@ -1830,7 +1828,7 @@
(nav-graph-editor-method-28 self)
(nav-graph-editor-method-34 self)
(cond
((not (logtest? (-> *mouse* button0-abs 0) 1))
((not (mouse-hold? left))
(go-virtual adjust-it)
)
(else
@@ -1857,7 +1855,7 @@
(nav-graph-editor-method-28 self)
(nav-graph-editor-method-34 self)
(cond
((not (logtest? (-> *mouse* button0-abs 0) 2))
((not (mouse-hold? right))
(go-virtual adjust-it)
)
(else
@@ -1887,7 +1885,7 @@
(nav-graph-editor-method-28 self)
(nav-graph-editor-method-34 self)
(cond
((not (logtest? (-> *mouse* button0-abs 0) 2))
((not (mouse-hold? right))
(go-virtual adjust-it)
)
(else
@@ -1918,7 +1916,7 @@
(nav-graph-editor-method-34 self)
(nav-graph-editor-method-32 self (-> self selected-node-edge?) (-> self selected-index))
(cond
((not (logtest? (-> *mouse* button0-abs 0) 4))
((not (mouse-hold? middle))
(go-virtual adjust-it)
)
(else
@@ -1954,21 +1952,18 @@
)
)
(cond
((and (logtest? (-> *mouse* button0-abs 0) 1) (>= (-> obj selected-index) 0))
((and (mouse-hold? left) (>= (-> obj selected-index) 0))
(if (-> obj selected-node-edge?)
(go (method-of-object obj adjust-node-angle))
)
)
((and (logtest? (-> *mouse* button0-abs 0) 2) (>= (-> obj selected-index) 0))
((and (mouse-hold? right) (>= (-> obj selected-index) 0))
(if (-> obj selected-node-edge?)
(go (method-of-object obj adjust-node-radius))
(go (method-of-object obj adjust-edge-width))
)
)
((and (logtest? (-> *mouse* button0-abs 0) 4)
(>= (-> obj selected-index) 0)
(not (-> obj selected-node-edge?))
)
((and (mouse-hold? middle) (>= (-> obj selected-index) 0) (not (-> obj selected-node-edge?)))
(go (method-of-object obj adjust-edge-density))
)
(else
@@ -2016,14 +2011,14 @@
(nav-graph-editor-method-30 obj (-> obj selected-index))
)
(cond
((and (logtest? (-> *mouse* button0-abs 0) 1) (>= (-> obj selected-index) 0))
(logand! (-> *mouse* button0-abs 0) -2)
(logand! (-> *mouse* button0-rel 0) -2)
((and (mouse-hold? left) (>= (-> obj selected-index) 0))
(logclear! (-> *mouse* button0-abs 0) (mouse-buttons left))
(logclear! (-> *mouse* button0-rel 0) (mouse-buttons left))
(go (method-of-object obj adjust-edge-visibility))
)
((logtest? (-> *mouse* button0-abs 0) 2)
(logand! (-> *mouse* button0-abs 0) -3)
(logand! (-> *mouse* button0-rel 0) -3)
((mouse-hold? right)
(logclear! (-> *mouse* button0-abs 0) (mouse-buttons right))
(logclear! (-> *mouse* button0-rel 0) (mouse-buttons right))
(go (method-of-object obj draw-closest-minimap))
)
(else
@@ -2096,9 +2091,9 @@
)
)
(cond
((logtest? (-> *mouse* button0-abs 0) 2)
(logand! (-> *mouse* button0-abs 0) -3)
(logand! (-> *mouse* button0-rel 0) -3)
((mouse-hold? right)
(logclear! (-> *mouse* button0-abs 0) (mouse-buttons right))
(logclear! (-> *mouse* button0-rel 0) (mouse-buttons right))
(go-virtual adjust-minimap)
)
(else
@@ -2118,19 +2113,19 @@
(nav-graph-editor-method-43 obj)
(nav-graph-editor-method-32 obj (-> obj selected-node-edge?) (-> obj selected-index))
(cond
((and (logtest? (-> *mouse* button0-abs 0) 1) (>= (-> obj selected-index) 0) (-> obj selected-node-edge?))
(logand! (-> *mouse* button0-abs 0) -2)
(logand! (-> *mouse* button0-rel 0) -2)
((and (mouse-hold? left) (>= (-> obj selected-index) 0) (-> obj selected-node-edge?))
(logclear! (-> *mouse* button0-abs 0) (mouse-buttons left))
(logclear! (-> *mouse* button0-rel 0) (mouse-buttons left))
(go (method-of-object obj move-node))
)
((logtest? (-> *mouse* button0-abs 0) 2)
(logand! (-> *mouse* button0-abs 0) -3)
(logand! (-> *mouse* button0-rel 0) -3)
((mouse-hold? right)
(logclear! (-> *mouse* button0-abs 0) (mouse-buttons right))
(logclear! (-> *mouse* button0-rel 0) (mouse-buttons right))
(go (method-of-object obj create-edge))
)
((and (logtest? (-> *mouse* button0-abs 0) 4) (>= (-> obj selected-index) 0))
(logand! (-> *mouse* button0-abs 0) -5)
(logand! (-> *mouse* button0-rel 0) -5)
((and (mouse-hold? middle) (>= (-> obj selected-index) 0))
(logclear! (-> *mouse* button0-abs 0) (mouse-buttons middle))
(logclear! (-> *mouse* button0-rel 0) (mouse-buttons middle))
(if (-> obj selected-node-edge?)
(nav-graph-editor-method-55 obj (-> obj selected-index))
(nav-graph-editor-method-56 obj (-> obj selected-index))
+22 -22
View File
@@ -736,29 +736,25 @@
(set! (-> v1-0 z) (-> arg2 z))
(set! (-> v1-0 w) 1.0)
(let ((gp-1 (vector+float*! (new 'stack-no-clear 'vector) arg1 v1-0 0.0)))
(let ((t9-0 matrix-local->world)
(a0-3 #f)
)
(let* ((s4-0 (t9-0 a0-3))
(f28-0 (lerp-scale 122.88 245.76 (fabs (-> s4-0 vector 2 y)) 0.0 0.7))
(f30-0 (lerp-scale 2048.0 245.76 (fabs (-> s4-0 vector 2 y)) 0.0 0.7))
)
(let ((f26-0 (lerp-scale 0.0 0.1 (-> s4-0 vector 2 y) 0.3 0.7))
(f0-11 (lerp-scale 1.0 0.1 (-> s4-0 vector 2 y) 0.3 0.7))
)
(if (< 0.0 f26-0)
(send-event *camera* 'part-water-drip f26-0 f0-11)
)
)
(set! (-> *part-id-table* 60 init-specs 5 initial-valuef) f28-0)
(set! (-> *part-id-table* 60 init-specs 5 random-rangef) f28-0)
(set! (-> *part-id-table* 61 init-specs 5 initial-valuef) f28-0)
(set! (-> *part-id-table* 61 init-specs 5 random-rangef) f28-0)
(set! (-> *part-id-table* 60 init-specs 6 initial-valuef) f30-0)
(set! (-> *part-id-table* 60 init-specs 6 random-rangef) f30-0)
(set! (-> *part-id-table* 61 init-specs 6 initial-valuef) f30-0)
(set! (-> *part-id-table* 61 init-specs 6 random-rangef) f30-0)
(let* ((s4-0 (matrix-local->world #f #f))
(f28-0 (lerp-scale 122.88 245.76 (fabs (-> s4-0 vector 2 y)) 0.0 0.7))
(f30-0 (lerp-scale 2048.0 245.76 (fabs (-> s4-0 vector 2 y)) 0.0 0.7))
)
(let ((f26-0 (lerp-scale 0.0 0.1 (-> s4-0 vector 2 y) 0.3 0.7))
(f0-11 (lerp-scale 1.0 0.1 (-> s4-0 vector 2 y) 0.3 0.7))
)
(if (< 0.0 f26-0)
(send-event *camera* 'part-water-drip f26-0 f0-11)
)
)
(set! (-> *part-id-table* 60 init-specs 5 initial-valuef) f28-0)
(set! (-> *part-id-table* 60 init-specs 5 random-rangef) f28-0)
(set! (-> *part-id-table* 61 init-specs 5 initial-valuef) f28-0)
(set! (-> *part-id-table* 61 init-specs 5 random-rangef) f28-0)
(set! (-> *part-id-table* 60 init-specs 6 initial-valuef) f30-0)
(set! (-> *part-id-table* 60 init-specs 6 random-rangef) f30-0)
(set! (-> *part-id-table* 61 init-specs 6 initial-valuef) f30-0)
(set! (-> *part-id-table* 61 init-specs 6 random-rangef) f30-0)
)
(set! (-> *part-id-table* 60 init-specs 2 initial-valuef) arg0)
(set! (-> *part-id-table* 61 init-specs 2 initial-valuef) (* 4.0 arg0))
@@ -951,3 +947,7 @@
(:func 'sparticle-track-sun)
)
)
+9 -9
View File
@@ -15,15 +15,11 @@
(set-vector! (-> arg0 fog) (-> v1-0 pfog0) (-> v1-0 fog-min) (-> v1-0 fog-max) 3072.0)
)
(set-vector! (-> arg0 constants) -0.25 -0.5 0.0 393216.0)
(let ((t9-0 matrix-local->world)
(a0-8 #f)
)
(let* ((s4-0 (-> (t9-0 a0-8) vector 2))
(f0-12 (- 1.5 (* 0.000015258789 (atan (-> s4-0 x) (-> s4-0 z)))))
(f1-1 (+ 0.5 (* -0.5 (-> s4-0 y))))
)
(set-vector! (-> arg0 constants2) f0-12 f1-1 1.0 0.0)
)
(let* ((s4-0 (-> (matrix-local->world #f #f) vector 2))
(f0-12 (- 1.5 (* 0.000015258789 (atan (-> s4-0 x) (-> s4-0 z)))))
(f1-1 (+ 0.5 (* -0.5 (-> s4-0 y))))
)
(set-vector! (-> arg0 constants2) f0-12 f1-1 1.0 0.0)
)
(case *subdivide-ocean-draw-mode*
(((subdivide-setting textured))
@@ -1227,3 +1223,7 @@
(none)
)
)
+9 -10
View File
@@ -45,15 +45,11 @@
(set-vector! (-> arg0 fog) (-> v1-0 pfog0) (-> v1-0 fog-min) (-> v1-0 fog-max) 3072.0)
)
(set-vector! (-> arg0 constants) -0.25 -0.5 0.0 0.000010172526)
(let ((t9-0 matrix-local->world)
(a0-8 #f)
)
(let* ((s4-0 (-> (t9-0 a0-8) vector 2))
(f0-12 (- 1.5 (* 0.000015258789 (atan (-> s4-0 x) (-> s4-0 z)))))
(f1-1 (+ 0.5 (* -0.5 (-> s4-0 y))))
)
(set-vector! (-> arg0 constants2) f0-12 f1-1 1.0 128.0)
)
(let* ((s4-0 (-> (matrix-local->world #f #f) vector 2))
(f0-12 (- 1.5 (* 0.000015258789 (atan (-> s4-0 x) (-> s4-0 z)))))
(f1-1 (+ 0.5 (* -0.5 (-> s4-0 y))))
)
(set-vector! (-> arg0 constants2) f0-12 f1-1 1.0 128.0)
)
(set-vector! (-> arg0 constants3) 12288.0 0.125 2.0 0.03125)
(set-vector! (-> arg0 constants4) 2.0 255.0 3.0 0.0078125)
@@ -668,7 +664,6 @@
;; definition for method 29 of type ocean
;; INFO: Used lq/sq
;; WARN: Return type mismatch int vs none.
;; ERROR: Failed store: (s.w! (+ a0-1 8) 0) at op 6
(defmethod draw-ocean-near ocean ((obj ocean) (arg0 dma-buffer))
(local-vars (sv-16 uint))
(dma-buffer-add-gs-set arg0
@@ -723,3 +718,7 @@
0
(none)
)
+24 -24
View File
@@ -535,26 +535,26 @@
;; definition of type mouse-info
(deftype mouse-info (basic)
((active symbol :offset-assert 4)
(cursor basic :offset-assert 8)
(valid symbol :offset-assert 12)
(id uint8 :offset-assert 16)
(status uint16 :offset-assert 18)
(button0 uint16 :offset-assert 20)
(deltax int8 :offset-assert 22)
(deltay int8 :offset-assert 23)
(wheel uint8 :offset-assert 24)
(change-time time-frame :offset-assert 32)
(button0-abs uint32 3 :offset-assert 40)
(button0-shadow-abs uint32 1 :offset-assert 52)
(button0-rel uint32 3 :offset-assert 56)
(pos vector 2 :inline :offset-assert 80)
(posx float :offset 80)
(posy float :offset 84)
(oldposx float :offset 96)
(oldposy float :offset 100)
(speedx float :offset 92)
(speedy float :offset 108)
((active symbol :offset-assert 4)
(cursor basic :offset-assert 8)
(valid symbol :offset-assert 12)
(id uint8 :offset-assert 16)
(status uint16 :offset-assert 18)
(button0 uint16 :offset-assert 20)
(deltax int8 :offset-assert 22)
(deltay int8 :offset-assert 23)
(wheel uint8 :offset-assert 24)
(change-time time-frame :offset-assert 32)
(button0-abs mouse-buttons 3 :offset-assert 40)
(button0-shadow-abs mouse-buttons 1 :offset-assert 52)
(button0-rel mouse-buttons 3 :offset-assert 56)
(pos vector 2 :inline :offset-assert 80)
(posx float :offset 80)
(posy float :offset 84)
(oldposx float :offset 96)
(oldposy float :offset 100)
(speedx float :offset 92)
(speedy float :offset 108)
)
:method-count-assert 9
:size-assert #x70
@@ -622,7 +622,7 @@
(set! (-> gp-0 button0-abs 1) (-> gp-0 button0-shadow-abs 0))
(set! (-> gp-0 button0-rel 2) (-> gp-0 button0-rel 1))
(set! (-> gp-0 button0-rel 1) (-> gp-0 button0-rel 0))
(set! (-> gp-0 button0-rel 0) (the-as uint 0))
(set! (-> gp-0 button0-rel 0) (mouse-buttons))
(set! (-> gp-0 speedx) 0.0)
(set! (-> gp-0 speedy) 0.0)
(cond
@@ -639,8 +639,8 @@
(set! (-> gp-0 posx) (fmax -256.0 (fmin 256.0 (+ (-> gp-0 posx) (-> gp-0 speedx)))))
(set! (-> gp-0 posy) (fmax -208.0 (fmin 208.0 (+ (-> gp-0 posy) (-> gp-0 speedy)))))
(let ((v1-22 (-> gp-0 button0)))
(set! (-> gp-0 button0-shadow-abs 0) v1-22)
(set! (-> gp-0 button0-abs 0) v1-22)
(set! (-> gp-0 button0-shadow-abs 0) (the-as mouse-buttons v1-22))
(set! (-> gp-0 button0-abs 0) (the-as mouse-buttons v1-22))
)
(set! (-> gp-0 button0-rel 0) (logclear (-> gp-0 button0-abs 0) (-> gp-0 button0-abs 1)))
)
@@ -651,7 +651,7 @@
(bucket-id debug-no-zbuf2)
(+ (the int (-> gp-0 posx)) 256)
(+ (the int (-> gp-0 posy)) 208)
(the-as int (-> gp-0 button0-abs 0))
(-> gp-0 button0-abs 0)
)
)
)
+2 -2
View File
@@ -8,8 +8,8 @@
(start-time time-frame :offset-assert 16)
(attack-time time-frame :offset-assert 24)
(attack-count uint64 :offset-assert 32)
(stage uint32 :offset-assert 40)
(want-stage uint32 :offset-assert 44)
(stage darkjak-stage :offset-assert 40)
(want-stage darkjak-stage :offset-assert 44)
(clock-pos float :offset-assert 48)
(clock-vel float :offset-assert 52)
(clock-on symbol :offset-assert 56)
+1 -1
View File
@@ -89,7 +89,7 @@
(laser-point vector :inline :offset-assert 304)
(laser-dir vector 2 :inline :offset-assert 320)
(laser-hit-point vector :inline :offset-assert 352)
(track? uint16 :offset-assert 368)
(track? gun-track-flags :offset-assert 368)
(track-tilt degrees :offset-assert 372)
(track-turn degrees :offset-assert 376)
(track-find-range meters :offset-assert 380)
+2 -2
View File
@@ -68,7 +68,7 @@
(go target-gun-walk)
)
(if (want-to-darkjak?)
(go target-darkjak-get-on 2)
(go target-darkjak-get-on (darkjak-stage active))
)
(when (and (cpad-hold? (-> self control cpad number) l1) (can-duck?))
(logclear! (-> self state-flags) (state-flags lleg-still rleg-still))
@@ -176,7 +176,7 @@
(go target-gun-stance)
)
(if (want-to-darkjak?)
(go target-darkjak-get-on 2)
(go target-darkjak-get-on (darkjak-stage active))
)
(if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control cpad number) button0-rel 0)
(-> *cpad-list* cpads (-> self control cpad number) button0-rel 1)
+25 -28
View File
@@ -518,21 +518,17 @@
(set! (-> self control pad-xz-dir quad) (-> arg0 quad))
(set! (-> self control pad-magnitude) (-> self control cpad stick0-speed))
(when (< (-> self control update-cam-R-w-start-time) (current-time))
(let ((s5-0 (-> self control cam-R-w))
(t9-2 matrix-local->world)
(a0-13 #t)
)
(let* ((a2-0 (t9-2 a0-13))
(v1-24 (-> a2-0 quad 0))
(a0-14 (-> a2-0 quad 1))
(a1-1 (-> a2-0 quad 2))
(a2-1 (-> a2-0 trans quad))
)
(set! (-> s5-0 quad 0) v1-24)
(set! (-> s5-0 quad 1) a0-14)
(set! (-> s5-0 quad 2) a1-1)
(set! (-> s5-0 trans quad) a2-1)
)
(let* ((s5-0 (-> self control cam-R-w))
(a2-0 (matrix-local->world #t #f))
(v1-24 (-> a2-0 quad 0))
(a0-14 (-> a2-0 quad 1))
(a1-1 (-> a2-0 quad 2))
(a2-1 (-> a2-0 trans quad))
)
(set! (-> s5-0 quad 0) v1-24)
(set! (-> s5-0 quad 1) a0-14)
(set! (-> s5-0 quad 2) a1-1)
(set! (-> s5-0 trans quad) a2-1)
)
)
(vector-matrix*! arg0 arg0 (-> self control cam-R-w))
@@ -569,20 +565,17 @@
;; WARN: Return type mismatch vector vs none.
(defun vector<-pad-in-matrix! ((arg0 vector) (arg1 cpad-info) (arg2 matrix))
(let ((gp-0 (new 'stack-no-clear 'vector))
(t9-0 matrix-local->world)
(a0-1 #t)
)
(let ((s5-0 (t9-0 a0-1)))
(set! (-> gp-0 x) (* -0.0078125 (+ -128.0 (the float (-> arg1 leftx)))))
(set! (-> gp-0 y) 0.0)
(set! (-> gp-0 z) (* -0.0078125 (+ -128.0 (the float (-> arg1 lefty)))))
(set! (-> gp-0 w) 0.0)
(let ((f30-0 (vector-length gp-0)))
(vector-matrix*! gp-0 gp-0 s5-0)
(warp-vector-into-surface! arg0 gp-0 (-> arg2 vector 1) s5-0)
(vector-matrix*! arg0 arg0 arg2)
(vector-normalize! arg0 f30-0)
(s5-0 (matrix-local->world #t #f))
)
(set! (-> gp-0 x) (* -0.0078125 (+ -128.0 (the float (-> arg1 leftx)))))
(set! (-> gp-0 y) 0.0)
(set! (-> gp-0 z) (* -0.0078125 (+ -128.0 (the float (-> arg1 lefty)))))
(set! (-> gp-0 w) 0.0)
(let ((f30-0 (vector-length gp-0)))
(vector-matrix*! gp-0 gp-0 s5-0)
(warp-vector-into-surface! arg0 gp-0 (-> arg2 vector 1) s5-0)
(vector-matrix*! arg0 arg0 arg2)
(vector-normalize! arg0 f30-0)
)
)
(none)
@@ -3453,3 +3446,7 @@
(kill-by-name "tobot" *active-pool*)
0
)
+66 -28
View File
@@ -56,7 +56,11 @@
)
)
(and (and (focus-test? self dark) (nonzero? (-> self darkjak)))
(not (and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 32)))
(not (and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage giant))
)
)
(logtest? (game-feature darkjak-giant) (-> self game features))
)
)
@@ -116,7 +120,7 @@
)
(not (focus-test? self dead dangerous hit grabbed))
(not (and (-> self next-state) (= (-> self next-state name) 'target-darkjak-get-off)))
(not (logtest? (-> self darkjak stage) 1))
(not (logtest? (-> self darkjak stage) (darkjak-stage force-on)))
)
(go target-darkjak-get-off)
)
@@ -142,7 +146,10 @@
)
(let ((f26-1 (* 1.1 f26-0)))
(cond
((and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 32))
((and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage giant))
)
(set! gp-0 (new 'stack-no-clear 'vector))
(set! (-> gp-0 x) (/ f28-0 (* f28-0 f26-1 (lerp-scale 1.0 1.3 f30-0 0.0 1.0))))
(set! (-> gp-0 y) (/ f28-0 (* f28-0 (lerp-scale 1.0 1.4 f30-0 0.0 1.0))))
@@ -258,7 +265,7 @@
(case event-type
(('darkjak)
(when (zero? (-> self darkjak want-stage))
(set! (-> self darkjak want-stage) (-> event param 0))
(set! (-> self darkjak want-stage) (the-as darkjak-stage (-> event param 0)))
#t
)
)
@@ -285,20 +292,20 @@
)
(none)
)
:code (behavior ((arg0 int))
:code (behavior ((arg0 darkjak-stage))
(send-event (handle->process (-> self notify)) 'notify 'attack 15)
(if (and (focus-test? self dark) (nonzero? (-> self darkjak)))
(go target-darkjak-giant)
)
(set! (-> self darkjak stage) (the-as uint (logior arg0 2)))
(set! (-> self darkjak stage) (logior arg0 (darkjak-stage active)))
(if (logtest? (game-feature darkjak-bomb0) (-> self game features))
(logior! (-> self darkjak stage) 4)
(logior! (-> self darkjak stage) (darkjak-stage bomb0))
)
(if (logtest? (game-feature darkjak-bomb1) (-> self game features))
(logior! (-> self darkjak stage) 8)
(logior! (-> self darkjak stage) (darkjak-stage bomb1))
)
(if (logtest? (game-feature darkjak-invinc) (-> self game features))
(logior! (-> self darkjak stage) 16)
(logior! (-> self darkjak stage) (darkjak-stage invinc))
)
(set! (-> self darkjak want-stage) (-> self darkjak stage))
(set! (-> self neck flex-blend) 0.0)
@@ -310,11 +317,11 @@
(logior! (-> self focus-status) (focus-status dark))
(set! (-> (the-as fact-info-target (-> self fact)) darkjak-start-time) (current-time))
(set! (-> (the-as fact-info-target (-> self fact)) darkjak-effect-time) (seconds 20))
(if (logtest? (-> self darkjak stage) 16)
(if (logtest? (-> self darkjak stage) (darkjak-stage invinc))
(logior! (-> self state-flags) (state-flags sf4))
(logclear! (-> self state-flags) (state-flags sf4))
)
(if (logtest? arg0 64)
(if (logtest? arg0 (darkjak-stage no-anim))
(go target-stance)
)
(set-setting! 'bg-r 'abs 0.1 0)
@@ -354,7 +361,7 @@
(when (and (or (not (cpad-hold? (-> self control cpad number) l2))
(and (= *cheat-mode* 'debug) (cpad-hold? (-> self control cpad number) r2))
)
(and (< (ja-aframe-num 0) 5.0) (not (logtest? arg0 1)))
(and (< (ja-aframe-num 0) 5.0) (not (logtest? arg0 (darkjak-stage force-on))))
)
(let ((v1-131 (the-as sound-rpc-set-param (get-sound-buffer-entry))))
(set! (-> v1-131 command) (sound-command set-param))
@@ -376,7 +383,10 @@
(send-event
*traffic-manager*
'increase-alert-level
(if (and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 16))
(if (and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage invinc))
)
3
2
)
@@ -498,7 +508,11 @@
(until (ja-done? 0)
(set! (-> self darkjak-interp) (lerp-scale 1.0 0.0 (ja-aframe-num 0) 90.0 115.0))
(if (and (!= (-> *cpad-list* cpads (-> self control cpad number) stick0-speed) 0.0)
(or (not (and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 32)))
(or (not (and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage giant))
)
)
(= (-> self darkjak-interp) 0.0)
)
)
@@ -515,7 +529,11 @@
(while (not (ja-done? 0))
(set! (-> self darkjak-interp) (lerp-scale 1.0 0.0 (ja-aframe-num 0) 90.0 115.0))
(if (and (!= (-> *cpad-list* cpads (-> self control cpad number) stick0-speed) 0.0)
(or (not (and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 32)))
(or (not (and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage giant))
)
)
(= (-> self darkjak-interp) 0.0)
)
)
@@ -535,7 +553,11 @@
(set! (-> self darkjak-interp) (lerp-scale 1.0 0.0 (ja-aframe-num 0) 10.0 60.0))
(if (and (>= (ja-aframe-num 0) 24.0)
(!= (-> *cpad-list* cpads (-> self control cpad number) stick0-speed) 0.0)
(or (not (and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 32)))
(or (not (and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage giant))
)
)
(= (-> self darkjak-interp) 0.0)
)
)
@@ -552,7 +574,11 @@
(set! (-> self darkjak-interp) (lerp-scale 1.0 0.0 (ja-aframe-num 0) 10.0 60.0))
(if (and (>= (ja-aframe-num 0) 24.0)
(!= (-> *cpad-list* cpads (-> self control cpad number) stick0-speed) 0.0)
(or (not (and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 32)))
(or (not (and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage giant))
)
)
(= (-> self darkjak-interp) 0.0)
)
)
@@ -652,7 +678,10 @@
(if (and (cpad-pressed? (-> self control cpad number) square)
(not (logtest? (-> self state-flags) (state-flags prevent-jump prevent-attack)))
(not (logtest? (-> self control current-surface flags) (surface-flag no-attack)))
(and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 2))
(and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage active))
)
(< sv-32 2)
)
(set! sv-40 (the-as int (current-time)))
@@ -1239,7 +1268,10 @@
)
)
)
(if (and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 32))
(if (and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage giant))
)
(set! (-> sv-80 y) (* 0.5 (+ (-> self control trans y) (-> self control root-prim prim-core world-sphere y))))
(set! (-> sv-80 y) (-> self control root-prim prim-core world-sphere y))
)
@@ -1322,7 +1354,9 @@
(suspend)
(ja-eval)
)
(when (and (focus-test? self dark) (and (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 32)))
(when (and (focus-test? self dark)
(and (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) (darkjak-stage giant)))
)
(let ((gp-10 (process-spawn
manipy
:init manipy-init
@@ -1477,11 +1511,13 @@
(set! (-> v1-19 id) (the-as uint arg3))
(set! (-> v1-19 mode) 'ice)
(set! (-> v1-19 damage) 15.0)
(set! (-> v1-19 penetrate-using)
(if (and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 32))
(penetrate touch dark-skin dark-bomb dark-giant)
(penetrate touch dark-skin dark-bomb)
)
(set! (-> v1-19 penetrate-using) (if (and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage giant))
)
(penetrate touch dark-skin dark-bomb dark-giant)
(penetrate touch dark-skin dark-bomb)
)
)
(set! (-> a1-6 param 1) (the-as uint v1-19))
)
@@ -1744,7 +1780,9 @@
)
)
(set! (-> sv-56 r)
(if (and (focus-test? self dark) (and (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 32)))
(if (and (focus-test? self dark)
(and (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) (darkjak-stage giant)))
)
614400.0
327680.0
)
@@ -1883,7 +1921,7 @@
(set! (-> self darkjak-interp) 1.0)
(set! (-> self darkjak-giant-interp) (the-as float (-> self control unknown-word04)))
(when (= (the-as float (-> self control unknown-word04)) 1.0)
(logand! (-> self darkjak stage) -33)
(logclear! (-> self darkjak stage) (darkjak-stage giant))
(set! (-> self darkjak want-stage) (-> self darkjak stage))
)
(none)
@@ -1894,7 +1932,7 @@
(logior! (-> self state-flags) (state-flags sf4))
(set! (-> self neck flex-blend) 0.0)
(set! (-> self control mod-surface) *darkjak-trans-mods*)
(logior! (-> self darkjak stage) 32)
(logior! (-> self darkjak stage) (darkjak-stage giant))
(set! (-> self darkjak want-stage) (-> self darkjak stage))
(sound-play "djak-transform")
(let ((gp-1 (new 'stack-no-clear 'collide-query)))
+18 -14
View File
@@ -44,7 +44,7 @@
(f30-0 (lerp-scale 0.0 1.0 (fabs f0-0) 1820.4445 6371.5557))
)
(cond
((and (logtest? (-> self gun track?) 1)
((and (logtest? (-> self gun track?) (gun-track-flags gutflags-0))
(!= (-> *cpad-list* cpads (-> self control cpad number) stick0-speed) 0.0)
(>= (-> self gun track-turnv-range)
(vector-vector-distance (-> self control trans) (-> self gun track-trans))
@@ -214,7 +214,7 @@
(set! (-> self gun put-away?) #f)
(set! (-> self gun active?) #f)
(set! (-> self gun surpress-time) 0)
(set! (-> self gun track?) (the-as uint 6))
(set! (-> self gun track?) (gun-track-flags gutflags-1 gutflags-2))
(set! (-> self gun track-turn) 0.0)
(set! (-> self gun track-tilt) 0.0)
(set! (-> self gun track-target-hold-time) 0)
@@ -1187,8 +1187,8 @@
;; WARN: Return type mismatch int vs none.
(defbehavior target-gun-find-track target ()
(if (logtest? (-> self gun upper-body track-mode) (track-mode lock-on))
(logior! (-> self gun track?) 8)
(logand! (-> self gun track?) -9)
(logior! (-> self gun track?) (gun-track-flags gutflags-3))
(logclear! (-> self gun track?) (gun-track-flags gutflags-3))
)
(let ((gp-0 (the-as basic #f)))
(when (and (or (< (- (current-time) (-> self control time-of-last-nonzero-input)) (seconds 0.2))
@@ -1267,7 +1267,7 @@
(cond
(gp-0
(set! (-> self gun track-target-hold-time) 0)
(set! (-> self gun track?) (the-as uint 7))
(set! (-> self gun track?) (gun-track-flags gutflags-0 gutflags-1 gutflags-2))
(set! (-> self gun track-trans quad) (-> (get-trans (the-as process-focusable gp-0) 3) quad))
(when ((method-of-type focus try-update-focus)
(the-as focus (-> self gun track-target))
@@ -1321,7 +1321,7 @@
(= (send-event (the-as process-focusable s5-1) 'track #t) 'abort)
)
)
(set! (-> self gun track?) (the-as uint 6))
(set! (-> self gun track?) (gun-track-flags gutflags-1 gutflags-2))
(set! (-> self gun track-target-hold-time) 0)
((method-of-type focus clear-focused) (the-as focus (-> self gun track-target)))
)
@@ -1335,7 +1335,7 @@
((and (not (send-event-function (the-as process-focusable s5-1) a1-21))
(zero? (-> self gun track-target-hold-time))
)
(logand! (-> self gun track?) -5)
(logclear! (-> self gun track?) (gun-track-flags gutflags-2))
(set! (-> self gun track-trans quad) (-> (get-trans (the-as process-focusable s5-1) 3) quad))
)
(else
@@ -1391,7 +1391,7 @@
)
)
)
(when (logtest? (-> self gun track?) 1)
(when (logtest? (-> self gun track?) (gun-track-flags gutflags-0))
(if *gun-marks*
(add-debug-sphere
#t
@@ -1582,7 +1582,7 @@
)
(try-update-focus (-> self gun track-target 1) (the-as process-focusable gp-0))
(set! (-> self gun track-trans quad) (-> (get-trans (the-as process-focusable gp-0) 3) quad))
(set! (-> self gun track?) (the-as uint 7))
(set! (-> self gun track?) (gun-track-flags gutflags-0 gutflags-1 gutflags-2))
(if (zero? (-> self gun fire-pending))
(+! (-> self gun fire-pending) 1)
)
@@ -1698,7 +1698,9 @@
)
(target-gun-find-track)
(cond
((and (= (-> self gun gun-type) (pickup-type eco-blue)) (not (logtest? (-> self gun track?) 1)))
((and (= (-> self gun gun-type) (pickup-type eco-blue))
(not (logtest? (-> self gun track?) (gun-track-flags gutflags-0)))
)
(let ((f0-8 (vector-vector-distance (-> self gun fire-point) (-> self gun laser-hit-point))))
(cond
((< f0-8 122880.0)
@@ -1739,7 +1741,9 @@
(cond
((or (and (nonzero? (-> self gun track-target-hold-time)) (< (current-time) (-> self gun track-target-hold-time)))
(and (nonzero? (-> self gun turn-fast-hold-time)) (< (current-time) (-> self gun turn-fast-hold-time)))
(and (logtest? (-> self gun track?) 1) (logtest? (-> self gun track?) 4))
(and (logtest? (-> self gun track?) (gun-track-flags gutflags-0))
(logtest? (-> self gun track?) (gun-track-flags gutflags-2))
)
(or (logtest? (surface-flag gun-strafe) (-> self control current-surface flags))
(focus-test? self pilot-riding)
)
@@ -1764,7 +1768,7 @@
(set! (-> self upper-body flex-blend) 0.0)
(seek! (-> self upper-body flex-blend) 1.0 (* 8.0 (-> self clock seconds-per-frame)))
)
(when (logtest? (-> self gun track?) 1)
(when (logtest? (-> self gun track?) (gun-track-flags gutflags-0))
(set! (-> self gun top-anim-look-at quad) (-> self gun track-trans quad))
(let ((gp-6 (new 'stack-no-clear 'vector)))
(set! (-> gp-6 quad) (-> self gun top-anim-look-at quad))
@@ -1798,7 +1802,7 @@
)
)
(cond
((and (logtest? (-> self gun track?) 1)
((and (logtest? (-> self gun track?) (gun-track-flags gutflags-0))
(logtest? (process-mask enemy guard) (-> (handle->process (-> self gun track-target 0 handle)) mask))
)
(if (and (< (- (current-time) (-> self gun track-press-start-time)) (seconds 0.5))
@@ -1818,7 +1822,7 @@
((or (and (nonzero? (-> self gun track-target-hold-time)) (< (current-time) (-> self gun track-target-hold-time)))
(and (nonzero? (-> self gun turn-fast-hold-time)) (< (current-time) (-> self gun turn-fast-hold-time)))
)
(set! (-> self gun track?) (the-as uint 7))
(set! (-> self gun track?) (gun-track-flags gutflags-0 gutflags-1 gutflags-2))
(set! (-> self gun upper-body twist-max y) 21845.334)
(set! (-> self gun upper-body twist-speed-y) 0.2)
(set! (-> self gun upper-body twist-speed-x) 0.6)
+1 -1
View File
@@ -118,7 +118,7 @@
target-darkjak-bomb0
(target-darkjak-bomb1 float float)
target-darkjak-get-off
(target-darkjak-get-on int)
(target-darkjak-get-on darkjak-stage)
target-darkjak-giant
target-darkjak-running-attack
(target-death symbol)
+17 -7
View File
@@ -280,8 +280,12 @@
(set! (-> self control send-attack-dest) (process->handle arg0))
(set! (-> self control send-attack-time) (current-time))
(send-event self 'hit arg1 arg0 arg2)
(set! arg0
(and (and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 2)) arg0)
(set! arg0 (and (and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage active))
)
arg0
)
)
(when (the-as object arg0)
(when (and s4-0 (not s3-1) (-> self control danger-mode) (not (logtest? (-> s4-0 mask) (process-mask dark-effect))))
@@ -844,7 +848,10 @@
)
)
(('effect-control)
(when (and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 32))
(when (and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage giant))
)
(case (-> arg3 param 0)
(('effect-walk-step-left 'effect-walk-step-right 'effect-run-step-left 'effect-run-step-right)
(activate! *camera-smush-control* 409.6 15 75 1.0 0.98 (-> *display* camera-clock))
@@ -960,7 +967,10 @@
v0-0
)
((and (and (focus-test? self dark) (nonzero? (-> self darkjak)))
(or (and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 16))
(or (and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage invinc))
)
(logtest? (process-mask crate) (-> arg0 mask))
)
)
@@ -1258,10 +1268,10 @@
((= v1-45 'darkjak)
(cond
((not (and (focus-test? self dark) (nonzero? (-> self darkjak))))
(go target-darkjak-get-on (the-as int (-> arg3 param 2)))
(go target-darkjak-get-on (the-as darkjak-stage (-> arg3 param 2)))
)
((logtest? (-> arg3 param 2) 128)
(logand! (-> self darkjak stage) -2)
(logclear! (-> self darkjak stage) (darkjak-stage force-on))
(set! v0-0 (+ (- (seconds 20) (-> self fact darkjak-start-time)) (current-time)))
(set! (-> self fact darkjak-effect-time) (the-as time-frame v0-0))
v0-0
@@ -1311,7 +1321,7 @@
(when (and (and (focus-test? self dark) (nonzero? (-> self darkjak))) (zero? (-> self darkjak want-stage)))
(let ((v1-164 (-> arg3 param 0)))
(when (logtest? v1-164 4)
(set! (-> self darkjak want-stage) v1-164)
(set! (-> self darkjak want-stage) (the-as darkjak-stage v1-164))
(go target-darkjak-bomb0)
)
)
+18 -5
View File
@@ -422,7 +422,9 @@
)
)
)
(if (and (focus-test? self dark) (and (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 32)))
(if (and (focus-test? self dark)
(and (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) (darkjak-stage giant)))
)
(set! f30-0 1.0)
)
(set! (-> self control penetrate-using) (penetrate touch))
@@ -581,7 +583,10 @@
(set! (-> s5-0 transform-index) 21)
)
(set! (-> self control penetrate-using) (penetrate touch punch))
(if (and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 2))
(if (and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage active))
)
(logior! (-> self control penetrate-using) (penetrate dark-punch))
)
)
@@ -727,7 +732,10 @@
)
(when (and (focus-test? self dark) (nonzero? (-> self darkjak)))
(logior! (-> self control penetrate-using) (penetrate dark-skin))
(when (and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 32))
(when (and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage giant))
)
(logior! (-> self control penetrate-using) (penetrate dark-giant))
(let ((f0-46 (lerp-scale 1.0 (-> self darkjak-giant-interp) (-> self darkjak-interp) 0.0 1.0)))
(set! (-> self control root-prim local-sphere w) (* (-> self control root-prim local-sphere w) f0-46))
@@ -1083,7 +1091,9 @@
)
)
)
(when (and (focus-test? self dark) (and (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 32)))
(when (and (focus-test? self dark)
(and (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) (darkjak-stage giant)))
)
(let ((f0-183 (lerp-scale 1.0 (-> self darkjak-giant-interp) (-> self darkjak-interp) 0.0 1.0)))
(set! (-> gp-0 collision-spheres 0 local-sphere w)
(* 0.5 (+ 1.0 f0-183) (-> gp-0 collision-spheres 0 local-sphere w))
@@ -1127,7 +1137,10 @@
;; definition for method 26 of type target
(defmethod get-inv-mass target ((obj target))
(if (or (and (focus-test? obj dark) (nonzero? (-> obj darkjak)) (logtest? (-> obj darkjak stage) 32))
(if (or (and (focus-test? obj dark)
(nonzero? (-> obj darkjak))
(logtest? (-> obj darkjak stage) (darkjak-stage giant))
)
(focus-test? obj mech)
)
0.1
+2 -2
View File
@@ -305,7 +305,7 @@
)
(set! (-> self gun fire-dir-out quad) (-> gp-0 vector 2 quad))
)
(set! (-> self gun track?) (the-as uint 6))
(set! (-> self gun track?) (gun-track-flags gutflags-1 gutflags-2))
(target-gun-check)
)
(none)
@@ -1219,7 +1219,7 @@
(go target-walk)
)
(if (want-to-darkjak?)
(go target-darkjak-get-on 2)
(go target-darkjak-get-on (darkjak-stage active))
)
(if (and (cpad-hold? (-> self control cpad number) l1) (can-duck?))
(go target-duck-stance #f)
+87 -65
View File
@@ -5,7 +5,7 @@
;; WARN: Return type mismatch int vs none.
(defbehavior target-falling-trans target ((arg0 symbol) (arg1 time-frame))
(if (want-to-darkjak?)
(go target-darkjak-get-on 2)
(go target-darkjak-get-on (darkjak-stage active))
)
(if (and (cpad-pressed? (-> self control cpad number) circle) (can-feet? #f))
(go target-attack-air #f)
@@ -74,7 +74,7 @@
(go target-walk)
)
(if (want-to-darkjak?)
(go target-darkjak-get-on 2)
(go target-darkjak-get-on (darkjak-stage active))
)
(when (and (cpad-hold? (-> self control cpad number) l1) (can-duck?))
(logclear! (-> self state-flags) (state-flags lleg-still rleg-still lleg-no-ik rleg-no-ik))
@@ -187,7 +187,7 @@
(go target-stance)
)
(if (want-to-darkjak?)
(go target-darkjak-get-on 2)
(go target-darkjak-get-on (darkjak-stage active))
)
(if (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control cpad number) button0-rel 0)
(-> *cpad-list* cpads (-> self control cpad number) button0-rel 1)
@@ -575,7 +575,10 @@
;; definition for function init-var-jump
;; INFO: Used lq/sq
(defbehavior init-var-jump target ((arg0 float) (arg1 float) (arg2 symbol) (arg3 symbol) (arg4 vector) (arg5 float))
(when (and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 32))
(when (and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage giant))
)
(set! arg0 (* arg0 (-> self darkjak-giant-interp)))
(set! arg1 (* arg1 (-> self darkjak-giant-interp)))
)
@@ -702,17 +705,22 @@
)
)
0
(when (and arg1
(ja-group)
(and (-> (ja-group) extra)
(not (and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 32)))
#t
)
(when (and arg1 (ja-group) (and (-> (ja-group) extra)
(not (and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage giant))
)
)
#t
)
)
(let ((v1-62 (res-lump-struct (-> (ja-group) extra) 'collide-offset vector :time (ja-aframe-num 0))))
(cond
(v1-62
(if (and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 32))
(if (and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage giant))
)
(set! (-> v1-62 y) (* 0.5 (-> v1-62 y)))
)
(set! v0-1 (-> self control anim-collide-offset-local))
@@ -729,55 +737,57 @@
)
;; definition for symbol *duck-mods*, type surface
(define *duck-mods*
(new 'static 'surface
:name 'duck
:turnv 131072.0
:turnvv 524288.0
:tiltv 65536.0
:tiltvv 262144.0
:transv-max 16384.0
:target-speed 16384.0
:seek0 1.0
:seek90 1.0
:seek180 1.0
:fric 1.0
:nonlin-fric-dist 1.0
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 1.0
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:turnvf 30.0
:turnvvf 30.0
:tiltvf 150.0
:tiltvvf 15.0
:mult-hook (lambda :behavior target
((arg0 surface) (arg1 surface) (arg2 surface) (arg3 int))
(surface-clamp-speed arg0 arg1 arg2 arg3)
(when (= arg3 1)
(cond
((and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 32))
(set! (-> arg0 target-speed) 81920.0)
)
((and (focus-test? self dark) (nonzero? (-> self darkjak)))
(set! (-> arg0 target-speed) 40960.0)
)
(else
(set! (-> arg0 target-speed) 16384.0)
)
)
(define *duck-mods* (new 'static 'surface
:name 'duck
:turnv 131072.0
:turnvv 524288.0
:tiltv 65536.0
:tiltvv 262144.0
:transv-max 16384.0
:target-speed 16384.0
:seek0 1.0
:seek90 1.0
:seek180 1.0
:fric 1.0
:nonlin-fric-dist 1.0
:slip-factor 1.0
:slide-factor 1.0
:slope-up-factor 1.0
:slope-down-factor 1.0
:slope-slip-angle 1.0
:impact-fric 1.0
:bend-factor 1.0
:bend-speed 1.0
:alignv 1.0
:slope-up-traction 1.0
:align-speed 1.0
:turnvf 30.0
:turnvvf 30.0
:tiltvf 150.0
:tiltvvf 15.0
:mult-hook (lambda :behavior target
((arg0 surface) (arg1 surface) (arg2 surface) (arg3 int))
(surface-clamp-speed arg0 arg1 arg2 arg3)
(when (= arg3 1)
(cond
((and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage giant))
)
(set! (-> arg0 target-speed) 81920.0)
)
((and (focus-test? self dark) (nonzero? (-> self darkjak)))
(set! (-> arg0 target-speed) 40960.0)
)
(else
(set! (-> arg0 target-speed) 16384.0)
)
)
)
)
:flags (surface-flag duck)
)
)
)
:flags (surface-flag duck)
)
)
;; failed to figure out what this is:
(defstate target-duck-stance (target)
@@ -833,7 +843,7 @@
(go target-duck-walk 'duck)
)
(if (want-to-darkjak?)
(go target-darkjak-get-on 2)
(go target-darkjak-get-on (darkjak-stage active))
)
(when (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control cpad number) button0-rel 0)
(-> *cpad-list* cpads (-> self control cpad number) button0-rel 1)
@@ -990,7 +1000,7 @@
(go target-duck-stance 'duck)
)
(if (want-to-darkjak?)
(go target-darkjak-get-on 2)
(go target-darkjak-get-on (darkjak-stage active))
)
(when (and (logtest? (logior (logior (-> *cpad-list* cpads (-> self control cpad number) button0-rel 0)
(-> *cpad-list* cpads (-> self control cpad number) button0-rel 1)
@@ -1916,7 +1926,10 @@
600
1500
)
(if (and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 32))
(if (and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage giant))
)
(activate! *camera-smush-control* 1638.4 15 75 1.0 0.9 (-> *display* camera-clock))
)
(when (and (using-gun? self) (let ((v1-44 (-> self water flags)))
@@ -3149,7 +3162,10 @@
)
)
)
((and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 8))
((and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage bomb1))
)
(set! (-> self control unknown-sound-id00)
(add-process *gui-control* self (gui-channel jak) (gui-action queue) "darkbom1" -99.0 0)
)
@@ -3401,7 +3417,10 @@
((and (= (-> self fact eco-type) 1) (>= (-> self fact eco-level) 1.0))
(go target-yellow-jump-blast)
)
((and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 4))
((and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage bomb0))
)
(go target-darkjak-bomb0)
)
)
@@ -3472,7 +3491,10 @@
(when gp-1
(logior! (-> self control status) (collide-status on-surface))
(when (or (and (= (-> self fact eco-type) 2) (>= (-> self fact eco-level) 1.0))
(and (focus-test? self dark) (nonzero? (-> self darkjak)) (logtest? (-> self darkjak stage) 2))
(and (focus-test? self dark)
(nonzero? (-> self darkjak))
(logtest? (-> self darkjak stage) (darkjak-stage active))
)
)
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 (seconds 0.5))
(if (and (= (-> self fact eco-type) 2) (>= (-> self fact eco-level) 1.0))
+5 -7
View File
@@ -1163,7 +1163,6 @@
)
;; definition for method 3 of type engine-minimap
;; INFO: this function exists in multiple non-identical object files
(defmethod inspect engine-minimap ((obj engine-minimap))
((the-as (function engine-minimap engine-minimap) (find-parent-method engine-minimap 3)) obj)
(let ((s5-0 0)
@@ -1986,12 +1985,7 @@
(set! (-> (the-as (pointer uint128) s3-1) 1) (-> obj draw2-tmpl quad 1))
(let ((s2-0 (new-stack-vector0)))
(let ((s1-0 (new-stack-vector0)))
(let ((s0-0 s1-0)
(t9-3 matrix-local->world)
(a0-10 #f)
)
(set! (-> s0-0 quad) (-> (t9-3 a0-10) vector 2 quad))
)
(set! (-> s1-0 quad) (-> (matrix-local->world #f #f) vector 2 quad))
(set! (-> s1-0 y) 0.0)
(vector-normalize! s1-0 1.0)
(let ((v1-16 (-> arg0 mat)))
@@ -2772,3 +2766,7 @@
0
(none)
)
+86 -80
View File
@@ -182,8 +182,8 @@
;; definition for function sig0-say-look-out-if-should
(defun sig0-say-look-out-if-should ((arg0 sig-atoll))
(when (logtest? (-> arg0 bot-task-bits) 4)
(when (not (logtest? (-> arg0 bot-task-bits) 16))
(when (logtest? (-> arg0 bot-task-bits) (bot-task-bits botbits-2))
(when (not (logtest? (-> arg0 bot-task-bits) (bot-task-bits botbits-4)))
(let ((s5-0 (handle->process (-> arg0 focus handle))))
(when s5-0
(let ((v1-9 (if (type? s5-0 nav-enemy)
@@ -193,14 +193,14 @@
)
(when v1-9
(if (>= 20480.0 (- (-> (the-as process-focusable v1-9) root trans y) (-> arg0 root trans y)))
(logior! (-> arg0 bot-task-bits) 16)
(logior! (-> arg0 bot-task-bits) (bot-task-bits botbits-4))
)
)
)
)
)
)
(if (and (logtest? (-> arg0 bot-task-bits) 16)
(if (and (logtest? (-> arg0 bot-task-bits) (bot-task-bits botbits-4))
(not (speech-playing? arg0 26))
(not (channel-active? arg0 (the-as uint 0)))
)
@@ -212,7 +212,7 @@
;; definition for function sig-say-waste-the-suckers-if-should
(defun sig-say-waste-the-suckers-if-should ((arg0 sig-atoll))
(if (and (logtest? (-> arg0 bot-task-bits) 8)
(if (and (logtest? (-> arg0 bot-task-bits) (bot-task-bits botbits-3))
(not (speech-playing? arg0 25))
(not (channel-active? arg0 (the-as uint 0)))
)
@@ -405,7 +405,7 @@
)
)
:on-update (lambda ((arg0 sig-atoll))
(if (and (logtest? (-> arg0 bot-task-bits) 2)
(if (and (logtest? (-> arg0 bot-task-bits) (bot-task-bits botbits-1))
(not (speech-playing? arg0 33))
(not (channel-active? arg0 (the-as uint 0)))
)
@@ -458,7 +458,7 @@
(none)
)
:on-update (lambda ((arg0 sig-atoll))
(if (and (logtest? (-> arg0 bot-task-bits) 2)
(if (and (logtest? (-> arg0 bot-task-bits) (bot-task-bits botbits-1))
(not (speech-playing? arg0 33))
(not (channel-active? arg0 (the-as uint 0)))
)
@@ -781,7 +781,7 @@
(f1-0 98304.0)
)
(if (>= f0-0 (* f1-0 f1-0))
(logior! (-> arg0 waypoint-bits) 2)
(logior! (-> arg0 waypoint-bits) (waypoint-bits wabits-1))
)
)
(play-speech arg0 6)
@@ -794,11 +794,11 @@
(function sigt-wait-spot sig symbol)
(lambda ((arg0 object) (arg1 sig-atoll))
(with-pp
(when (and (not (logtest? (-> arg1 waypoint-bits) 4))
(when (and (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-2)))
(outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f)
)
(logand! (-> arg1 waypoint-bits) -5)
(when (not (logtest? (-> arg1 waypoint-bits) 1))
(logclear! (-> arg1 waypoint-bits) (waypoint-bits wabits-2))
(when (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-2 from) (process->ppointer pp))
(set! (-> a1-2 num-params) 0)
@@ -830,8 +830,8 @@
a1-3
)
((2)
(when (not (logtest? (-> arg1 waypoint-bits) 1))
(logior! (-> arg1 waypoint-bits) 1)
(when (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(let ((a1-4 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-4 from) (process->ppointer pp))
(set! (-> a1-4 num-params) 0)
@@ -886,22 +886,22 @@
:on-update (lambda ((arg0 sig-atoll))
(with-pp
(cond
((and (logtest? (-> arg0 waypoint-bits) 2)
((and (logtest? (-> arg0 waypoint-bits) (waypoint-bits wabits-1))
(outside-spot-radius? arg0 (the-as bot-spot #f) (the-as vector #f) #f)
)
(logand! (-> arg0 waypoint-bits) -3)
(logclear! (-> arg0 waypoint-bits) (waypoint-bits wabits-1))
(let ((f0-0 98304.0))
(if (>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (target-pos 0) (-> arg0 root trans)))
(play-speech arg0 34)
)
)
)
((and (logtest? (-> arg0 waypoint-bits) 2)
((and (logtest? (-> arg0 waypoint-bits) (waypoint-bits wabits-1))
(let ((f0-3 49152.0))
(>= (* f0-3 f0-3) (vector-vector-xz-distance-squared (target-pos 0) (-> arg0 root trans)))
)
)
(logand! (-> arg0 waypoint-bits) -3)
(logclear! (-> arg0 waypoint-bits) (waypoint-bits wabits-1))
(play-speech arg0 34)
)
(else
@@ -928,16 +928,18 @@
)
(when (and (demo?)
(>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 1))
(logtest? (-> arg0 waypoint-bits) 16)
(logtest? (-> arg0 waypoint-bits) (waypoint-bits wabits-4))
)
(logand! (-> arg0 waypoint-bits) -17)
(logclear! (-> arg0 waypoint-bits) (waypoint-bits wabits-4))
(talker-spawn-func (-> *talker-speech* 80) *entity-pool* (target-pos 0) (the-as region #f))
)
(when (or (not (logtest? (-> arg0 waypoint-bits) 8)) (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 8)))
(if (and (demo?) (not (logtest? (-> arg0 waypoint-bits) 8)))
(logior! (-> arg0 waypoint-bits) 16)
(when (or (not (logtest? (-> arg0 waypoint-bits) (waypoint-bits wabits-3)))
(>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 8))
)
(if (and (demo?) (not (logtest? (-> arg0 waypoint-bits) (waypoint-bits wabits-3))))
(logior! (-> arg0 waypoint-bits) (waypoint-bits wabits-4))
)
(logior! (-> arg0 waypoint-bits) 8)
(logior! (-> arg0 waypoint-bits) (waypoint-bits wabits-3))
(let* ((s5-4 (-> arg0 sig-course))
(s4-1 (-> s5-4 liftcat-speech-index))
)
@@ -990,7 +992,7 @@
(set! (-> arg1 too-far-warn-dist) 184320.0)
(set! (-> arg1 too-far-fail-dist-delta) 122880.0)
(cond
((not (logtest? (-> arg1 waypoint-bits) 1))
((not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f)
(let ((f0-2 (vector-vector-xz-distance-squared (-> arg1 root trans) (target-pos 0)))
(f1-0 81920.0)
@@ -1002,7 +1004,7 @@
(process-grab? *target* #t)
)
(set! (-> arg1 waypoint-time0) (current-time))
(logior! (-> arg1 waypoint-bits) 1)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(process-grab? arg1 #f)
(process-grab? *target* #f)
(reset-warn-time! arg1)
@@ -1017,7 +1019,7 @@
)
)
)
((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 2))
((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-1)))
(when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4.5))
(process-release? arg1)
(process-release? *target*)
@@ -1030,7 +1032,7 @@
(else
(when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3))
(remove-setting! 'entity-name)
(logior! (-> arg1 waypoint-bits) 2)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-1))
(set-setting! 'sound-mode #f 0.0 1)
)
)
@@ -1080,7 +1082,7 @@
(with-pp
(cond
((sig-plasma-method-10 (-> arg1 plasma))
(when (not (logtest? (-> arg1 waypoint-bits) 1))
(when (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-1 from) (process->ppointer pp))
(set! (-> a1-1 num-params) 0)
@@ -1096,7 +1098,7 @@
)
)
)
(logior! (-> arg1 waypoint-bits) 1)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
)
(let ((s5-0 *target*))
(if (and s5-0 (let ((a1-2 (new 'stack-no-clear 'event-message-block)))
@@ -1131,7 +1133,7 @@
)
)
(else
(when (logtest? (-> arg1 waypoint-bits) 1)
(when (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(let ((a1-8 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-8 from) (process->ppointer pp))
(set! (-> a1-8 num-params) 0)
@@ -1147,7 +1149,7 @@
)
)
)
(logand! (-> arg1 waypoint-bits) -2)
(logclear! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
)
)
)
@@ -1444,7 +1446,7 @@
)
)
)
((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 1))
((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4.5))
(process-release? arg1)
(process-release? *target*)
@@ -1457,7 +1459,7 @@
(else
(when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3))
(remove-setting! 'entity-name)
(logior! (-> arg1 waypoint-bits) 1)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(set-setting! 'sound-mode #f 0.0 1)
)
)
@@ -1508,7 +1510,7 @@
(with-pp
(cond
((sig-plasma-method-10 (-> arg1 plasma))
(when (not (logtest? (-> arg1 waypoint-bits) 1))
(when (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-1 from) (process->ppointer pp))
(set! (-> a1-1 num-params) 0)
@@ -1524,7 +1526,7 @@
)
)
)
(logior! (-> arg1 waypoint-bits) 1)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
)
(if (and *target*
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
@@ -1559,7 +1561,7 @@
)
)
(else
(when (logtest? (-> arg1 waypoint-bits) 1)
(when (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(let ((a1-9 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-9 from) (process->ppointer pp))
(set! (-> a1-9 num-params) 0)
@@ -1575,7 +1577,7 @@
)
)
)
(logand! (-> arg1 waypoint-bits) -2)
(logclear! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
)
)
)
@@ -1606,14 +1608,14 @@
(the-as
(function sigt-wait-spot sig symbol)
(lambda ((arg0 object) (arg1 sig-atoll))
(when (and (not (logtest? (-> arg1 waypoint-bits) 1)) (scene-release? arg1))
(when (and (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0))) (scene-release? arg1))
(remove-setting! 'sound-mode)
(clear-poi-and-focus! arg1)
(reset-warn-time! arg1)
(play-speech arg1 17)
(logior! (-> arg1 waypoint-bits) 1)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
)
(when (and (logtest? (-> arg1 waypoint-bits) 1) (not (channel-active? arg1 (the-as uint 0))))
(when (and (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)) (not (channel-active? arg1 (the-as uint 0))))
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
(go-to-waypoint! arg1 20 #f)
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
@@ -1711,8 +1713,10 @@
)
)
)
(when (or (not (logtest? (-> arg1 waypoint-bits) 2)) (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 8)))
(logior! (-> arg1 waypoint-bits) 2)
(when (or (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-1)))
(>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 8))
)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-1))
(let* ((s5-1 (-> arg1 sig-course))
(s4-1 (-> s5-1 liftcat-speech-index))
)
@@ -1731,8 +1735,8 @@
)
)
((= v1-6 2)
(when (not (logtest? (-> arg1 waypoint-bits) 1))
(logior! (-> arg1 waypoint-bits) 1)
(when (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(let ((a1-8 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-8 from) (process->ppointer pp))
(set! (-> a1-8 num-params) 0)
@@ -1844,7 +1848,7 @@
)
)
)
((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 1))
((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4.5))
(process-release? arg1)
(process-release? *target*)
@@ -1857,7 +1861,7 @@
(else
(when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3))
(remove-setting! 'entity-name)
(logior! (-> arg1 waypoint-bits) 1)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(set-setting! 'sound-mode #f 0.0 1)
)
)
@@ -1906,7 +1910,7 @@
(with-pp
(cond
((sig-plasma-method-10 (-> arg1 plasma))
(when (not (logtest? (-> arg1 waypoint-bits) 1))
(when (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-1 from) (process->ppointer pp))
(set! (-> a1-1 num-params) 0)
@@ -1922,7 +1926,7 @@
)
)
)
(logior! (-> arg1 waypoint-bits) 1)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
)
(if (and *target*
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
@@ -1961,7 +1965,7 @@
)
)
(else
(when (logtest? (-> arg1 waypoint-bits) 1)
(when (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(let ((a1-9 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-9 from) (process->ppointer pp))
(set! (-> a1-9 num-params) 0)
@@ -1977,7 +1981,7 @@
)
)
)
(logand! (-> arg1 waypoint-bits) -2)
(logclear! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
)
)
)
@@ -2191,12 +2195,12 @@
)
)
)
((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 1))
(when (and (not (logtest? (-> arg1 waypoint-bits) 2))
((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(when (and (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-1)))
(>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.1))
)
(remove-setting! 'string-startup-vector)
(logior! (-> arg1 waypoint-bits) 2)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-1))
)
(when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3.5))
(process-release? arg1)
@@ -2211,7 +2215,7 @@
(when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2))
(set-setting! 'string-startup-vector 'abs (new 'static 'vector :x 1.0) 0)
(remove-setting! 'entity-name)
(logior! (-> arg1 waypoint-bits) 1)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(set-setting! 'sound-mode #f 0.0 1)
)
)
@@ -2260,7 +2264,7 @@
(with-pp
(cond
((sig-plasma-method-10 (-> arg1 plasma))
(when (not (logtest? (-> arg1 waypoint-bits) 1))
(when (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-1 from) (process->ppointer pp))
(set! (-> a1-1 num-params) 0)
@@ -2276,7 +2280,7 @@
)
)
)
(logior! (-> arg1 waypoint-bits) 1)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
)
(if (and *target*
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
@@ -2311,7 +2315,7 @@
)
)
(else
(when (logtest? (-> arg1 waypoint-bits) 1)
(when (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(let ((a1-9 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-9 from) (process->ppointer pp))
(set! (-> a1-9 num-params) 0)
@@ -2327,7 +2331,7 @@
)
)
)
(logand! (-> arg1 waypoint-bits) -2)
(logclear! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
)
)
)
@@ -2357,14 +2361,14 @@
(the-as
(function sigt-wait-spot sig symbol)
(lambda ((arg0 object) (arg1 sig-atoll))
(when (and (not (logtest? (-> arg1 waypoint-bits) 1)) (scene-release? arg1))
(when (and (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0))) (scene-release? arg1))
(clear-poi-and-focus! arg1)
(remove-setting! 'sound-mode)
(reset-warn-time! arg1)
(play-speech arg1 24)
(logior! (-> arg1 waypoint-bits) 1)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
)
(when (and (logtest? (-> arg1 waypoint-bits) 1) (not (channel-active? arg1 (the-as uint 0))))
(when (and (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)) (not (channel-active? arg1 (the-as uint 0))))
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
(go-to-waypoint! arg1 31 #f)
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
@@ -2414,11 +2418,11 @@
:on-update (lambda ((arg0 sig-atoll))
(with-pp
(cond
((not (logtest? (-> arg0 bot-task-bits) 4))
((not (logtest? (-> arg0 bot-task-bits) (bot-task-bits botbits-2)))
(when (and (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 0.25))
(< (-> arg0 sig-course spots 36 center x) (-> (target-pos 0) x))
)
(logior! (-> arg0 bot-task-bits) 4)
(logior! (-> arg0 bot-task-bits) (bot-task-bits botbits-2))
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-0 from) (process->ppointer pp))
(set! (-> a1-0 num-params) 0)
@@ -2464,8 +2468,8 @@
(set! (-> arg0 too-far-fail-dist-delta) 163840.0)
(logclear! (-> arg0 focus-status) (focus-status disable))
(set! (-> arg0 notice-enemy-dist) 122880.0)
(when (not (logtest? (-> arg0 bot-task-bits) 4))
(logior! (-> arg0 bot-task-bits) 4)
(when (not (logtest? (-> arg0 bot-task-bits) (bot-task-bits botbits-2)))
(logior! (-> arg0 bot-task-bits) (bot-task-bits botbits-2))
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-0 from) (process->ppointer pp))
(set! (-> a1-0 num-params) 0)
@@ -2489,7 +2493,7 @@
(set! (-> (the-as sigt-wait-spot v1-18) check-done)
(the-as
(function sigt-wait-spot sig symbol)
(lambda ((arg0 object) (arg1 sig-atoll)) (when (logtest? (-> arg1 waypoint-bits) 1)
(lambda ((arg0 object) (arg1 sig-atoll)) (when (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
(go-to-waypoint! arg1 33 #f)
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
@@ -2504,8 +2508,10 @@
)
:on-update (lambda ((arg0 sig-atoll))
(sig0-say-look-out-if-should arg0)
(when (and (not (logtest? (-> arg0 waypoint-bits) 1)) (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 8)))
(logior! (-> arg0 waypoint-bits) 1)
(when (and (not (logtest? (-> arg0 waypoint-bits) (waypoint-bits wabits-0)))
(>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 8))
)
(logior! (-> arg0 waypoint-bits) (waypoint-bits wabits-0))
(logior! (-> arg0 focus-status) (focus-status disable))
(set! (-> arg0 notice-enemy-dist) 16384.0)
)
@@ -2608,15 +2614,15 @@
(play-speech arg0 27)
)
)
((not (logtest? (-> arg0 waypoint-bits) 1))
((not (logtest? (-> arg0 waypoint-bits) (waypoint-bits wabits-0)))
(when (speech-ended? arg0 27)
(logior! (-> arg0 waypoint-bits) 1)
(logior! (-> arg0 waypoint-bits) (waypoint-bits wabits-0))
(logclear! (-> arg0 focus-status) (focus-status disable))
(set! (-> arg0 notice-enemy-dist) 122880.0)
(set! (-> arg0 waypoint-time0) (current-time))
)
)
((not (logtest? (-> arg0 waypoint-bits) 2))
((not (logtest? (-> arg0 waypoint-bits) (waypoint-bits wabits-1)))
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-3 from) (process->ppointer pp))
(set! (-> a1-3 num-params) 1)
@@ -2640,7 +2646,7 @@
(>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 10))
)
(logior! (-> arg0 bot-flags) (bot-flags bf21))
(logior! (-> arg0 waypoint-bits) 2)
(logior! (-> arg0 waypoint-bits) (waypoint-bits wabits-1))
)
(else
(if (and (>= (- (current-time) (-> arg0 waypoint-time0)) (seconds 4)) (not (speech-playing? arg0 28)))
@@ -2813,12 +2819,12 @@
)
)
)
((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) 1))
(when (and (not (logtest? (-> arg1 waypoint-bits) 2))
((begin (reset-warn-time! arg1) (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(when (and (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-1)))
(>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.1))
)
(remove-setting! 'string-startup-vector)
(logior! (-> arg1 waypoint-bits) 2)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-1))
)
(when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4.5))
(process-release? arg1)
@@ -2833,7 +2839,7 @@
(when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 3))
(set-setting! 'string-startup-vector 'abs (new 'static 'vector :x -1.0) 0)
(remove-setting! 'entity-name)
(logior! (-> arg1 waypoint-bits) 1)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(set-setting! 'sound-mode #f 0.0 1)
)
)
@@ -2891,7 +2897,7 @@
(with-pp
(cond
((sig-plasma-method-10 (-> arg1 plasma))
(when (not (logtest? (-> arg1 waypoint-bits) 1))
(when (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-1 from) (process->ppointer pp))
(set! (-> a1-1 num-params) 0)
@@ -2907,7 +2913,7 @@
)
)
)
(logior! (-> arg1 waypoint-bits) 1)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
)
(when (and *target*
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
@@ -2950,7 +2956,7 @@
)
)
(else
(when (logtest? (-> arg1 waypoint-bits) 1)
(when (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(let ((a1-12 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-12 from) (process->ppointer pp))
(set! (-> a1-12 num-params) 0)
@@ -2966,7 +2972,7 @@
)
)
)
(logand! (-> arg1 waypoint-bits) -2)
(logclear! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
)
)
)
+22 -20
View File
@@ -857,23 +857,23 @@
(v1-10 (the-as process *traffic-manager*))
)
(cond
((not (logtest? (-> arg1 waypoint-bits) 1))
((not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(when (and s4-0 (and s5-1 v1-10))
(logior! (-> arg1 waypoint-bits) 1)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(set! (-> arg1 slave-handle 0) (process->handle s4-0))
(set! (-> arg1 slave-handle 1) (process->handle s5-1))
)
#f
)
((not (logtest? (-> arg1 waypoint-bits) 2))
(logior! (-> arg1 waypoint-bits) 2)
((not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-1)))
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-1))
(hal-method-226 arg1)
(send-event s4-0 'request 'waypoint 2)
(send-event s5-1 'request 'waypoint 2)
#f
)
((not (logtest? (-> arg1 waypoint-bits) 4))
(logior! (-> arg1 waypoint-bits) 4)
((not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-2)))
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-2))
(let ((s5-2 *traffic-manager*))
(send-event s5-2 'deactivate-all)
(let ((s4-1 (new 'stack 'traffic-object-spawn-params)))
@@ -1258,9 +1258,11 @@
(function halt-wait-spot hal symbol)
(lambda ((arg0 object) (arg1 hal-escort))
(hal-escort-method-232 arg1)
(when (and (not (logtest? (-> arg1 waypoint-bits) 1)) (not (-> *setting-control* user-current pilot-exit)))
(when (and (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(not (-> *setting-control* user-current pilot-exit))
)
(send-event (handle->process (-> arg1 arrow-handle)) 'set-position (-> arg1 hal4-course spots 6))
(logior! (-> arg1 waypoint-bits) 1)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
)
(if (and (not (speech-playing? arg1 14))
(not (-> *setting-control* user-current pilot-exit))
@@ -1614,9 +1616,9 @@
(not (logtest? (-> s5-0 focus-status) (focus-status edge-grab)))
)
)
(when (not (logtest? (-> arg1 bot-task-bits) 1))
(when (not (logtest? (-> arg1 bot-task-bits) (bot-task-bits botbits-0)))
(send-event *traffic-manager* 'set-alert-duration (seconds 1))
(logior! (-> arg1 bot-task-bits) 1)
(logior! (-> arg1 bot-task-bits) (bot-task-bits botbits-0))
)
(when (not (hal-escort-method-230 arg1))
(let* ((v1-34 (-> arg1 actor-group 0 data 2 actor))
@@ -1652,12 +1654,12 @@
)
)
(else
(when (logtest? (-> arg1 bot-task-bits) 1)
(when (logtest? (-> arg1 bot-task-bits) (bot-task-bits botbits-0))
(let ((s5-1 *traffic-manager*))
(send-event s5-1 'set-alert-level 1)
(send-event s5-1 'set-alert-duration (seconds 36000))
)
(logand! (-> arg1 bot-task-bits) -2)
(logclear! (-> arg1 bot-task-bits) (bot-task-bits botbits-0))
)
)
)
@@ -1737,10 +1739,10 @@
)
)
)
(when (and (not (logtest? (-> arg1 waypoint-bits) 2))
(when (and (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-1)))
(>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.75))
)
(logior! (-> arg1 waypoint-bits) 2)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-1))
(let ((s5-0 *traffic-manager*))
(send-event s5-0 'deactivate-by-type (traffic-type crimson-guard-1))
(send-event s5-0 'deactivate-by-type (traffic-type guard-bike))
@@ -1748,7 +1750,7 @@
(send-event s5-0 'deactivate-by-type (traffic-type traffic-type-20))
)
)
(when (and (not (logtest? (-> arg1 waypoint-bits) 1))
(when (and (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.2))
)
(let* ((v1-55 (-> arg1 actor-group 0 data 2 actor))
@@ -1771,7 +1773,7 @@
)
)
)
(logior! (-> arg1 waypoint-bits) 1)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(send-event a0-16 'request 'waypoint 26)
)
(send-event s5-1 'request 'waypoint 26)
@@ -1836,12 +1838,12 @@
(none)
)
:on-update (lambda ((arg0 hal-escort))
(when (not (logtest? (-> arg0 waypoint-bits) 1))
(when (not (logtest? (-> arg0 waypoint-bits) (waypoint-bits wabits-0)))
(let* ((a1-1 (nav-mesh-from-res-tag (-> arg0 entity) 'nav-mesh-actor 0))
(gp-0 (hal-escort-method-234 arg0 a1-1))
)
(when gp-0
(logior! (-> arg0 waypoint-bits) 1)
(logior! (-> arg0 waypoint-bits) (waypoint-bits wabits-0))
(let* ((v1-8 (-> arg0 actor-group 0 data 1 actor))
(a0-3 (when v1-8
(let ((s5-1 (-> v1-8 extra process)))
@@ -1974,12 +1976,12 @@
(none)
)
:on-update (lambda ((arg0 hal-escort))
(when (not (logtest? (-> arg0 waypoint-bits) 1))
(when (not (logtest? (-> arg0 waypoint-bits) (waypoint-bits wabits-0)))
(let* ((a1-1 (nav-mesh-from-res-tag (-> arg0 entity) 'nav-mesh-actor 1))
(gp-0 (hal-escort-method-234 arg0 a1-1))
)
(when gp-0
(logior! (-> arg0 waypoint-bits) 1)
(logior! (-> arg0 waypoint-bits) (waypoint-bits wabits-0))
(let* ((v1-8 (-> arg0 actor-group 0 data 1 actor))
(a0-3 (when v1-8
(let ((s5-1 (-> v1-8 extra process)))
+30 -29
View File
@@ -108,31 +108,32 @@
(set! (-> (the-as asht-wait-spot v1-7) check-done)
(the-as
(function asht-wait-spot ashelin symbol)
(lambda ((arg0 object) (arg1 ashelin-tanker)) (let ((v1-0 *traffic-manager*))
(cond
((not (logtest? (-> arg1 waypoint-bits) 1))
(if v1-0
(logior! (-> arg1 waypoint-bits) 1)
)
#f
)
((not (logtest? (-> arg1 waypoint-bits) 2))
(logior! (-> arg1 waypoint-bits) 2)
#f
)
((not (logtest? (-> arg1 waypoint-bits) 4))
(logior! (-> arg1 waypoint-bits) 4)
#f
)
(else
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
(go-to-waypoint! arg1 2 #f)
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
#t
)
)
)
(lambda ((arg0 object) (arg1 ashelin-tanker))
(let ((v1-0 *traffic-manager*))
(cond
((not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(if v1-0
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
)
#f
)
((not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-1)))
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-1))
#f
)
((not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-2)))
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-2))
#f
)
(else
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
(go-to-waypoint! arg1 2 #f)
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
#t
)
)
)
)
)
)
)
@@ -176,13 +177,13 @@
(>= (-> v1-2 z) 1703936.0)
(>= 2027520.0 (-> v1-2 z))
)
(logior! (-> arg1 bot-task-bits) 1)
(logior! (-> arg1 bot-task-bits) (bot-task-bits botbits-0))
)
)
)
)
(let ((v1-8 (get-current-task-event (-> arg1 task))))
(when (and (logtest? (-> arg1 bot-task-bits) 1) (= (-> v1-8 action) (game-task-action say)))
(when (and (logtest? (-> arg1 bot-task-bits) (bot-task-bits botbits-0)) (= (-> v1-8 action) (game-task-action say)))
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
(go-to-waypoint! arg1 3 #f)
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
@@ -270,7 +271,7 @@
(set-setting! 'music 'danger9 0.0 0)
(set! (-> arg0 notice-enemy-dist) 245760.0)
(logior! (-> arg0 bot-flags) (bot-flags bf06))
(logand! (-> arg0 bot-task-bits) -3)
(logclear! (-> arg0 bot-task-bits) (bot-task-bits botbits-1))
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-3 from) (process->ppointer pp))
(set! (-> a1-3 num-params) 0)
@@ -327,7 +328,7 @@
)
:on-update (lambda ((arg0 ashelin-tanker))
(suppress-traffic arg0)
(when (logtest? (-> arg0 bot-task-bits) 2)
(when (logtest? (-> arg0 bot-task-bits) (bot-task-bits botbits-1))
(ai-task-control-method-12 (-> arg0 ai-ctrl) arg0)
(go-to-waypoint! arg0 9 #f)
)
@@ -388,7 +389,7 @@
)
:on-update (lambda ((arg0 ashelin-tanker))
(suppress-traffic arg0)
(when (logtest? (-> arg0 bot-task-bits) 2)
(when (logtest? (-> arg0 bot-task-bits) (bot-task-bits botbits-1))
(ai-task-control-method-12 (-> arg0 ai-ctrl) arg0)
(go-to-waypoint! arg0 9 #f)
)
+12 -12
View File
@@ -9,7 +9,7 @@
(lambda :behavior task-manager
()
(set! (-> self data-float 0) (the-as float (send-event *target* 'test-pickup (pickup-type eco-pill-dark))))
(send-event *target* 'change-mode 'darkjak #f 65)
(send-event *target* 'change-mode 'darkjak #f (darkjak-stage force-on no-anim))
(set! (-> self sound-id 0)
(add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0)
)
@@ -26,7 +26,7 @@
(lambda :behavior task-manager
()
(send-event *target* 'get-pickup (pickup-type eco-pill-dark) (-> self data-float 0))
(send-event *target* 'change-mode 'darkjak #f 128)
(send-event *target* 'change-mode 'darkjak #f (darkjak-stage disable-force-on))
(send-event *target* 'get-notify #f)
(set-action!
*gui-control*
@@ -72,7 +72,7 @@
(lambda :behavior task-manager
()
(if (and *target* (not (logtest? (focus-status dark) (-> *target* focus-status))))
(send-event *target* 'change-mode 'darkjak #f 65)
(send-event *target* 'change-mode 'darkjak #f (darkjak-stage force-on no-anim))
)
(when (= (get-status *gui-control* (-> self sound-id 0)) (gui-status active))
(let ((gp-1
@@ -107,7 +107,7 @@
(lambda :behavior task-manager
()
(set! (-> self data-float 0) (the-as float (send-event *target* 'test-pickup (pickup-type eco-pill-dark))))
(send-event *target* 'change-mode 'darkjak #f 65)
(send-event *target* 'change-mode 'darkjak #f (darkjak-stage force-on no-anim))
(set! (-> self sound-id 0)
(add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0)
)
@@ -124,7 +124,7 @@
(lambda :behavior task-manager
()
(send-event *target* 'get-pickup (pickup-type eco-pill-dark) (-> self data-float 0))
(send-event *target* 'change-mode 'darkjak #f 128)
(send-event *target* 'change-mode 'darkjak #f (darkjak-stage disable-force-on))
(send-event *target* 'get-notify #f)
(set-action!
*gui-control*
@@ -170,7 +170,7 @@
(lambda :behavior task-manager
()
(if (and *target* (not (logtest? (focus-status dark) (-> *target* focus-status))))
(send-event *target* 'change-mode 'darkjak #f 65)
(send-event *target* 'change-mode 'darkjak #f (darkjak-stage force-on no-anim))
)
(when (= (get-status *gui-control* (-> self sound-id 0)) (gui-status active))
(let ((gp-1
@@ -205,7 +205,7 @@
(lambda :behavior task-manager
()
(set! (-> self data-float 0) (the-as float (send-event *target* 'test-pickup (pickup-type eco-pill-dark))))
(send-event *target* 'change-mode 'darkjak #f 65)
(send-event *target* 'change-mode 'darkjak #f (darkjak-stage force-on no-anim))
(set! (-> self sound-id 0)
(add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0)
)
@@ -223,7 +223,7 @@
(lambda :behavior task-manager
()
(send-event *target* 'get-pickup (pickup-type eco-pill-dark) (-> self data-float 0))
(send-event *target* 'change-mode 'darkjak #f 128)
(send-event *target* 'change-mode 'darkjak #f (darkjak-stage disable-force-on))
(send-event *target* 'get-notify #f)
(set-action!
*gui-control*
@@ -248,7 +248,7 @@
(lambda :behavior task-manager
()
(if (and *target* (not (logtest? (focus-status dark) (-> *target* focus-status))))
(send-event *target* 'change-mode 'darkjak #f 65)
(send-event *target* 'change-mode 'darkjak #f (darkjak-stage force-on no-anim))
)
(when (= (get-status *gui-control* (-> self sound-id 0)) (gui-status active))
(let ((gp-1
@@ -283,7 +283,7 @@
(lambda :behavior task-manager
()
(set! (-> self data-float 0) (the-as float (send-event *target* 'test-pickup (pickup-type eco-pill-dark))))
(send-event *target* 'change-mode 'darkjak #f 65)
(send-event *target* 'change-mode 'darkjak #f (darkjak-stage force-on no-anim))
(set! (-> self sound-id 0)
(add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0)
)
@@ -300,7 +300,7 @@
(lambda :behavior task-manager
()
(send-event *target* 'get-pickup (pickup-type eco-pill-dark) (-> self data-float 0))
(send-event *target* 'change-mode 'darkjak #f 128)
(send-event *target* 'change-mode 'darkjak #f (darkjak-stage disable-force-on))
(send-event *target* 'get-notify #f)
(set-action!
*gui-control*
@@ -347,7 +347,7 @@
(lambda :behavior task-manager
()
(if (and *target* (not (logtest? (focus-status dark) (-> *target* focus-status))))
(send-event *target* 'change-mode 'darkjak #f 65)
(send-event *target* 'change-mode 'darkjak #f (darkjak-stage force-on no-anim))
)
(when (= (get-status *gui-control* (-> self sound-id 0)) (gui-status active))
(let ((gp-1
+2 -2
View File
@@ -266,9 +266,9 @@
(ai-ctrl ai-task-control :offset-assert 648)
(course bot-course :offset-assert 652)
(waypoint bot-waypoint :offset-assert 656)
(waypoint-bits uint32 :offset-assert 660)
(waypoint-bits waypoint-bits :offset-assert 660)
(waypoint-int32a int32 :offset-assert 664)
(bot-task-bits uint32 :offset-assert 668)
(bot-task-bits bot-task-bits :offset-assert 668)
(hit-invuln-ignore-me-delay uint32 :offset-assert 672)
(hit-invuln-focus-disable-delay uint32 :offset-assert 676)
(warn-to-fail-timeout uint32 :offset-assert 680)
+1 -1
View File
@@ -1412,7 +1412,7 @@ If the player is too far, play a warning speech."
(let ((waypoint (-> course waypoints i)))
(when (= (-> waypoint waypoint-id) id)
(set! (-> obj waypoint) waypoint)
(set! (-> obj waypoint-bits) (the-as uint 0))
(set! (-> obj waypoint-bits) (waypoint-bits))
(set! (-> obj waypoint-time0) (current-time))
(set! (-> obj too-far-warn-dist) (-> obj too-far-warn-dist-default))
(set! (-> obj too-far-fail-dist-delta) (-> obj too-far-fail-dist-delta-default))
@@ -143,7 +143,7 @@
;; definition of type amphibian
(deftype amphibian (nav-enemy)
((tongue-scale float :offset-assert 604)
(flags uint8 :offset-assert 608)
(flags amphibian-flags :offset-assert 608)
(knocked-anim-index int8 :offset-assert 609)
(jump-anim-index int8 :offset-assert 610)
(tongue-mode uint64 :offset-assert 616)
@@ -1021,7 +1021,7 @@
((>= f26-0 13.0)
(set! s4-0 #t)
)
((and (>= 1.0 f26-0) (logtest? (-> obj flags) 1))
((and (>= 1.0 f26-0) (logtest? (-> obj flags) (amphibian-flags amflags-0)))
(set! s5-0 #t)
)
)
@@ -1035,8 +1035,8 @@
)
)
(if s4-0
(logior! (-> obj flags) 1)
(logand! (-> obj flags) -2)
(logior! (-> obj flags) (amphibian-flags amflags-0))
(logclear! (-> obj flags) (amphibian-flags amflags-0))
)
)
(cond
@@ -1059,7 +1059,7 @@
)
(set! (-> s5-3 frame-num) (ja-aframe f26-0 0))
)
(logand! (-> obj flags) -2)
(logclear! (-> obj flags) (amphibian-flags amflags-0))
)
)
(else
@@ -1081,7 +1081,7 @@
)
(set! (-> s5-4 frame-num) (ja-aframe f26-0 0))
)
(logand! (-> obj flags) -2)
(logclear! (-> obj flags) (amphibian-flags amflags-0))
)
)
(else
@@ -1095,7 +1095,7 @@
)
(set! (-> s5-5 frame-num) (ja-aframe f26-0 0))
)
(logand! (-> obj flags) -2)
(logclear! (-> obj flags) (amphibian-flags amflags-0))
)
)
)
@@ -1120,7 +1120,7 @@
)
(set! (-> s5-6 frame-num) (ja-aframe f26-0 0))
)
(logand! (-> obj flags) -2)
(logclear! (-> obj flags) (amphibian-flags amflags-0))
)
)
)
+11 -11
View File
@@ -80,7 +80,7 @@
(heading symbol :offset-assert 724)
(move-pos vector :inline :offset-assert 736)
(move-angle float :offset-assert 752)
(status-flags uint64 :offset-assert 760)
(status-flags grenadier-flags :offset-assert 760)
(suppress-knockaside-timer time-frame :offset-assert 768)
)
:heap-base #x290
@@ -329,7 +329,7 @@
)
(return #t)
)
(logior! (-> obj status-flags) 1)
(logior! (-> obj status-flags) (grenadier-flags grflags-0))
(set! (-> obj suppress-knockaside-timer) (current-time))
)
((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3)
@@ -558,7 +558,7 @@
)
(grenadier-method-181 self)
(look-at-target! self (enemy-flag death-start))
(logand! (-> self status-flags) -2)
(logclear! (-> self status-flags) (grenadier-flags grflags-0))
(none)
)
:trans (behavior ()
@@ -931,7 +931,7 @@
(logior! (-> self nav flags) (nav-control-flag update-heading-from-facing))
(logclear! (-> self nav flags) (nav-control-flag update-heading-from-facing))
)
(logand! (-> self status-flags) -3)
(logclear! (-> self status-flags) (grenadier-flags grflags-1))
(if (logtest? (-> self enemy-flags) (enemy-flag check-water))
(logior! (-> self focus-status) (focus-status dangerous))
(logclear! (-> self focus-status) (focus-status dangerous))
@@ -958,7 +958,7 @@
)
0
(logclear! (-> self nav flags) (nav-control-flag update-heading-from-facing))
(logior! (-> self status-flags) 2)
(logior! (-> self status-flags) (grenadier-flags grflags-1))
(ja-no-eval :group! grenadier-run-to-throw-ja
:num! (seek! (the float (+ (-> (the-as art-joint-anim grenadier-run-to-throw-ja) frames num-frames) -1)) f30-0)
:frame-num 0.0
@@ -968,7 +968,7 @@
(ja :num! (seek! max f30-0))
)
(ja-channel-push! 1 (seconds 0.067))
(logand! (-> self status-flags) -3)
(logclear! (-> self status-flags) (grenadier-flags grflags-1))
(if (logtest? (enemy-flag enemy-flag43) (-> self enemy-flags))
(logior! (-> self nav flags) (nav-control-flag update-heading-from-facing))
(logclear! (-> self nav flags) (nav-control-flag update-heading-from-facing))
@@ -981,7 +981,7 @@
)
0
(cond
((logtest? (-> self status-flags) 1)
((logtest? (-> self status-flags) (grenadier-flags grflags-0))
(ja-channel-push! 1 (seconds 0.135))
(ja-no-eval :group! grenadier-throw-quick-ja
:num! (seek! (the float (+ (-> (the-as art-joint-anim grenadier-throw-quick-ja) frames num-frames) -1)) f30-0)
@@ -991,7 +991,7 @@
(suspend)
(ja :num! (seek! max f30-0))
)
(logand! (-> self status-flags) -2)
(logclear! (-> self status-flags) (grenadier-flags grflags-0))
)
(else
(when (not (enemy-method-96 self 1820.4445 #t))
@@ -1166,7 +1166,7 @@
;; definition for method 70 of type grenadier
(defmethod go-hostile grenadier ((obj grenadier))
(if (and (and (-> obj next-state) (= (-> obj next-state name) 'knocked))
(and (logtest? (-> obj status-flags) 1)
(and (logtest? (-> obj status-flags) (grenadier-flags grflags-0))
(handle->process (-> obj focus handle))
(not (logtest? (-> (the-as process-focusable (handle->process (-> obj focus handle))) focus-status)
(focus-status disable dead ignore grabbed)
@@ -1219,7 +1219,7 @@
;; WARN: Return type mismatch int vs none.
(defmethod nav-enemy-method-142 grenadier ((obj grenadier) (arg0 nav-control))
(local-vars (a0-4 int) (a0-6 int))
(b! (logtest? (-> obj status-flags) 2) cfg-6 :delay (empty-form))
(b! (logtest? (-> obj status-flags) (grenadier-flags grflags-1)) cfg-6 :delay (empty-form))
(let ((v1-3 (new 'stack-no-clear 'vector))
(a2-0 (new 'stack-no-clear 'vector))
)
@@ -1416,7 +1416,7 @@
)
)
(set! (-> obj move-angle) 5461.3335)
(set! (-> obj status-flags) (the-as uint 0))
(set! (-> obj status-flags) (grenadier-flags))
(set! (-> obj suppress-knockaside-timer) 0)
(set-vector! (-> obj root scale) 1.5 1.5 1.5 1.0)
(set! (-> obj joint) (new 'process 'joint-mod-blend-world obj 17 #f 0.0))
@@ -395,7 +395,7 @@
(deftype hover-nav-control (basic)
((root collide-shape-moving :offset-assert 4)
(nav nav-network :offset-assert 8)
(flags uint16 :offset-assert 12)
(flags hover-nav-flags :offset-assert 12)
(params hover-nav-params :offset-assert 16)
(path-timer time-frame :offset-assert 24)
(transvv vector :inline :offset-assert 32)
@@ -1281,7 +1281,7 @@
)
(hover-nav-control-method-29 obj (the-as vector #f))
(set! (-> obj path-info curr-segment) (-> obj path-info segment-list))
(logior! (-> obj flags) 1)
(logior! (-> obj flags) (hover-nav-flags honflags-0))
0
(none)
)
@@ -1301,7 +1301,7 @@
)
(hover-nav-control-method-29 obj (the-as vector #f))
(set! (-> obj path-info curr-segment) (-> obj path-info segment-list))
(logior! (-> obj flags) 1)
(logior! (-> obj flags) (hover-nav-flags honflags-0))
0
(none)
)
@@ -1310,7 +1310,7 @@
;; WARN: Return type mismatch int vs none.
(defmethod hover-nav-control-method-20 hover-nav-control ((obj hover-nav-control))
(hover-nav-control-method-21 obj)
(logand! (-> obj flags) -2)
(logclear! (-> obj flags) (hover-nav-flags honflags-0))
0
(none)
)
@@ -1367,7 +1367,7 @@
;; INFO: Used lq/sq
;; WARN: Return type mismatch int vs none.
(defmethod hover-nav-control-method-24 hover-nav-control ((obj hover-nav-control))
(when (not (logtest? (-> obj flags) 1))
(when (not (logtest? (-> obj flags) (hover-nav-flags honflags-0)))
(let ((s5-0 (new 'stack-no-clear 'collide-query)))
(-> obj params)
(let ((v1-5 (hover-nav-control-method-17 obj))
@@ -1393,11 +1393,11 @@
(cond
((>= f0-4 0.0)
(set! (-> obj los-obstruction-distance) (* f0-4 (vector-length s4-0)))
(logior! (-> obj flags) 2)
(logior! (-> obj flags) (hover-nav-flags honflags-1))
)
(else
(set! (-> obj los-last-clear-time) (current-time))
(logand! (-> obj flags) -3)
(logclear! (-> obj flags) (hover-nav-flags honflags-1))
)
)
)
@@ -1429,7 +1429,7 @@
)
)
)
(when (not (logtest? (-> obj flags) 1))
(when (not (logtest? (-> obj flags) (hover-nav-flags honflags-0)))
(cond
((and arg0 (and (< (vector-vector-distance arg0 (-> obj root trans)) 40960.0)
(>= (-> obj los-last-clear-time) (+ (current-time) (seconds -0.2)))
@@ -1519,7 +1519,7 @@
(add-debug-sphere #t (bucket-id debug-no-zbuf1) s4-1 (meters 0.8) *color-magenta*)
)
(let ((f0-19 (+ 2048.0 (vector-length (-> obj root transv)))))
(if (logtest? (-> obj flags) 2)
(if (logtest? (-> obj flags) (hover-nav-flags honflags-1))
(set! f0-19 (fmin f0-19 (fmax 8192.0 (-> obj los-obstruction-distance))))
)
(hover-nav-path-segment-method-9 s2-1 f0-19)
@@ -1583,7 +1583,7 @@
(-> pp clock seconds-per-frame)
)
(let ((f0-12 (vector-length (the-as vector (&-> s5-0 next))))
(f1-6 (if (logtest? (-> obj flags) 2)
(f1-6 (if (logtest? (-> obj flags) (hover-nav-flags honflags-1))
(fmax 8192.0 (* 0.8 (-> obj los-obstruction-distance)))
f30-0
)
@@ -1702,7 +1702,7 @@
(v1-2 (vector-! (new 'stack-no-clear 'vector) (the-as vector s3-0) (-> s5-0 trans)))
(s4-1 (vector-! (new 'stack-no-clear 'vector) (-> obj dest-pos) v1-2))
)
(when (not (logtest? (-> obj flags) 1))
(when (not (logtest? (-> obj flags) (hover-nav-flags honflags-0)))
(let* ((s2-0 (-> obj root transv))
(f30-0 (vector-length s2-0))
(s1-0 lerp-scale)
@@ -1820,7 +1820,7 @@
(set! (-> s5-0 path-info tail-segment) #f)
(set! (-> s5-0 path-info curr-segment) #f)
(set! (-> s5-0 path-info curr-u) 0.0)
(set! (-> s5-0 flags) (the-as uint 0))
(set! (-> s5-0 flags) (hover-nav-flags))
(set! (-> s5-0 params) arg2)
(set! *hover-nav-time-offset* (+ *hover-nav-time-offset* 1))
(vector-reset! (-> s5-0 dest-pos))
+30 -25
View File
@@ -65,7 +65,7 @@
(start-pos vector :inline :offset-assert 768)
(face-pos vector :inline :offset 800)
(my-up-vector vector :inline :offset-assert 816)
(status-flags uint64 :offset-assert 832)
(status-flags spyder-flags :offset-assert 832)
(change-dir-timer time-frame :offset-assert 840)
(fire-info vector 2 :inline :offset-assert 848)
(joint-ik joint-mod-ik 4 :offset 880)
@@ -333,7 +333,7 @@
)
(('attack)
(if (type? (-> arg0 parent 0) enemy)
(logior! (-> obj status-flags) 2)
(logior! (-> obj status-flags) (spyder-flags spflags-1))
)
((method-of-type nav-enemy general-event-handler) obj arg0 arg1 arg2 arg3)
)
@@ -439,8 +439,8 @@
(cond
((>= 143360.0 f0-0)
(let ((s3-0 (new 'stack-no-clear 'vector)))
(logxor! (-> obj status-flags) 16)
(if (logtest? (-> obj status-flags) 16)
(logxor! (-> obj status-flags) (spyder-flags spflags-4))
(if (logtest? (-> obj status-flags) (spyder-flags spflags-4))
(set-vector! s3-0 (-> s2-1 z) (-> s2-1 y) (- (-> s2-1 x)) 1.0)
(set-vector! s3-0 (- (-> s2-1 z)) (-> s2-1 y) (-> s2-1 x) 1.0)
)
@@ -613,7 +613,7 @@
;; WARN: Return type mismatch int vs none.
(defbehavior spyder-travel-post spyder ()
(set! (-> self face-pos quad) (-> self move-dest quad))
(logior! (-> self status-flags) 8)
(logior! (-> self status-flags) (spyder-flags spflags-3))
(nav-enemy-travel-post)
0
(none)
@@ -623,7 +623,7 @@
;; INFO: Used lq/sq
;; WARN: Return type mismatch int vs none.
(defbehavior spyder-face-player-post spyder ()
(logior! (-> self status-flags) 8)
(logior! (-> self status-flags) (spyder-flags spflags-3))
(let ((gp-0 (handle->process (-> self focus handle)))
(f30-0 (-> self nav max-rotation-rate))
)
@@ -652,10 +652,10 @@
(defmethod spyder-method-182 spyder ((obj spyder))
(with-pp
(cond
((and (logtest? (-> obj status-flags) 4) (!= (-> obj joint scale z) 1.0))
((and (logtest? (-> obj status-flags) (spyder-flags spflags-2)) (!= (-> obj joint scale z) 1.0))
(seek! (-> obj joint scale z) 1.0 (* 0.8 (-> pp clock seconds-per-frame)))
)
((and (not (logtest? (-> obj status-flags) 4)) (!= (-> obj joint scale z) 0.0))
((and (not (logtest? (-> obj status-flags) (spyder-flags spflags-2))) (!= (-> obj joint scale z) 0.0))
(seek! (-> obj joint scale z) 0.0 (* 0.8 (-> pp clock seconds-per-frame)))
)
)
@@ -670,9 +670,9 @@
(s3-0 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)))
)
(cond
((logtest? (-> obj status-flags) 8)
((logtest? (-> obj status-flags) (spyder-flags spflags-3))
(vector-! s4-1 (-> obj face-pos) (-> obj root trans))
(logand! (-> obj status-flags) -9)
(logclear! (-> obj status-flags) (spyder-flags spflags-3))
)
(else
(set! (-> s4-1 quad) (-> s3-0 quad))
@@ -703,7 +703,7 @@
;; WARN: Return type mismatch int vs none.
(defmethod spyder-method-184 spyder ((obj spyder) (arg0 vector))
(with-pp
(when (not (logtest? (-> obj status-flags) 1))
(when (not (logtest? (-> obj status-flags) (spyder-flags spflags-0)))
(let ((s4-0 (new 'stack-no-clear 'vector)))
(set! (-> s4-0 quad) (-> *up-vector* quad))
(let ((s3-0 (new 'stack-no-clear 'quaternion)))
@@ -716,7 +716,7 @@
(forward-up-nopitch->quaternion (-> obj root quat) arg0 s3-1)
)
)
(logior! (-> obj status-flags) 1)
(logior! (-> obj status-flags) (spyder-flags spflags-0))
)
0
(none)
@@ -737,8 +737,8 @@
(let ((t9-6 (method-of-type nav-enemy track-target!)))
(t9-6 obj)
)
(logand! (-> obj status-flags) -2)
(if (logtest? (-> obj status-flags) 32)
(logclear! (-> obj status-flags) (spyder-flags spflags-0))
(if (logtest? (-> obj status-flags) (spyder-flags spflags-5))
(los-control-method-9 (-> obj los) (the-as process-focusable #f) (the-as vector #f) 2048.0)
)
(if (-> obj predator-effect?)
@@ -758,7 +758,6 @@
)
;; definition for method 3 of type ik-setup
;; INFO: this function exists in multiple non-identical object files
(defmethod inspect ik-setup ((obj ik-setup))
(when (not obj)
(set! obj obj)
@@ -948,7 +947,7 @@
)
(spyder-method-181 self)
(look-at-target! self (enemy-flag death-start))
(logand! (-> self status-flags) -3)
(logclear! (-> self status-flags) (spyder-flags spflags-1))
(when (!= (-> self dest-fade) 128.0)
(set! (-> self shock-effect-end) (+ (current-time) (seconds 1)))
(set! (-> self dest-fade) 128.0)
@@ -962,7 +961,7 @@
(t9-0)
)
)
(logand! (-> self status-flags) -33)
(logclear! (-> self status-flags) (spyder-flags spflags-5))
(look-at-target! self (enemy-flag lock-focus))
(none)
)
@@ -988,7 +987,7 @@
(spyder-method-181 self)
)
((>= 24576.0 f0-0)
(logior! (-> self status-flags) 32)
(logior! (-> self status-flags) (spyder-flags spflags-5))
)
)
)
@@ -1239,9 +1238,11 @@
;; definition for method 70 of type spyder
;; WARN: Return type mismatch object vs none.
(defmethod go-hostile spyder ((obj spyder))
(if (and (not (logtest? (-> obj status-flags) 2)) (-> obj next-state) (let ((v1-5 (-> obj next-state name)))
(or (= v1-5 'notice) (= v1-5 'knocked))
)
(if (and (not (logtest? (-> obj status-flags) (spyder-flags spflags-1)))
(-> obj next-state)
(let ((v1-5 (-> obj next-state name)))
(or (= v1-5 'notice) (= v1-5 'knocked))
)
)
(go (method-of-object obj attack))
)
@@ -1258,7 +1259,7 @@
(t9-0)
)
)
(logand! (-> self status-flags) -5)
(logclear! (-> self status-flags) (spyder-flags spflags-2))
(dotimes (gp-0 4)
(enable-set! (-> self joint-ik gp-0) #f)
)
@@ -1271,7 +1272,7 @@
)
)
(when (nonzero? (-> self hit-points))
(logior! (-> self status-flags) 4)
(logior! (-> self status-flags) (spyder-flags spflags-2))
(dotimes (gp-0 4)
(enable-set! (-> self joint-ik gp-0) #t)
)
@@ -1469,9 +1470,9 @@
(set-gravity-length (-> obj root dynam) 573440.0)
(set-vector! (-> obj root scale) 1.5 1.5 1.5 1.0)
(set! (-> obj my-up-vector quad) (-> *up-vector* quad))
(set! (-> obj status-flags) (the-as uint 4))
(set! (-> obj status-flags) (spyder-flags spflags-2))
(if (rand-vu-percent? 0.5)
(logior! (-> obj status-flags) 16)
(logior! (-> obj status-flags) (spyder-flags spflags-4))
)
(set! (-> obj start-pos quad) (-> obj root trans quad))
(set! (-> obj sound)
@@ -1510,3 +1511,7 @@
0
(none)
)
+33 -33
View File
@@ -295,24 +295,24 @@
;; definition of type gun-buoy
(deftype gun-buoy (nav-enemy)
((gun-elev-jmod joint-mod :offset-assert 604)
(start-pos vector :inline :offset-assert 608)
(aim-dir vector :inline :offset-assert 624)
(banking-quat quaternion :inline :offset 656)
(offset-from-player vector :inline :offset-assert 672)
(offset-y-angular float :offset-assert 688)
(elev-angle float :offset-assert 692)
(y-final float :offset-assert 696)
(y-offset float :offset-assert 700)
(y-bob float :offset-assert 704)
(y-speed float :offset-assert 708)
(warning-interval time-frame :offset-assert 712)
(warning-timer time-frame :offset-assert 720)
(splash-timer time-frame :offset-assert 728)
(stare-down-timer time-frame :offset-assert 736)
(warning-id sound-id :offset-assert 744)
(voice-id sound-id :offset-assert 748)
(flags uint16 :offset-assert 752)
((gun-elev-jmod joint-mod :offset-assert 604)
(start-pos vector :inline :offset-assert 608)
(aim-dir vector :inline :offset-assert 624)
(banking-quat quaternion :inline :offset 656)
(offset-from-player vector :inline :offset-assert 672)
(offset-y-angular float :offset-assert 688)
(elev-angle float :offset-assert 692)
(y-final float :offset-assert 696)
(y-offset float :offset-assert 700)
(y-bob float :offset-assert 704)
(y-speed float :offset-assert 708)
(warning-interval time-frame :offset-assert 712)
(warning-timer time-frame :offset-assert 720)
(splash-timer time-frame :offset-assert 728)
(stare-down-timer time-frame :offset-assert 736)
(warning-id sound-id :offset-assert 744)
(voice-id sound-id :offset-assert 748)
(flags gun-buoy-flags :offset-assert 752)
)
:heap-base #x280
:method-count-assert 184
@@ -388,7 +388,7 @@
(set! (-> s4-0 y) (fmax (-> s4-0 y) (-> (the-as process-focusable gp-0) water height)))
(vector+! s5-0 s4-0 v1-8)
(cond
((logtest? (-> self flags) 1)
((logtest? (-> self flags) (gun-buoy-flags gubflags-0))
(cloest-point-on-mesh (-> self nav) s5-0 s5-0 (the-as nav-poly #f))
(let ((v1-14 (-> self root trans)))
(vector-length (vector-! (new 'stack-no-clear 'vector) v1-14 s5-0))
@@ -452,15 +452,15 @@
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(case event-type
(('kill-player)
(logior! (-> self flags) 4)
(logior! (-> self flags) (gun-buoy-flags gubflags-2))
(go-virtual ambush)
)
)
)
:enter (behavior ()
(set! (-> self root trans quad) (-> self start-pos quad))
(logand! (-> self flags) -3)
(logand! (-> self flags) -5)
(logclear! (-> self flags) (gun-buoy-flags gubflags-1))
(logclear! (-> self flags) (gun-buoy-flags gubflags-2))
(none)
)
:trans (behavior ()
@@ -469,7 +469,7 @@
(-> *setting-control* user-current gun-buoy)
)
(if (logtest? (-> self fact enemy-options) (enemy-option user0))
(logior! (-> self flags) 4)
(logior! (-> self flags) (gun-buoy-flags gubflags-2))
)
(go-ambush self)
)
@@ -495,7 +495,7 @@
)
0
(nav-enemy-method-166 self)
(logior! (-> self flags) 1)
(logior! (-> self flags) (gun-buoy-flags gubflags-0))
(logior! (-> self water flags) (water-flags touch-water))
(let* ((gp-0 *target*)
(s3-0 (if (type? gp-0 process-focusable)
@@ -556,7 +556,7 @@
:trans (behavior ()
(when (< (fabs (-> self y-offset)) 409.6)
(set! (-> self y-offset) 0.0)
(when (not (logtest? (-> self flags) 4))
(when (not (logtest? (-> self flags) (gun-buoy-flags gubflags-2)))
(set! *gun-buoy-warning-index* (rand-vu-int-range 0 (+ (-> *gun-buoy-warning-speech* length) -1)))
(let ((t0-0 (-> *gun-buoy-warning-speech* *gun-buoy-warning-index*)))
(set! (-> self voice-id) (add-process *gui-control* self (gui-channel guard) (gui-action play) t0-0 -99.0 0))
@@ -601,7 +601,7 @@
(defstate exit-ambush (gun-buoy)
:virtual #t
:enter (behavior ()
(logand! (-> self flags) -2)
(logclear! (-> self flags) (gun-buoy-flags gubflags-0))
(none)
)
:exit (behavior ()
@@ -681,7 +681,7 @@
)
)
(set! (-> self gun-elev-jmod mode) (the-as joint-mod-mode #t))
(if (logtest? (-> self flags) 4)
(if (logtest? (-> self flags) (gun-buoy-flags gubflags-2))
(go-virtual attack)
)
(case (-> self focus aware)
@@ -749,14 +749,14 @@
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(case event-type
(('kill-player)
(logior! (-> self flags) 4)
(logior! (-> self flags) (gun-buoy-flags gubflags-2))
(go-virtual attack)
)
)
)
:enter (behavior ()
(cond
((logtest? (-> self flags) 2)
((logtest? (-> self flags) (gun-buoy-flags gubflags-1))
(set! (-> self warning-interval) (seconds 0.1))
)
(else
@@ -796,7 +796,7 @@
(when (>= (- (current-time) (-> self warning-timer)) (-> self warning-interval))
(cond
((>= (the-as int gp-0) 3)
(logior! (-> self flags) 2)
(logior! (-> self flags) (gun-buoy-flags gubflags-1))
(go-hostile self)
)
(else
@@ -886,7 +886,7 @@
:virtual #t
:trans (behavior ()
(let ((v1-0 (-> self focus aware)))
(when (not (logtest? (-> self flags) 4))
(when (not (logtest? (-> self flags) (gun-buoy-flags gubflags-2)))
(if (>= 2 (the-as int v1-0))
(go-virtual hostile)
)
@@ -1069,7 +1069,7 @@
;; definition for method 70 of type gun-buoy
;; WARN: Return type mismatch object vs none.
(defmethod go-hostile gun-buoy ((obj gun-buoy))
(if (logtest? (-> obj flags) 2)
(if (logtest? (-> obj flags) (gun-buoy-flags gubflags-1))
(go (method-of-object obj hostile))
(go (method-of-object obj warning))
)
@@ -1343,7 +1343,7 @@
(logclear! (-> obj mask) (process-mask actor-pause))
(process-entity-status! obj (entity-perm-status no-kill) #t)
(set! (-> obj start-pos quad) (-> obj root trans quad))
(set! (-> obj flags) (the-as uint 0))
(set! (-> obj flags) (gun-buoy-flags))
(set! (-> obj gun-elev-jmod) (the-as joint-mod (new 'process 'joint-mod-rotate-local obj 6 #f)))
(quaternion-copy! (the-as quaternion (-> obj gun-elev-jmod target)) *unity-quaternion*)
(set! (-> obj water) (new 'process 'water-control obj 3 8192.0 8192.0 2048.0))
+16 -16
View File
@@ -16,7 +16,7 @@
(bob-level-seek float :offset-assert 264)
(bank-angle float :offset-assert 268)
(peck-timer uint64 :offset-assert 272)
(flags uint16 :offset-assert 280)
(flags wren-flags :offset-assert 280)
)
:heap-base #xa0
:method-count-assert 28
@@ -157,8 +157,8 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]"
:trans (behavior ()
(when (< (vector-vector-xz-distance (-> self root trans) (-> self move-dest)) 2048.0)
(cond
((logtest? (-> self flags) 4)
(logand! (-> self flags) -5)
((logtest? (-> self flags) (wren-flags wrflags-2))
(logclear! (-> self flags) (wren-flags wrflags-2))
(set! (-> self fly-index) (the-as uint 0))
(go-virtual fly)
)
@@ -216,7 +216,7 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]"
:enter (behavior ()
(set! (-> self state-time) (current-time))
(set! (-> self peck-timer) (the-as uint (the int (* 300.0 (rand-vu-float-range 1.4 4.3)))))
(logand! (-> self flags) -7)
(logclear! (-> self flags) (wren-flags wrflags-1 wrflags-2))
(none)
)
:trans (behavior ()
@@ -227,15 +227,15 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]"
)
)
)
(when (logtest? (-> self flags) 2)
(logand! (-> self flags) -3)
(when (logtest? (-> self flags) (wren-flags wrflags-1))
(logclear! (-> self flags) (wren-flags wrflags-1))
(when (spooked? self)
(get-point-in-path! (-> self fly-curve 0) (-> self move-dest) 0.0 'interp)
(set-yaw-angle-clear-roll-pitch!
(-> self root)
(vector-y-angle (vector-! (new 'stack-no-clear 'vector) (-> self move-dest) (-> self root trans)))
)
(logior! (-> self flags) 4)
(logior! (-> self flags) (wren-flags wrflags-2))
(go-virtual hunt)
)
)
@@ -244,11 +244,11 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]"
:code (behavior ()
(local-vars (v1-34 symbol))
(until #f
(logand! (-> self flags) -2)
(logclear! (-> self flags) (wren-flags wrflags-0))
(let ((f0-0 (rand-vu-float-range 0.0 (get-num-segments (-> self path)))))
(get-point-in-path! (-> self path) (-> self move-dest) f0-0 'interp)
)
(logior! (-> self flags) 2)
(logior! (-> self flags) (wren-flags wrflags-1))
(ja-no-eval :group! wren-peck-ja
:num! (seek! (the float (+ (-> (the-as art-joint-anim wren-peck-ja) frames num-frames) -1)))
:frame-num 0.0
@@ -258,7 +258,7 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]"
(ja :num! (seek!))
)
#t
(let ((v1-33 (the-as symbol (logand (-> self flags) 2))))
(let ((v1-33 (the-as symbol (logand (-> self flags) (wren-flags wrflags-1)))))
(set! v1-33 v1-33)
(cmove-#f-zero v1-34 v1-33 v1-33)
)
@@ -272,7 +272,7 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]"
(ja :num! (loop! f30-1))
)
)
(logior! (-> self flags) 1)
(logior! (-> self flags) (wren-flags wrflags-0))
(let ((gp-2 (current-time))
(s5-2 (the int (* 300.0 (rand-vu-float-range 0.2 1.5))))
(f30-3 1.0)
@@ -288,7 +288,7 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]"
(none)
)
:post (behavior ()
(if (logtest? (-> self flags) 1)
(if (logtest? (-> self flags) (wren-flags wrflags-0))
(seek-to-point-toward-point! (-> self root) (-> self move-dest) 262144.0 (seconds 0.02))
)
(ja-post)
@@ -430,7 +430,7 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]"
(none)
)
:code (behavior ()
(logand! (-> self flags) -2)
(logclear! (-> self flags) (wren-flags wrflags-0))
(ja-channel-push! 1 (seconds 0.2))
(let ((gp-0 (current-time))
(s5-0 (the int (* 300.0 (rand-vu-float-range 4.2 16.8))))
@@ -442,7 +442,7 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]"
(ja :num! (loop! f30-1))
)
)
(logior! (-> self flags) 1)
(logior! (-> self flags) (wren-flags wrflags-0))
(let ((gp-1 (current-time))
(s5-1 600)
(f30-2 1.0)
@@ -456,7 +456,7 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]"
(none)
)
:post (behavior ()
(if (logtest? (-> self flags) 1)
(if (logtest? (-> self flags) (wren-flags wrflags-0))
(seek-to-point-toward-point! (-> self root) (-> self move-dest) 262144.0 (seconds 0.02))
)
(debug-draw-path self)
@@ -511,7 +511,7 @@ This commonly includes things such as:
)
(set! (-> obj fly-index) (the-as uint 0))
(set! (-> obj path-u) 0.0)
(set! (-> obj flags) (the-as uint 0))
(set! (-> obj flags) (wren-flags))
(set! (-> obj bob-level) 0.0)
(set! (-> obj bank-angle) 0.0)
(set! (-> obj path) (new 'process 'path-control obj 'idle 0.0 arg0 #f))
@@ -3,32 +3,32 @@
;; definition of type fort-robotank-turret
(deftype fort-robotank-turret (process-focusable)
((los los-control :inline :offset-assert 208)
(reticle handle :offset-assert 360)
(screen handle :offset-assert 368)
(tank-quat quaternion :inline :offset-assert 384)
(tank-quat-vibe-only quaternion :inline :offset-assert 400)
(rotate-quat quaternion :inline :offset-assert 416)
(rotate-rate float :offset-assert 432)
(rotate-mult float :offset-assert 436)
(shot-range float :offset-assert 440)
(fov-mult float :offset-assert 444)
(offset vector :inline :offset-assert 448)
(sight-pos vector :inline :offset-assert 464)
(firing-sight-pos vector :inline :offset-assert 480)
(aim-pos vector 3 :inline :offset-assert 496)
(aim-pos-2 vector :inline :offset 512)
(aim-pos-1 vector :inline :offset 528)
(gun-timer time-frame :offset-assert 544)
(gun-elev-jmod joint-mod-set-local :offset-assert 552)
(gun-elev float :offset-assert 556)
(gun-elev-cam float :offset-assert 560)
(gun-joint-l int32 2 :offset-assert 564)
(gun-joint-r int32 2 :offset-assert 572)
(gun-spread float :offset-assert 580)
(gun-index int32 :offset-assert 584)
(flags uint16 :offset-assert 588)
(turn-sound-id sound-id :offset-assert 592)
((los los-control :inline :offset-assert 208)
(reticle handle :offset-assert 360)
(screen handle :offset-assert 368)
(tank-quat quaternion :inline :offset-assert 384)
(tank-quat-vibe-only quaternion :inline :offset-assert 400)
(rotate-quat quaternion :inline :offset-assert 416)
(rotate-rate float :offset-assert 432)
(rotate-mult float :offset-assert 436)
(shot-range float :offset-assert 440)
(fov-mult float :offset-assert 444)
(offset vector :inline :offset-assert 448)
(sight-pos vector :inline :offset-assert 464)
(firing-sight-pos vector :inline :offset-assert 480)
(aim-pos vector 3 :inline :offset-assert 496)
(aim-pos-2 vector :inline :offset 512)
(aim-pos-1 vector :inline :offset 528)
(gun-timer time-frame :offset-assert 544)
(gun-elev-jmod joint-mod-set-local :offset-assert 552)
(gun-elev float :offset-assert 556)
(gun-elev-cam float :offset-assert 560)
(gun-joint-l int32 2 :offset-assert 564)
(gun-joint-r int32 2 :offset-assert 572)
(gun-spread float :offset-assert 580)
(gun-index int32 :offset-assert 584)
(flags robotank-turret-flags :offset-assert 588)
(turn-sound-id sound-id :offset-assert 592)
)
:heap-base #x1e0
:method-count-assert 35
@@ -1139,9 +1139,9 @@
)
)
(cond
((and (logtest? (-> self flags) 1) gp-0)
((and (logtest? (-> self flags) (robotank-turret-flags rotflags-0)) gp-0)
(send-event (handle->process (-> self reticle)) 'on)
(if (logtest? (-> self flags) 512)
(if (logtest? (-> self flags) (robotank-turret-flags rotflags-9))
(los-control-method-9 (-> self los) gp-0 (the-as vector #f) 1638.4)
)
(if *target*
@@ -1168,11 +1168,11 @@
(let ((f30-0 (vector-length gp-2)))
(vector-normalize! gp-2 1.0)
(vector-normalize! s3-1 1.0)
(if (logtest? (-> self flags) 8)
(if (logtest? (-> self flags) (robotank-turret-flags rotflags-3))
(set! (-> s5-3 quad) (-> s3-1 quad))
(set! (-> s5-3 quad) (-> gp-2 quad))
)
(when (logtest? (-> self flags) 128)
(when (logtest? (-> self flags) (robotank-turret-flags rotflags-7))
(let ((f0-6 (lerp-scale 1.0 0.2 f30-0 8192.0 327680.0)))
(seek! (-> self fov-mult) f0-6 (* 2.0 (-> self clock seconds-per-frame)))
)
@@ -1219,7 +1219,7 @@
)
)
)
(when (logtest? (-> self flags) 1024)
(when (logtest? (-> self flags) (robotank-turret-flags rotflags-10))
(cond
((< -1456.3556 (-> self gun-elev))
(send-event (handle->process (-> self reticle)) 'spotlight-on)
@@ -1237,7 +1237,9 @@
)
)
)
(when (and (logtest? (-> self flags) 1) (not (logtest? (-> self flags) 8)))
(when (and (logtest? (-> self flags) (robotank-turret-flags rotflags-0))
(not (logtest? (-> self flags) (robotank-turret-flags rotflags-3)))
)
(let* ((a1-32 (-> self node-list data (-> self gun-joint-l 0)))
(s4-1 (-> self node-list data (-> self gun-joint-r 0)))
(gp-4
@@ -1256,17 +1258,17 @@
)
)
(cond
((logtest? (-> self flags) 64)
((logtest? (-> self flags) (robotank-turret-flags rotflags-6))
(sound-play "robotank-turret" :id (-> self turn-sound-id) :position (-> self root trans))
(when (< (fabs (-> self rotate-rate)) 728.1778)
(logand! (-> self flags) -65)
(logclear! (-> self flags) (robotank-turret-flags rotflags-6))
(sound-stop (-> self turn-sound-id))
(sound-play "robo-turret-end")
)
)
(else
(if (< 2184.5334 (fabs (-> self rotate-rate)))
(logior! (-> self flags) 64)
(logior! (-> self flags) (robotank-turret-flags rotflags-6))
)
)
)
@@ -1287,19 +1289,19 @@
(case arg2
(('trigger)
(when (and (-> self next-state) (= (-> self next-state name) 'idle))
(logior! (-> self flags) 1)
(logior! (-> self flags) (robotank-turret-flags rotflags-0))
(go-virtual ready)
)
)
(('fire-suppress)
(cond
((-> arg3 param 0)
(set! v0-0 (logior (-> self flags) 16))
(set! (-> self flags) (the-as uint v0-0))
(set! v0-0 (logior (-> self flags) (robotank-turret-flags rotflags-4)))
(set! (-> self flags) (the-as robotank-turret-flags v0-0))
)
(else
(set! v0-0 (logand -17 (-> self flags)))
(set! (-> self flags) (the-as uint v0-0))
(set! v0-0 (logclear (-> self flags) (robotank-turret-flags rotflags-4)))
(set! (-> self flags) (the-as robotank-turret-flags v0-0))
)
)
v0-0
@@ -1310,12 +1312,12 @@
(('use-los)
(cond
((-> arg3 param 0)
(set! v0-0 (logior (-> self flags) 512))
(set! (-> self flags) (the-as uint v0-0))
(set! v0-0 (logior (-> self flags) (robotank-turret-flags rotflags-9)))
(set! (-> self flags) (the-as robotank-turret-flags v0-0))
)
(else
(set! v0-0 (logand -513 (-> self flags)))
(set! (-> self flags) (the-as uint v0-0))
(set! v0-0 (logclear (-> self flags) (robotank-turret-flags rotflags-9)))
(set! (-> self flags) (the-as robotank-turret-flags v0-0))
)
)
v0-0
@@ -1323,12 +1325,12 @@
(('limit-reticle-elev)
(cond
((-> arg3 param 0)
(set! v0-0 (logior (-> self flags) 1024))
(set! (-> self flags) (the-as uint v0-0))
(set! v0-0 (logior (-> self flags) (robotank-turret-flags rotflags-10)))
(set! (-> self flags) (the-as robotank-turret-flags v0-0))
)
(else
(set! v0-0 (logand -1025 (-> self flags)))
(set! (-> self flags) (the-as uint v0-0))
(set! v0-0 (logclear (-> self flags) (robotank-turret-flags rotflags-10)))
(set! (-> self flags) (the-as robotank-turret-flags v0-0))
)
)
v0-0
@@ -1338,7 +1340,7 @@
(set! (-> v1-22 prim-core collide-as) (collide-spec obstacle pusher))
(set! (-> v1-22 prim-core collide-with) (collide-spec jak player-list))
)
(logior! (-> self flags) 128)
(logior! (-> self flags) (robotank-turret-flags rotflags-7))
(send-event (handle->process (-> self screen)) 'trigger)
)
(('pov-cam-off)
@@ -1347,7 +1349,7 @@
(set! (-> v1-33 prim-core collide-with) (collide-spec))
)
0
(logand! (-> self flags) -129)
(logclear! (-> self flags) (robotank-turret-flags rotflags-7))
(remove-setting! 'fov)
(send-event (handle->process (-> self screen)) 'untrigger)
)
@@ -1408,14 +1410,14 @@
(none)
)
:trans (behavior ()
(if (logtest? (-> self flags) 16)
(if (logtest? (-> self flags) (robotank-turret-flags rotflags-4))
(set! (-> self gun-timer) (current-time))
)
(let ((gp-0 *target*))
(if (and (if (type? gp-0 process-focusable)
gp-0
)
(or (not (logtest? (-> self flags) 512)) (check-los? (-> self los) 0))
(or (not (logtest? (-> self flags) (robotank-turret-flags rotflags-9))) (check-los? (-> self los) 0))
(>= (- (current-time) (-> self gun-timer)) (seconds 1))
)
(go-virtual fire)
@@ -1445,7 +1447,7 @@
:virtual #t
:event robotank-turret-handler
:enter (behavior ()
(logior! (-> self flags) 256)
(logior! (-> self flags) (robotank-turret-flags rotflags-8))
(let* ((gp-0 *target*)
(a0-1 (if (type? gp-0 process-focusable)
gp-0
@@ -1466,10 +1468,13 @@
gp-0
)
)
(and (logtest? (-> self flags) 512) (not (logtest? (-> self flags) 8)) (skip-check-los? (-> self los) 0))
(logtest? (-> self flags) 16)
(and (logtest? (-> self flags) (robotank-turret-flags rotflags-9))
(not (logtest? (-> self flags) (robotank-turret-flags rotflags-3)))
(skip-check-los? (-> self los) 0)
)
(logtest? (-> self flags) (robotank-turret-flags rotflags-4))
)
(logand! (-> self flags) -257)
(logclear! (-> self flags) (robotank-turret-flags rotflags-8))
(go-virtual ready)
)
)
@@ -1480,7 +1485,7 @@
(until (fort-robotank-turret-method-34 self (-> self aim-pos-1) 2730.6667)
(suspend)
)
(logior! (-> self flags) 8)
(logior! (-> self flags) (robotank-turret-flags rotflags-3))
(set! (-> self firing-sight-pos quad) (-> self sight-pos quad))
(send-event (handle->process (-> self reticle)) 'lock)
(let ((gp-0 (current-time)))
@@ -1529,7 +1534,7 @@
)
)
(label cfg-26)
(logand! (-> self flags) -9)
(logclear! (-> self flags) (robotank-turret-flags rotflags-3))
(send-event (handle->process (-> self reticle)) 'unlock)
(until (fort-robotank-turret-method-34 self (-> self aim-pos-1) 2730.6667)
(suspend)
@@ -1575,7 +1580,7 @@
;; definition for method 10 of type fort-robotank-turret
(defmethod deactivate fort-robotank-turret ((obj fort-robotank-turret))
(logand! (-> obj flags) -65)
(logclear! (-> obj flags) (robotank-turret-flags rotflags-6))
(sound-stop (-> obj turn-sound-id))
(let ((a0-4 (handle->process (-> obj screen))))
(if a0-4
@@ -1674,7 +1679,7 @@
(set! (-> self aim-pos-2 quad) (-> self root trans quad))
(set! (-> self aim-pos-1 quad) (-> self root trans quad))
(set! (-> self gun-timer) (current-time))
(set! (-> self flags) (the-as uint 0))
(set! (-> self flags) (robotank-turret-flags))
(set! (-> self fov-mult) 1.0)
(set! (-> self shot-range) 204800.0)
(set! (-> self gun-joint-l 0) 10)
+16 -16
View File
@@ -230,7 +230,7 @@
(tread fort-robotank-tread-info 2 :inline :offset-assert 224)
(path-info fort-robotank-path-info-array :offset-assert 512)
(segment-table (inline-array fort-robotank-segment) :offset-assert 516)
(flags uint16 :offset-assert 520)
(flags robotank-flags :offset-assert 520)
(pov-cam-offset vector 2 :inline :offset-assert 528)
(turret handle :offset-assert 560)
(no-collision-timer time-frame :offset-assert 568)
@@ -484,7 +484,7 @@
)
(let ((v1-65 (-> self path-info data (-> self path-index))))
(cond
((and (logtest? (-> self flags) 4) (!= (-> v1-65 u) (-> v1-65 prev-u)))
((and (logtest? (-> self flags) (robotank-flags roflags-2)) (!= (-> v1-65 u) (-> v1-65 prev-u)))
(seek! (-> self engine-vibe-rate) 3.0 (-> self clock seconds-per-frame))
(seek! (-> self engine-vibe-amp) 1.0 (-> self clock seconds-per-frame))
)
@@ -543,7 +543,7 @@
(dotimes (gp-4 (-> self path-count))
(debug-draw (-> self path-info data gp-4 path))
)
(when (logtest? (-> self flags) 128)
(when (logtest? (-> self flags) (robotank-flags roflags-7))
(let ((gp-5 (quaternion-inverse! (new 'stack-no-clear 'quaternion) (-> self root quat)))
(a1-28 (new 'stack-no-clear 'event-message-block))
)
@@ -606,7 +606,7 @@
(set! (-> v1-14 message) 'trigger)
)
)
(logior! (-> self flags) 32)
(logior! (-> self flags) (robotank-flags roflags-5))
(let ((ret (the-as object (-> arg3 param 0))))
(set! (-> self continue-index) (the-as int ret))
ret
@@ -735,7 +735,7 @@
)
(set-setting! 'pov-offset 'asdf (-> obj pov-cam-offset) 0)
(send-event (handle->process (-> obj turret)) 'pov-cam-on)
(logior! (-> obj flags) 128)
(logior! (-> obj flags) (robotank-flags roflags-7))
(let ((v1-41 (-> (the-as collide-shape-prim-group (-> obj root root-prim)) child 2)))
(set! (-> v1-41 prim-core collide-as) (collide-spec enemy pusher))
(set! (-> v1-41 prim-core collide-with) (collide-spec jak bot player-list))
@@ -748,7 +748,7 @@
(remove-setting! 'target-height)
(remove-setting! 'pov-offset)
(send-event (handle->process (-> obj turret)) 'pov-cam-off)
(logand! (-> obj flags) -129)
(logclear! (-> obj flags) (robotank-flags roflags-7))
(let ((v1-57 (-> (the-as collide-shape-prim-group (-> obj root root-prim)) child 2)))
(set! (-> v1-57 prim-core collide-as) (collide-spec))
(set! (-> v1-57 prim-core collide-with) (collide-spec))
@@ -817,10 +817,10 @@
(set! (-> v1-8 message) 'trigger)
)
)
(logior! (-> self flags) 32)
(logior! (-> self flags) (robotank-flags roflags-5))
)
(when (logtest? (-> self flags) 32)
(logand! (-> self flags) -33)
(when (logtest? (-> self flags) (robotank-flags roflags-5))
(logclear! (-> self flags) (robotank-flags roflags-5))
(set-setting! 'music 'danger11 0.0 0)
(set-setting! 'music-volume 'rel 0.9 0)
(go-virtual moving)
@@ -881,7 +881,7 @@
(none)
)
:exit (behavior ()
(logand! (-> self flags) -5)
(logclear! (-> self flags) (robotank-flags roflags-2))
(none)
)
:trans (behavior ()
@@ -937,18 +937,18 @@
(none)
)
:code (behavior ()
(logand! (-> self flags) -5)
(logclear! (-> self flags) (robotank-flags roflags-2))
(let ((gp-0 (current-time)))
(until (>= (- (current-time) gp-0) (seconds 0.1))
(suspend)
)
)
(logior! (-> self flags) 4)
(logior! (-> self flags) (robotank-flags roflags-2))
(sleep-code)
(none)
)
:post (behavior ()
(when (logtest? (-> self flags) 4)
(when (logtest? (-> self flags) (robotank-flags roflags-2))
(let* ((gp-0 *target*)
(s3-0 (if (type? gp-0 process-focusable)
gp-0
@@ -1054,8 +1054,8 @@
(none)
)
:trans (behavior ()
(when (logtest? (-> self flags) 32)
(logand! (-> self flags) -33)
(when (logtest? (-> self flags) (robotank-flags roflags-5))
(logclear! (-> self flags) (robotank-flags roflags-5))
(go-virtual moving)
)
(none)
@@ -1214,7 +1214,7 @@ This commonly includes things such as:
(set! (-> obj fact)
(new 'process 'fact-info obj (pickup-type eco-pill-random) (-> *FACT-bank* default-eco-pill-green-inc))
)
(set! (-> obj flags) (the-as uint 0))
(set! (-> obj flags) (robotank-flags))
(set! (-> obj no-collision-timer) 0)
(set! (-> obj engine-vibe-rate) 1.0)
(set! (-> obj buzz-timer) 0)
+16 -16
View File
@@ -2779,11 +2779,11 @@ This commonly includes things such as:
;; definition of type mtn-plat-return
(deftype mtn-plat-return (base-plat)
((ride-timer time-frame :offset-assert 272)
(flags uint16 :offset-assert 280)
(path-pos float :offset-assert 284)
(dest-pos float :offset-assert 288)
(path-speed float :offset-assert 292)
((ride-timer time-frame :offset-assert 272)
(flags mtn-plat-flags :offset-assert 280)
(path-pos float :offset-assert 284)
(dest-pos float :offset-assert 288)
(path-speed float :offset-assert 292)
)
:heap-base #xb0
:method-count-assert 38
@@ -2827,8 +2827,8 @@ This commonly includes things such as:
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(case event-type
(('ridden)
(let ((v0-0 (the-as object (logior (-> self flags) 1))))
(set! (-> self flags) (the-as uint v0-0))
(let ((v0-0 (the-as object (logior (-> self flags) (mtn-plat-flags mtpflags-0)))))
(set! (-> self flags) (the-as mtn-plat-flags v0-0))
v0-0
)
)
@@ -2843,14 +2843,14 @@ This commonly includes things such as:
(none)
)
:trans (behavior ()
(logand! (-> self flags) -2)
(logclear! (-> self flags) (mtn-plat-flags mtpflags-0))
(plat-trans)
(if (not (logtest? (-> self flags) 1))
(if (not (logtest? (-> self flags) (mtn-plat-flags mtpflags-0)))
(set! (-> self ride-timer) (current-time))
)
(let ((v1-10 (and (>= (- (current-time) (-> self ride-timer)) (seconds 0.5))
(logtest? (-> self flags) 1)
(if (logtest? (-> self flags) 2)
(logtest? (-> self flags) (mtn-plat-flags mtpflags-0))
(if (logtest? (-> self flags) (mtn-plat-flags mtpflags-1))
(and *target* (process-grab? *target* #f))
#t
)
@@ -2877,8 +2877,8 @@ This commonly includes things such as:
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(case event-type
(('ridden)
(let ((v0-0 (the-as object (logior (-> self flags) 1))))
(set! (-> self flags) (the-as uint v0-0))
(let ((v0-0 (the-as object (logior (-> self flags) (mtn-plat-flags mtpflags-0)))))
(set! (-> self flags) (the-as mtn-plat-flags v0-0))
v0-0
)
)
@@ -2992,7 +2992,7 @@ This commonly includes things such as:
(the-as pair 0)
)
(stop-bouncing! obj)
(set! (-> obj flags) (the-as uint 0))
(set! (-> obj flags) (mtn-plat-flags))
(set! (-> obj path-pos) 0.0)
(set! (-> obj path) (new 'process 'curve-control obj 'path -1000000000.0))
(if (logtest? (-> obj path flags) (path-control-flag not-found))
@@ -3658,7 +3658,7 @@ This commonly includes things such as:
(t9-0)
)
)
(if (logtest? (-> self flags) 1)
(if (logtest? (-> self flags) (mtn-plat-flags mtpflags-0))
(process-release? *target*)
)
(none)
@@ -3689,7 +3689,7 @@ This commonly includes things such as:
(defmethod init-plat! trans-plat ((obj trans-plat))
"Does any necessary initial platform setup.
For example for an elevator pre-compute the distance between the first and last points (both ways) and clear the sound."
(logior! (-> obj flags) 2)
(logior! (-> obj flags) (mtn-plat-flags mtpflags-1))
(let* ((s5-0 *target*)
(a0-2 (if (type? s5-0 process-focusable)
s5-0
+1 -1
View File
@@ -20,7 +20,7 @@
(suspend)
)
)
(send-event *target* 'change-mode 'darkjak #f 64)
(send-event *target* 'change-mode 'darkjak #f (darkjak-stage no-anim))
(let ((gp-1 (current-time)))
(until (>= (- (current-time) gp-1) (seconds 0.1))
(suspend)
+26 -26
View File
@@ -3,25 +3,25 @@
;; definition of type rapid-gunner
(deftype rapid-gunner (nav-enemy)
((los los-control :inline :offset-assert 608)
(joint joint-mod :offset-assert 756)
(joint-blend float :offset-assert 760)
(joint-enable symbol :offset-assert 764)
(shot-timer uint64 :offset-assert 768)
(predict-timer uint64 :offset-assert 776)
(target-prev-pos vector :inline :offset-assert 784)
(target-next-pos vector :inline :offset-assert 800)
(focus-dir vector :inline :offset-assert 816)
(y-diff float :offset-assert 832)
(shots-fired uint32 :offset-assert 836)
(spin-up-angle float :offset-assert 840)
(spin-up-timer time-frame :offset-assert 848)
(shoot-anim-index int32 :offset-assert 856)
(status-flags uint64 :offset-assert 864)
(start-pos vector :inline :offset-assert 880)
(dest-pos vector :inline :offset-assert 896)
(hop-dir vector :inline :offset-assert 912)
(roam-radius float :offset-assert 928)
((los los-control :inline :offset-assert 608)
(joint joint-mod :offset-assert 756)
(joint-blend float :offset-assert 760)
(joint-enable symbol :offset-assert 764)
(shot-timer uint64 :offset-assert 768)
(predict-timer uint64 :offset-assert 776)
(target-prev-pos vector :inline :offset-assert 784)
(target-next-pos vector :inline :offset-assert 800)
(focus-dir vector :inline :offset-assert 816)
(y-diff float :offset-assert 832)
(shots-fired uint32 :offset-assert 836)
(spin-up-angle float :offset-assert 840)
(spin-up-timer time-frame :offset-assert 848)
(shoot-anim-index int32 :offset-assert 856)
(status-flags rapid-gunner-flags :offset-assert 864)
(start-pos vector :inline :offset-assert 880)
(dest-pos vector :inline :offset-assert 896)
(hop-dir vector :inline :offset-assert 912)
(roam-radius float :offset-assert 928)
)
:heap-base #x330
:method-count-assert 187
@@ -754,9 +754,9 @@
(set! (-> v1-15 attack-id) a0-6)
(set! (-> self attack-id) a0-6)
)
(when (logtest? (-> self status-flags) 2)
(when (logtest? (-> self status-flags) (rapid-gunner-flags ragflags-1))
(set! (-> self spin-up-timer) (+ (current-time) (seconds 2)))
(logand! (-> self status-flags) -3)
(logclear! (-> self status-flags) (rapid-gunner-flags ragflags-1))
)
(if (zero? (rand-vu-int-range 0 3))
(set! (-> self shoot-anim-index) 15)
@@ -1220,12 +1220,12 @@
(cond
((handle->process (-> self focus handle))
(if (check-los? (-> self los) 0)
(logand! (-> self status-flags) -3)
(logior! (-> self status-flags) 2)
(logclear! (-> self status-flags) (rapid-gunner-flags ragflags-1))
(logior! (-> self status-flags) (rapid-gunner-flags ragflags-1))
)
)
(else
(logior! (-> self status-flags) 2)
(logior! (-> self status-flags) (rapid-gunner-flags ragflags-1))
)
)
(let ((v1-18 self))
@@ -1590,8 +1590,8 @@
)
(set! (-> obj shots-fired) (the-as uint 0))
(set! (-> obj spin-up-timer) 0)
(logand! (-> obj status-flags) -2)
(logior! (-> obj status-flags) 2)
(logclear! (-> obj status-flags) (rapid-gunner-flags ragflags-0))
(logior! (-> obj status-flags) (rapid-gunner-flags ragflags-1))
(let ((f30-0 3640.889))
(set! sv-48 0)
(let ((v1-22 (res-lump-data (-> obj entity) 'spinup-angle pointer :tag-ptr (the-as (pointer res-tag) (& sv-48)))))
+24 -22
View File
@@ -110,7 +110,7 @@
(('notify)
(case (-> arg3 param 0)
(('jinx-bomb)
(logior! (-> obj bot-task-bits) 1)
(logior! (-> obj bot-task-bits) (bot-task-bits botbits-0))
#t
)
(else
@@ -478,17 +478,17 @@
)
)
(cond
((not (logtest? (-> arg1 waypoint-bits) 1))
((not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(when (and s3-0 s4-0 s5-0)
(logior! (-> arg1 waypoint-bits) 1)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(set! (-> arg1 slave-handle 0) (process->handle s3-0))
(set! (-> arg1 slave-handle 1) (process->handle s4-0))
(set! (-> arg1 slave-handle 2) (process->handle s5-0))
)
#f
)
((not (logtest? (-> arg1 waypoint-bits) 2))
(logior! (-> arg1 waypoint-bits) 2)
((not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-1)))
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-1))
(hal-method-226 arg1)
(send-event s3-0 'request 'waypoint 2)
(send-event s4-0 'request 'waypoint 2)
@@ -1662,7 +1662,7 @@
(the-as
(function halt-wait-spot hal symbol)
(lambda ((arg0 object) (arg1 hal-sewer)) (cond
((logtest? (-> arg1 bot-task-bits) 1)
((logtest? (-> arg1 bot-task-bits) (bot-task-bits botbits-0))
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
(go-to-waypoint! arg1 24 #f)
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
@@ -1785,7 +1785,7 @@
)
(play-speech arg1 28)
)
(when (logtest? (-> arg1 bot-task-bits) 2)
(when (logtest? (-> arg1 bot-task-bits) (bot-task-bits botbits-1))
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
(go-to-waypoint! arg1 25 #f)
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
@@ -1878,7 +1878,7 @@
(cond
((>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1.5))
(cond
((logtest? (-> arg1 waypoint-bits) 1)
((logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(when (and (not (speech-playing? arg1 29)) (not (speech-playing? arg1 30)))
(if (zero? (get-rand-int arg1 2))
(play-speech arg1 29)
@@ -1898,7 +1898,7 @@
(else
(let ((a0-11 *target*))
(if (and a0-11 (focus-test? a0-11 hit))
(logior! (-> arg1 waypoint-bits) 1)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
)
)
)
@@ -2779,9 +2779,9 @@
(play-speech arg1 52)
)
(cond
((not (logtest? (-> arg1 waypoint-bits) 1))
((not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.5))
(logior! (-> arg1 waypoint-bits) 1)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(let ((a1-5 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-5 from) (process->ppointer pp))
(set! (-> a1-5 num-params) 0)
@@ -2804,9 +2804,9 @@
)
#f
)
((not (logtest? (-> arg1 waypoint-bits) 2))
((not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-1)))
(when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 4))
(logior! (-> arg1 waypoint-bits) 2)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-1))
(let ((a1-10 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-10 from) (process->ppointer pp))
(set! (-> a1-10 num-params) 0)
@@ -2825,9 +2825,9 @@
)
#f
)
((not (logtest? (-> arg1 waypoint-bits) 4))
((not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-2)))
(when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 5))
(logior! (-> arg1 waypoint-bits) 4)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-2))
(let ((a1-11 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-11 from) (process->ppointer pp))
(set! (-> a1-11 num-params) 0)
@@ -2988,7 +2988,7 @@
(with-pp
(logclear! (-> arg0 bot-flags) (bot-flags bf24))
(reset-warn-time! arg0)
(if (and (not (logtest? (-> arg0 bot-task-bits) 16)) (not (hal-sewer-method-231 arg0 24)))
(if (and (not (logtest? (-> arg0 bot-task-bits) (bot-task-bits botbits-4))) (not (hal-sewer-method-231 arg0 24)))
(play-speech arg0 55)
)
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
@@ -3021,7 +3021,7 @@
(return #t)
)
(cond
((logtest? (-> arg1 bot-task-bits) 20)
((logtest? (-> arg1 bot-task-bits) (bot-task-bits botbits-2 botbits-4))
(logclear! (-> arg1 bot-flags) (bot-flags bf24))
(reset-warn-time! arg1)
(set! (-> arg1 waypoint-time0) (current-time))
@@ -3212,7 +3212,7 @@
(with-pp
(logclear! (-> arg0 bot-flags) (bot-flags bf24))
(reset-warn-time! arg0)
(if (and (not (logtest? (-> arg0 bot-task-bits) 32)) (not (hal-sewer-method-231 arg0 27)))
(if (and (not (logtest? (-> arg0 bot-task-bits) (bot-task-bits botbits-5))) (not (hal-sewer-method-231 arg0 27)))
(play-speech arg0 62)
)
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
@@ -3245,7 +3245,7 @@
(return #t)
)
(cond
((logtest? (-> arg1 bot-task-bits) 40)
((logtest? (-> arg1 bot-task-bits) (bot-task-bits botbits-3 botbits-5))
(logclear! (-> arg1 bot-flags) (bot-flags bf24))
(reset-warn-time! arg1)
(set! (-> arg1 waypoint-time0) (current-time))
@@ -3352,8 +3352,10 @@
)
)
)
(when (and (logtest? (-> arg1 waypoint-bits) 1) (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.25)))
(logand! (-> arg1 waypoint-bits) -2)
(when (and (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.25))
)
(logclear! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-1 from) (process->ppointer pp))
(set! (-> a1-1 num-params) 0)
@@ -3586,7 +3588,7 @@
(send-event s4-0 'skip)
(send-event s3-0 'skip)
)
(logior! (-> arg0 waypoint-bits) 1)
(logior! (-> arg0 waypoint-bits) (waypoint-bits wabits-0))
(none)
)
:check-too-far 'hal2-default-check-too-far
+14 -14
View File
@@ -1615,13 +1615,13 @@ This commonly includes things such as:
;; definition of type tomb-plat-return
(deftype tomb-plat-return (base-plat)
((intro-path path-control :offset-assert 272)
(ride-timer time-frame :offset-assert 280)
(flags uint16 :offset-assert 288)
(path-pos float :offset-assert 292)
(dest-pos float :offset-assert 296)
(path-speed float :offset-assert 300)
(sound-id sound-id :offset-assert 304)
((intro-path path-control :offset-assert 272)
(ride-timer time-frame :offset-assert 280)
(flags tomb-plat-flags :offset-assert 288)
(path-pos float :offset-assert 292)
(dest-pos float :offset-assert 296)
(path-speed float :offset-assert 300)
(sound-id sound-id :offset-assert 304)
)
:heap-base #xc0
:method-count-assert 39
@@ -1728,8 +1728,8 @@ This commonly includes things such as:
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(case event-type
(('ridden)
(let ((v0-0 (the-as object (logior (-> self flags) 1))))
(set! (-> self flags) (the-as uint v0-0))
(let ((v0-0 (the-as object (logior (-> self flags) (tomb-plat-flags topflags-0)))))
(set! (-> self flags) (the-as tomb-plat-flags v0-0))
v0-0
)
)
@@ -1744,9 +1744,9 @@ This commonly includes things such as:
(none)
)
:trans (behavior ()
(logand! (-> self flags) -2)
(logclear! (-> self flags) (tomb-plat-flags topflags-0))
(plat-trans)
(if (not (logtest? (-> self flags) 1))
(if (not (logtest? (-> self flags) (tomb-plat-flags topflags-0)))
(set! (-> self ride-timer) (current-time))
)
(when (>= (- (current-time) (-> self ride-timer)) (seconds 0.5))
@@ -1768,8 +1768,8 @@ This commonly includes things such as:
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(case event-type
(('ridden)
(let ((v0-0 (the-as object (logior (-> self flags) 1))))
(set! (-> self flags) (the-as uint v0-0))
(let ((v0-0 (the-as object (logior (-> self flags) (tomb-plat-flags topflags-0)))))
(set! (-> self flags) (the-as tomb-plat-flags v0-0))
v0-0
)
)
@@ -1898,7 +1898,7 @@ This commonly includes things such as:
(the-as pair 0)
)
(stop-bouncing! obj)
(set! (-> obj flags) (the-as uint 0))
(set! (-> obj flags) (tomb-plat-flags))
(set! (-> obj path-pos) 0.0)
(let ((s4-1 (new 'process 'curve-control obj 'path -1000000000.0)))
(if (logtest? (-> s4-1 flags) (path-control-flag not-found))
+8 -8
View File
@@ -2003,7 +2003,7 @@ This commonly includes things such as:
(pat-duration time-frame :offset-assert 248)
(actor-group (pointer actor-group) :offset-assert 256)
(actor-group-count int32 :offset-assert 260)
(flags uint16 :offset-assert 264)
(flags tomb-vibe-flags :offset-assert 264)
(on-activate basic :offset-assert 268)
)
:heap-base #x90
@@ -2120,7 +2120,7 @@ This commonly includes things such as:
((and (= (-> v1-0 0) (-> self pat-tbl (-> self pat-index))) (!= (-> gp-0 0) (process->handle self)))
(send-event (handle->process (-> gp-0 0)) 'interrupt)
(send-event (handle->process (-> gp-0 0)) 'die)
(logior! (-> self flags) 1)
(logior! (-> self flags) (tomb-vibe-flags tovflags-0))
(go-virtual vibrate)
)
(else
@@ -2165,17 +2165,17 @@ This commonly includes things such as:
)
)
(when gp-0
(when (and (not (logtest? (-> self flags) 2))
(when (and (not (logtest? (-> self flags) (tomb-vibe-flags tovflags-1)))
(< (vector-vector-distance (-> self root trans) (get-trans gp-0 0)) 102400.0)
)
(set-setting! 'sound-mode #f 0.0 2)
(logior! (-> self flags) 2)
(logior! (-> self flags) (tomb-vibe-flags tovflags-1))
)
(when (and (logtest? (-> self flags) 2)
(when (and (logtest? (-> self flags) (tomb-vibe-flags tovflags-1))
(< 184320.0 (vector-vector-distance (-> self root trans) (get-trans gp-0 0)))
)
(remove-setting! 'sound-mode)
(logand! (-> self flags) -3)
(logclear! (-> self flags) (tomb-vibe-flags tovflags-1))
)
)
)
@@ -2274,7 +2274,7 @@ This commonly includes things such as:
)
)
(process-release? *target*)
(if (logtest? (-> self flags) 1)
(if (logtest? (-> self flags) (tomb-vibe-flags tovflags-0))
(go-virtual die #f)
(go-virtual idle)
)
@@ -2464,7 +2464,7 @@ This commonly includes things such as:
(joint-control-channel-group! a0-53 (the-as art-joint-anim (-> obj draw art-group data 3)) num-func-identity)
)
(transform-post)
(set! (-> obj flags) (the-as uint 0))
(set! (-> obj flags) (tomb-vibe-flags))
(set! (-> obj event-hook) (-> (method-of-type tomb-vibe idle) event))
(cond
((logtest? (-> obj entity extra perm status) (entity-perm-status subtask-complete))
+26 -26
View File
@@ -171,11 +171,11 @@
(with-pp
(case arg2
(('set-task)
(let* ((s1-1 (logtest? (-> obj bot-task-bits) 16))
(let* ((s1-1 (logtest? (-> obj bot-task-bits) (bot-task-bits botbits-4)))
(t9-0 (method-of-type sig general-event-handler))
(s5-1 (t9-0 obj arg0 arg1 arg2 arg3))
)
(when (and (not s1-1) (logtest? (-> obj bot-task-bits) 16))
(when (and (not s1-1) (logtest? (-> obj bot-task-bits) (bot-task-bits botbits-4)))
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-2 from) (process->ppointer pp))
(set! (-> a1-2 num-params) 0)
@@ -223,7 +223,7 @@
;; definition for method 262 of type sig-under
;; WARN: disable def twice: 39. This may happen when a cond (no else) is nested inside of another conditional, but it should be rare.
(defmethod sig-under-method-262 sig-under ((obj sig-under) (arg0 symbol))
(when (or (logtest? (-> obj bot-task-bits) 2)
(when (or (logtest? (-> obj bot-task-bits) (bot-task-bits botbits-1))
(and arg0 (let ((f0-0 81920.0))
(>= (* f0-0 f0-0) (vector-vector-xz-distance-squared (target-pos 0) (-> obj root trans)))
)
@@ -244,7 +244,7 @@
;; definition for method 264 of type sig-under
(defmethod sig-under-method-264 sig-under ((obj sig-under))
(and (logtest? (-> obj bot-task-bits) 8)
(and (logtest? (-> obj bot-task-bits) (bot-task-bits botbits-3))
(not (channel-active? obj (the-as uint 0)))
(scene-play obj "under-get-sig-out-res" #f)
)
@@ -431,7 +431,7 @@
(until #f
(let ((gp-0 (get-rand-int self 2)))
(let ((s5-0 (new 'stack-no-clear 'vector)))
(if (and (not (logtest? (-> self bot-task-bits) 1)) (zero? gp-0))
(if (and (not (logtest? (-> self bot-task-bits) (bot-task-bits botbits-0))) (zero? gp-0))
(set! (-> s5-0 quad) (-> self sig5-course spots 2 center quad))
(set! (-> s5-0 quad) (-> self sig5-course spots 1 center quad))
)
@@ -533,7 +533,7 @@
;; WARN: Return type mismatch int vs symbol.
(defun sig5-default-check-too-far ((arg0 sig-under))
(let ((v0-0 (bot-simple-check-too-far arg0)))
(if (logtest? (-> arg0 bot-task-bits) 4)
(if (logtest? (-> arg0 bot-task-bits) (bot-task-bits botbits-2))
(set! v0-0 2)
)
(the-as symbol v0-0)
@@ -590,7 +590,7 @@
(the-as
(function sigt-wait-spot sig symbol)
(lambda ((arg0 object) (arg1 sig-under))
(if (not (and (logtest? (-> arg1 bot-task-bits) 1)
(if (not (and (logtest? (-> arg1 bot-task-bits) (bot-task-bits botbits-0))
*target*
(not (logtest? (-> *target* focus-status) (focus-status dead in-air edge-grab)))
)
@@ -656,7 +656,7 @@
:nav-mesh-index -1
:skip-to -1
:on-set (lambda ((arg0 sig-under))
(logand! (-> arg0 bot-task-bits) -5)
(logclear! (-> arg0 bot-task-bits) (bot-task-bits botbits-2))
(logior! (-> arg0 bot-flags) (bot-flags bf06))
(logior! (-> arg0 enemy-flags) (enemy-flag enable-on-active checking-water))
(set! (-> arg0 notice-enemy-dist) 122880.0)
@@ -1232,8 +1232,8 @@
(function sigt-wait-spot sig symbol)
(lambda ((arg0 object) (arg1 sig-under))
(with-pp
(when (not (logtest? (-> arg1 waypoint-bits) 1))
(logior! (-> arg1 waypoint-bits) 1)
(when (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-1 from) (process->ppointer pp))
(set! (-> a1-1 num-params) 0)
@@ -1283,8 +1283,8 @@
(the-as
(function sigt-wait-spot sig symbol)
(lambda ((arg0 object) (arg1 sig-under))
(when (and (not (logtest? (-> arg1 waypoint-bits) 1)) (+ (current-time) (seconds -6)))
(logior! (-> arg1 waypoint-bits) 1)
(when (and (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0))) (+ (current-time) (seconds -6)))
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(set-setting! 'music 'danger3 0.0 0)
)
#f
@@ -1386,17 +1386,17 @@
(play-speech arg1 12)
)
(cond
((not (logtest? (-> arg1 waypoint-bits) 1))
(logior! (-> arg1 waypoint-bits) 1)
((not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(process-release? arg1)
(sig-under-method-260 arg1)
(move-to-point! (-> arg1 root) (the-as vector (-> arg1 sig5-course spots 20)))
#f
)
((not (logtest? (-> arg1 waypoint-bits) 2))
((not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-1)))
(when (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 2))
(remove-setting! 'entity-name)
(logior! (-> arg1 waypoint-bits) 2)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-1))
(add-process *gui-control* arg1 (gui-channel art-load) (gui-action queue) "under-centipede-three" -99.0 0)
)
#f
@@ -1452,7 +1452,7 @@
(lambda ((arg0 object) (arg1 sig-under))
(local-vars (v1-14 symbol))
(with-pp
(when (logtest? (-> arg1 waypoint-bits) 1)
(when (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-1 from) (process->ppointer pp))
(set! (-> a1-1 num-params) 0)
@@ -1537,7 +1537,7 @@
(clear-poi-and-focus! arg0)
(set! (-> arg0 focus-mode) 0)
(set! (-> arg0 root penetrated-by) (get-penetrate-info arg0))
(logior! (-> arg0 waypoint-bits) 1)
(logior! (-> arg0 waypoint-bits) (waypoint-bits wabits-0))
(send-event arg0 'move-trans (-> arg0 sig5-course spots 21))
(send-event *target* 'continue (get-continue-by-name *game-info* "sig5-skip-to-cent2"))
(react-to-focus arg0)
@@ -1552,7 +1552,7 @@
:on-set (lambda ((arg0 sig-under))
(stop-speech arg0 (the-as uint 0) #f)
(set-setting! 'music 'danger7 0.0 0)
(logand! (-> arg0 bot-task-bits) -9)
(logclear! (-> arg0 bot-task-bits) (bot-task-bits botbits-3))
(let ((v1-7 (get-task-by-type (-> arg0 ai-ctrl) sigt-wait-spot arg0)))
(set! (-> v1-7 bytes 5) 1)
(set! (-> v1-7 bytes 6) 23)
@@ -1663,14 +1663,14 @@
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
(return #t)
)
(if (not (logtest? (-> arg1 bot-task-bits) 16))
(if (not (logtest? (-> arg1 bot-task-bits) (bot-task-bits botbits-4)))
(set! (-> arg1 waypoint-time0) (current-time))
)
(when (and (not (logtest? (-> arg1 waypoint-bits) 2))
(when (and (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-1)))
(>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.5))
(not (logtest? (-> arg1 focus-status) (focus-status in-air)))
)
(logior! (-> arg1 waypoint-bits) 2)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-1))
(logior! (-> arg1 enemy-flags) (enemy-flag enable-on-active checking-water))
)
(if (and (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 1))
@@ -1693,8 +1693,8 @@
)
(or (nonzero? (-> arg1 next-chase-play-time)) (>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 6)))
)
(when (not (logtest? (-> arg1 waypoint-bits) 1))
(logior! (-> arg1 waypoint-bits) 1)
(when (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(send-event (ppointer->process (-> arg1 my-simple-focus)) 'move-trans (-> arg1 sig5-course spots 32))
(set! (-> arg1 poi-handle) (ppointer->handle (-> arg1 my-simple-focus)))
)
@@ -1761,11 +1761,11 @@
(the-as
(function sigt-wait-spot sig symbol)
(lambda ((arg0 object) (arg1 sig-under))
(when (and (not (logtest? (-> arg1 waypoint-bits) 1))
(when (and (not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
(>= (- (current-time) (-> arg1 waypoint-time0)) (seconds 0.5))
(not (logtest? (-> arg1 focus-status) (focus-status in-air)))
)
(logior! (-> arg1 waypoint-bits) 1)
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
(logior! (-> arg1 enemy-flags) (enemy-flag enable-on-active checking-water))
)
(cond
+29 -28
View File
@@ -682,7 +682,7 @@
(pulse-op int8 :offset-assert 224)
(pulse-pc int8 :offset-assert 225)
(pulse-ctr int8 :offset-assert 226)
(flags uint64 :offset-assert 232)
(flags under-block-flags :offset-assert 232)
(activated-time time-frame :offset-assert 240)
(rot-axis vector :inline :offset-assert 256)
(away-from-focal-pt vector :inline :offset-assert 272)
@@ -796,18 +796,18 @@
(('track)
(cond
((-> arg3 param 0)
(if (logtest? (-> self flags) 1)
(if (logtest? (-> self flags) (under-block-flags unbflags-0))
#t
'abort
)
)
(else
(logtest? (-> self flags) 1)
(logtest? (-> self flags) (under-block-flags unbflags-0))
)
)
)
(('attack)
(when (logtest? (-> self flags) 1)
(when (logtest? (-> self flags) (under-block-flags unbflags-0))
(let ((gp-0 (the-as attack-info (-> arg3 param 1))))
(when (and (!= (-> gp-0 id) (-> self prev-attack-id)) (!= (-> gp-0 id) (-> self puzzle prev-special-attack-id)))
(let ((s5-0 (get-penetrate-using-from-attack-event (the-as process-drawable arg0) arg3)))
@@ -847,7 +847,7 @@
(set! (-> self move-dir-x) s5-1)
(set! (-> self move-dir-z) gp-1)
(under-block-method-48 self (+ (-> self col) s5-1) (+ (-> self row) gp-1))
(logand! (-> self flags) -2)
(logclear! (-> self flags) (under-block-flags unbflags-0))
(if (zero? (-> self activated-time))
(under-block-method-42 self)
)
@@ -856,7 +856,7 @@
((under-block-method-49 self s5-1 gp-1)
(set! (-> self move-dir-x) s5-1)
(set! (-> self move-dir-z) gp-1)
(logand! (-> self flags) -2)
(logclear! (-> self flags) (under-block-flags unbflags-0))
(go-virtual rock)
)
((and (-> self next-state) (= (-> self next-state name) 'idle))
@@ -969,7 +969,7 @@
;; WARN: Return type mismatch int vs none.
(defmethod under-block-method-42 under-block ((obj under-block))
(set! (-> obj activated-time) (current-time))
(logior! (-> obj flags) 2)
(logior! (-> obj flags) (under-block-flags unbflags-1))
(set! (-> obj pulse-pc) 0)
(set! (-> obj pulse-op) 0)
0
@@ -981,7 +981,7 @@
;; WARN: Function (method 45 under-block) has a return type of none, but the expression builder found a return statement.
(defmethod under-block-method-45 under-block ((obj under-block))
(let ((v1-0 (-> obj puzzle)))
(when (logtest? (-> obj flags) 2)
(when (logtest? (-> obj flags) (under-block-flags unbflags-1))
(cond
((!= (-> v1-0 slot-mask) (-> v1-0 slot-mask-full))
(when (zero? (-> obj pulse-op))
@@ -1029,7 +1029,7 @@
)
)
(else
(logand! (-> obj flags) -3)
(logclear! (-> obj flags) (under-block-flags unbflags-1))
(set-vector! (-> obj draw color-mult) 1.0 1.0 1.0 1.0)
(set-vector! (-> obj draw color-emissive) 0.0 0.0 0.0 1.0)
)
@@ -1314,15 +1314,16 @@
;; INFO: Used lq/sq
(defmethod under-block-method-50 under-block ((obj under-block))
(with-pp
(let ((s5-0 (new 'stack 'joint-exploder-tuning (the-as uint (if (logtest? (-> obj flags) 4)
1
0
)
)
)
)
(let ((s5-0
(new 'stack 'joint-exploder-tuning (the-as uint (if (logtest? (-> obj flags) (under-block-flags unbflags-2))
1
0
)
)
)
)
)
(when (logtest? (-> obj flags) 4)
(when (logtest? (-> obj flags) (under-block-flags unbflags-2))
(set! (-> s5-0 fountain-rand-transv-lo quad) (-> obj away-from-focal-pt quad))
(set! (-> s5-0 fountain-rand-transv-hi x) 24576.0)
(set! (-> s5-0 fountain-rand-transv-hi y) 49152.0)
@@ -1359,7 +1360,7 @@
:virtual #t
:event under-block-event-handler
:enter (behavior ()
(logand! (-> self flags) -2)
(logclear! (-> self flags) (under-block-flags unbflags-0))
(none)
)
:code (the-as (function none :behavior under-block) sleep-code)
@@ -1371,7 +1372,7 @@
:event under-block-event-handler
:trans (the-as (function none :behavior under-block) rider-trans)
:code (behavior ()
(logand! (-> self flags) -2)
(logclear! (-> self flags) (under-block-flags unbflags-0))
(while (not (under-block-method-48 self (-> self col) (-> self row)))
(suspend)
)
@@ -1406,7 +1407,7 @@
:event under-block-event-handler
:trans (the-as (function none :behavior under-block) rider-trans)
:code (behavior ()
(logand! (-> self flags) -2)
(logclear! (-> self flags) (under-block-flags unbflags-0))
(set! (-> self state-time) (current-time))
(let ((gp-0 (new 'stack-no-clear 'matrix)))
(set! (-> gp-0 vector 0 quad) (-> self root trans quad))
@@ -1436,7 +1437,7 @@
:virtual #t
:event under-block-event-handler
:enter (behavior ()
(logior! (-> self flags) 1)
(logior! (-> self flags) (under-block-flags unbflags-0))
(under-block-method-41 self 'active)
(none)
)
@@ -1448,12 +1449,12 @@
:virtual #t
:event under-block-event-handler
:enter (behavior ()
(logior! (-> self flags) 1)
(logior! (-> self flags) (under-block-flags unbflags-0))
(under-block-method-41 self 'active)
(none)
)
:exit (behavior ()
(logand! (-> self flags) -2)
(logclear! (-> self flags) (under-block-flags unbflags-0))
(none)
)
:trans (behavior ()
@@ -1660,7 +1661,7 @@
:virtual #t
:event under-block-event-handler
:enter (behavior ()
(logand! (-> self flags) -2)
(logclear! (-> self flags) (under-block-flags unbflags-0))
(none)
)
:trans (behavior ()
@@ -1738,7 +1739,7 @@
:virtual #t
:event under-block-event-handler
:enter (behavior ()
(logand! (-> self flags) -2)
(logclear! (-> self flags) (under-block-flags unbflags-0))
(under-block-method-41 self 'beaten)
(none)
)
@@ -1750,7 +1751,7 @@
:virtual #t
:event under-block-event-handler
:enter (behavior ()
(logand! (-> self flags) -2)
(logclear! (-> self flags) (under-block-flags unbflags-0))
(logclear! (-> self mask) (process-mask actor-pause))
(under-block-method-41 self 'fall)
(none)
@@ -1790,7 +1791,7 @@
(when (and (logtest? (-> (the-as collide-shape-moving gp-0) status) (collide-status touch-surface))
(>= (- (current-time) (-> self state-time)) (seconds 0.01))
)
(logior! (-> self flags) 4)
(logior! (-> self flags) (under-block-flags unbflags-2))
(go-virtual explode)
)
)
@@ -1804,7 +1805,7 @@
:virtual #t
:event under-block-event-handler
:enter (behavior ()
(logand! (-> self flags) -2)
(logclear! (-> self flags) (under-block-flags unbflags-0))
(under-block-method-46 self (-> self col) (-> self row))
(let ((v1-4 (-> self puzzle)))
(countdown (a0-3 (-> v1-4 slots length))