mirror of
https://github.com/open-goal/jak-project
synced 2026-06-12 21:45:33 -04:00
e975eab15a
Previously was only applying to game versions above Jak 2, Fixes #3342
4207 lines
195 KiB
Common Lisp
Vendored
Generated
4207 lines
195 KiB
Common Lisp
Vendored
Generated
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; definition of type hal2-course
|
|
(deftype hal2-course (bot-course)
|
|
((sentries1-reminders (array int16))
|
|
(sentries2-reminders (array int16))
|
|
(bomb2-reminders bot-speech-list)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type hal2-course
|
|
(defmethod inspect ((this hal2-course))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(format #t "[~8x] ~A~%" this (-> this type))
|
|
(format #t "~1Tcourse-id: ~D~%" (-> this course-id))
|
|
(format #t "~1Tspeech-count: ~D~%" (-> this speech-count))
|
|
(format #t "~1Tspot-count: ~D~%" (-> this spot-count))
|
|
(format #t "~1Tretry-cookie: ~D~%" (-> this retry-cookie))
|
|
(format #t "~1Ttoo-far-warn-speeches: ~A~%" (-> this too-far-warn-speeches))
|
|
(format #t "~1Ttoo-far-fail-speeches: ~A~%" (-> this too-far-fail-speeches))
|
|
(format #t "~1Tattack-player-speeches: ~A~%" (-> this attack-player-speeches))
|
|
(format #t "~1Tdefault-check-too-far: ~A~%" (-> this default-check-too-far))
|
|
(format #t "~1Twaypoints: ~A~%" (-> this waypoints))
|
|
(format #t "~1Tspeeches: #x~X~%" (-> this speeches))
|
|
(format #t "~1Tspeech-tunings: #x~X~%" (-> this speech-tunings))
|
|
(format #t "~1Tdirs: #x~X~%" (-> this dirs))
|
|
(format #t "~1Tspots: #x~X~%" (-> this spots))
|
|
(format #t "~1Tsentries1-reminders: ~A~%" (-> this sentries1-reminders))
|
|
(format #t "~1Tsentries2-reminders: ~A~%" (-> this sentries2-reminders))
|
|
(format #t "~1Tbomb2-reminders: ~A~%" (-> this bomb2-reminders))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition of type hal-sewer
|
|
(deftype hal-sewer (hal)
|
|
((hal2-course hal2-course :overlay-at course)
|
|
(sentries1-reminder-index int8)
|
|
(sentries2-reminder-index int8)
|
|
(test-plane plane :inline :offset 1040)
|
|
)
|
|
(:methods
|
|
(hal-sewer-method-227 (_type_) symbol)
|
|
(hal-sewer-method-228 (_type_) none)
|
|
(hal-sewer-method-229 (_type_) symbol)
|
|
(hal-sewer-method-230 (_type_ process-focusable process-focusable) symbol)
|
|
(hal-sewer-method-231 (_type_ int) symbol)
|
|
)
|
|
)
|
|
|
|
;; definition for method 3 of type hal-sewer
|
|
(defmethod inspect ((this hal-sewer))
|
|
(when (not this)
|
|
(set! this this)
|
|
(goto cfg-4)
|
|
)
|
|
(let ((t9-0 (method-of-type hal inspect)))
|
|
(t9-0 this)
|
|
)
|
|
(format #t "~2Tsentries1-reminder-index: ~D~%" (-> this sentries1-reminder-index))
|
|
(format #t "~2Tsentries2-reminder-index: ~D~%" (-> this sentries2-reminder-index))
|
|
(format #t "~2Ttest-plane: #<plane @ #x~X>~%" (-> this test-plane))
|
|
(label cfg-4)
|
|
this
|
|
)
|
|
|
|
;; definition for method 116 of type hal-sewer
|
|
;; WARN: Return type mismatch object vs none.
|
|
(defmethod go-idle ((this hal-sewer))
|
|
(cond
|
|
((task-node-closed? (game-task-node sewer-escort-resolution))
|
|
(cleanup-for-death this)
|
|
(go (method-of-object this die-fast))
|
|
)
|
|
(else
|
|
(go (method-of-object this idle))
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 210 of type hal-sewer
|
|
;; WARN: Return type mismatch float vs none.
|
|
(defmethod init! ((this hal-sewer))
|
|
"Set defaults for various fields."
|
|
(let ((t9-0 (method-of-type hal init!)))
|
|
(t9-0 this)
|
|
)
|
|
(set! (-> this too-far-warn-dist-default) 409600.0)
|
|
(set! (-> this too-far-fail-dist-delta-default) 163840.0)
|
|
(none)
|
|
)
|
|
|
|
;; definition for method 74 of type hal-sewer
|
|
(defmethod general-event-handler ((this hal-sewer) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
|
"Handles various events for the enemy
|
|
@TODO - unsure if there is a pattern for the events and this should have a more specific name"
|
|
(case arg2
|
|
(('notify)
|
|
(case (-> arg3 param 0)
|
|
(('jinx-bomb)
|
|
(logior! (-> this bot-task-bits) (bot-task-bits botbits-0))
|
|
#t
|
|
)
|
|
(else
|
|
((method-of-type hal general-event-handler) this arg0 arg1 arg2 arg3)
|
|
)
|
|
)
|
|
)
|
|
(else
|
|
((method-of-type hal general-event-handler) this arg0 arg1 arg2 arg3)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; definition for function hal2-default-check-too-far
|
|
(defun hal2-default-check-too-far ((arg0 hal-sewer))
|
|
(let ((s5-0 (-> *target* control trans))
|
|
(f30-0 40960000.0)
|
|
)
|
|
(countdown (s4-0 3)
|
|
(let ((v1-6 (handle->process (-> arg0 slave-handle s4-0))))
|
|
(when v1-6
|
|
(let ((f0-0 (vector-vector-xz-distance s5-0 (-> (the-as process-drawable v1-6) root trans))))
|
|
(if (< f0-0 f30-0)
|
|
(set! f30-0 f0-0)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(let ((v0-1 0))
|
|
(let ((f0-1 (-> arg0 too-far-warn-dist)))
|
|
(when (>= f30-0 f0-1)
|
|
(let* ((v1-15 (-> arg0 actor-group 0 data 1 actor))
|
|
(a0-9 (if v1-15
|
|
(-> v1-15 extra process)
|
|
)
|
|
)
|
|
)
|
|
(cond
|
|
((and a0-9 (logtest? (bot-flags bf19) (-> (the-as hal a0-9) bot-flags)))
|
|
(set! v0-1 2)
|
|
)
|
|
((>= (- f30-0 f0-1) (-> arg0 too-far-fail-dist-delta))
|
|
(set! v0-1 2)
|
|
)
|
|
(else
|
|
(set! v0-1 1)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
v0-1
|
|
)
|
|
)
|
|
)
|
|
|
|
;; definition for function hal2-near-start-check-too-far
|
|
(defun hal2-near-start-check-too-far ((arg0 hal-sewer))
|
|
(let ((gp-0 0))
|
|
(let ((v1-0 (target-pos 0)))
|
|
(cond
|
|
((>= (-> v1-0 z) 2399957.0)
|
|
(set! gp-0 2)
|
|
)
|
|
((>= (-> v1-0 z) 2221453.2)
|
|
(set! gp-0 1)
|
|
)
|
|
((and (>= (-> v1-0 y) -159744.0) (>= (-> (get-trans *target* 1) y) -159744.0))
|
|
(set! gp-0 2)
|
|
)
|
|
)
|
|
)
|
|
gp-0
|
|
)
|
|
)
|
|
|
|
;; definition for function hal2-below-elevator-a-check-too-far
|
|
(defun hal2-below-elevator-a-check-too-far ((arg0 hal-sewer))
|
|
(let ((gp-0 0))
|
|
(if (and (>= (-> (target-pos 0) y) -212402.17) (>= (-> (get-trans *target* 1) y) -212402.17))
|
|
(set! gp-0 2)
|
|
)
|
|
gp-0
|
|
)
|
|
)
|
|
|
|
;; definition for function hal2-force-fail-check-too-far
|
|
(defun hal2-force-fail-check-too-far ((arg0 hal-sewer))
|
|
(let ((gp-0 0))
|
|
(if (and (not (channel-active? arg0 (gui-channel none))) (logtest? (bot-flags bf24) (-> arg0 bot-flags)))
|
|
(set! gp-0 2)
|
|
)
|
|
gp-0
|
|
)
|
|
)
|
|
|
|
;; definition for function hal2-onslaught-check-too-far
|
|
(defun hal2-onslaught-check-too-far ((arg0 hal-sewer))
|
|
(let ((gp-0 (hal2-default-check-too-far arg0)))
|
|
(if (>= 1884160.0 (-> (target-pos 0) z))
|
|
(set! gp-0 2)
|
|
)
|
|
gp-0
|
|
)
|
|
)
|
|
|
|
;; definition for method 229 of type hal-sewer
|
|
(defmethod hal-sewer-method-229 ((this hal-sewer))
|
|
(let ((a0-1 *target*))
|
|
(when a0-1
|
|
(let ((v1-1 (get-trans a0-1 0)))
|
|
(and (>= 5632000.0 (-> v1-1 x))
|
|
(>= (-> v1-1 x) 5529600.0)
|
|
(>= 2068480.0 (-> v1-1 z))
|
|
(>= (-> v1-1 z) 1921024.0)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; definition for method 231 of type hal-sewer
|
|
(defmethod hal-sewer-method-231 ((this hal-sewer) (arg0 int))
|
|
(countdown (v1-0 3)
|
|
(let* ((a2-4 (-> this actor-group 0 data (+ arg0 v1-0) actor))
|
|
(a3-2 (if a2-4
|
|
(-> a2-4 extra process)
|
|
)
|
|
)
|
|
)
|
|
(if (and a3-2 (not (logtest? (-> (the-as process-focusable a3-2) focus-status) (focus-status dead))))
|
|
(return #f)
|
|
)
|
|
)
|
|
)
|
|
#t
|
|
)
|
|
|
|
;; definition for method 230 of type hal-sewer
|
|
;; INFO: Used lq/sq
|
|
(defmethod hal-sewer-method-230 ((this hal-sewer) (arg0 process-focusable) (arg1 process-focusable))
|
|
(when (and arg0 arg1)
|
|
(let ((gp-0 (new 'stack-no-clear 'collide-query)))
|
|
(set! (-> gp-0 start-pos quad) (-> arg0 root trans quad))
|
|
(+! (-> gp-0 start-pos y) 8192.0)
|
|
(vector-! (-> gp-0 move-dist) (get-trans arg1 3) (-> gp-0 start-pos))
|
|
(let ((v1-5 gp-0))
|
|
(set! (-> v1-5 radius) 2048.0)
|
|
(set! (-> v1-5 collide-with) (collide-spec backgnd obstacle hit-by-others-list pusher))
|
|
(set! (-> v1-5 ignore-process0) arg0)
|
|
(set! (-> v1-5 ignore-process1) #f)
|
|
(set! (-> v1-5 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1))
|
|
(set! (-> v1-5 action-mask) (collide-action solid))
|
|
)
|
|
(< (fill-and-probe-using-line-sphere *collide-cache* gp-0) 0.0)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; definition for method 227 of type hal-sewer
|
|
(defmethod hal-sewer-method-227 ((this hal-sewer))
|
|
(let* ((a0-1 (-> this actor-group 0 data 1 actor))
|
|
(v1-3 (if a0-1
|
|
(-> a0-1 extra process)
|
|
)
|
|
)
|
|
)
|
|
(when v1-3
|
|
(let ((s5-0 (the-as process #f)))
|
|
(let ((f30-0 0.0)
|
|
(s4-0 (-> (the-as process-drawable v1-3) root trans))
|
|
)
|
|
(countdown (s3-0 3)
|
|
(let* ((v1-10 (-> this actor-group 0 data (+ s3-0 7) actor))
|
|
(s2-0 (if v1-10
|
|
(-> v1-10 extra process)
|
|
)
|
|
)
|
|
)
|
|
(when s2-0
|
|
(let ((f0-0 (vector-vector-distance-squared s4-0 (-> (the-as process-drawable s2-0) root trans))))
|
|
(when (or (not s5-0) (< f0-0 f30-0))
|
|
(set! s5-0 s2-0)
|
|
(set! f30-0 f0-0)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(when s5-0
|
|
(let* ((a0-5 this)
|
|
(t9-1 (method-of-object a0-5 hal-sewer-method-230))
|
|
(v1-23 (-> this actor-group 0 data 1 actor))
|
|
)
|
|
(t9-1
|
|
a0-5
|
|
(the-as process-focusable (if v1-23
|
|
(-> v1-23 extra process)
|
|
)
|
|
)
|
|
(the-as process-focusable s5-0)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; definition for method 228 of type hal-sewer
|
|
;; WARN: Return type mismatch bot-flags vs none.
|
|
(defmethod hal-sewer-method-228 ((this hal-sewer))
|
|
(with-pp
|
|
(let ((s5-0 (-> this actor-group 0 data 18)))
|
|
(cond
|
|
((logtest? (bot-flags bf22) (-> this bot-flags))
|
|
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-0 from) (process->ppointer pp))
|
|
(set! (-> a1-0 num-params) 1)
|
|
(set! (-> a1-0 message) 'query)
|
|
(set! (-> a1-0 param 0) (the-as uint 'path-pos?))
|
|
(let ((t9-0 send-event-function)
|
|
(v1-9 (-> s5-0 actor))
|
|
)
|
|
(when (= (t9-0
|
|
(if v1-9
|
|
(-> v1-9 extra process)
|
|
)
|
|
a1-0
|
|
)
|
|
1.0
|
|
)
|
|
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-1 from) (process->ppointer pp))
|
|
(set! (-> a1-1 num-params) 1)
|
|
(set! (-> a1-1 message) 'query)
|
|
(set! (-> a1-1 param 0) (the-as uint 'player-standing-on?))
|
|
(let ((t9-1 send-event-function)
|
|
(v1-18 (-> s5-0 actor))
|
|
)
|
|
(when (t9-1
|
|
(if v1-18
|
|
(-> v1-18 extra process)
|
|
)
|
|
a1-1
|
|
)
|
|
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-2 from) (process->ppointer pp))
|
|
(set! (-> a1-2 num-params) 1)
|
|
(set! (-> a1-2 message) 'move-to)
|
|
(set! (-> a1-2 param 0) (the-as uint 'top))
|
|
(let ((t9-2 send-event-function)
|
|
(v1-25 (-> s5-0 actor))
|
|
)
|
|
(t9-2
|
|
(if v1-25
|
|
(-> v1-25 extra process)
|
|
)
|
|
a1-2
|
|
)
|
|
)
|
|
)
|
|
(logclear! (-> this bot-flags) (bot-flags bf22))
|
|
(logior! (-> this bot-flags) (bot-flags bf23))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
((logtest? (bot-flags bf23) (-> this bot-flags))
|
|
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-3 from) (process->ppointer pp))
|
|
(set! (-> a1-3 num-params) 1)
|
|
(set! (-> a1-3 message) 'query)
|
|
(set! (-> a1-3 param 0) (the-as uint 'path-pos?))
|
|
(let ((t9-3 send-event-function)
|
|
(v1-38 (-> s5-0 actor))
|
|
)
|
|
(if (= (t9-3
|
|
(if v1-38
|
|
(-> v1-38 extra process)
|
|
)
|
|
a1-3
|
|
)
|
|
0.0
|
|
)
|
|
(logclear! (-> this bot-flags) (bot-flags bf23))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(else
|
|
(let ((a0-14 *target*))
|
|
(when (and a0-14 (>= -294912.0 (-> (get-trans a0-14 0) y)))
|
|
(let ((a1-5 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-5 from) (process->ppointer pp))
|
|
(set! (-> a1-5 num-params) 1)
|
|
(set! (-> a1-5 message) 'move-to)
|
|
(set! (-> a1-5 param 0) (the-as uint 'bottom))
|
|
(let ((t9-5 send-event-function)
|
|
(v1-51 (-> s5-0 actor))
|
|
)
|
|
(t9-5
|
|
(if v1-51
|
|
(-> v1-51 extra process)
|
|
)
|
|
a1-5
|
|
)
|
|
)
|
|
)
|
|
(logior! (-> this bot-flags) (bot-flags bf22))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
|
|
;; definition for symbol *hal2-course*, type hal2-course
|
|
(define *hal2-course*
|
|
(new 'static 'hal2-course
|
|
:course-id #x5
|
|
:speech-count #x52
|
|
:spot-count #x5
|
|
:too-far-warn-speeches (new 'static 'bot-speech-list-shuffle
|
|
:flags #xa
|
|
:last-local-index -1
|
|
:speech-indexes (new 'static 'boxed-array :type int16 15 16 17 18 19 20)
|
|
)
|
|
:waypoints (new 'static 'boxed-array :type bot-waypoint
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 1
|
|
:nav-mesh-index -1
|
|
:skip-to -1
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(clear-speech-flags! arg0)
|
|
(let ((v1-3 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-3 bytes 5) 1)
|
|
(set! (-> v1-3 bytes 6) 0)
|
|
(set! (-> v1-3 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-3) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(let* ((v1-3 (-> arg1 actor-group 0 data 1 actor))
|
|
(s3-0 (if v1-3
|
|
(-> v1-3 extra process)
|
|
)
|
|
)
|
|
(v1-8 (-> arg1 actor-group 0 data 3 actor))
|
|
(s4-0 (if v1-8
|
|
(-> v1-8 extra process)
|
|
)
|
|
)
|
|
(v1-13 (-> arg1 actor-group 0 data 2 actor))
|
|
(s5-0 (if v1-13
|
|
(-> v1-13 extra process)
|
|
)
|
|
)
|
|
)
|
|
(cond
|
|
((not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
|
|
(when (and s3-0 s4-0 s5-0)
|
|
(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) (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)
|
|
(send-event s5-0 'request 'waypoint 2)
|
|
#f
|
|
)
|
|
(else
|
|
(let ((a0-17 s3-0))
|
|
(when (and (and a0-17 (let ((s3-1 1))
|
|
(< s3-1 (the-as int (send-event a0-17 'query 'waypoint)))
|
|
)
|
|
)
|
|
(let ((a0-19 s4-0))
|
|
(and a0-19 (let ((s4-1 1))
|
|
(< s4-1 (the-as int (send-event a0-19 'query 'waypoint)))
|
|
)
|
|
)
|
|
)
|
|
(let ((a0-21 s5-0))
|
|
(and a0-21 (let ((s5-1 1))
|
|
(< s5-1 (the-as int (send-event a0-21 'query 'waypoint)))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(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
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far #f
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 2
|
|
:nav-mesh-index -1
|
|
:skip-to 48
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-1 bytes 5) 1)
|
|
(set! (-> v1-1 bytes 6) 0)
|
|
(set! (-> v1-1 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-1) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(let* ((v1-3 (-> arg1 actor-group 0 data 5 actor))
|
|
(a0-1 (if v1-3
|
|
(-> v1-3 extra process)
|
|
)
|
|
)
|
|
)
|
|
(if (or (not a0-1)
|
|
(or (not (logtest? (-> a0-1 entity extra perm status) (entity-perm-status subtask-complete)))
|
|
(< -176128.0 (-> (target-pos 0) y))
|
|
)
|
|
)
|
|
(set-time! (-> arg1 waypoint-time0))
|
|
)
|
|
)
|
|
(cond
|
|
((logtest? (bot-flags bf19 bf20 bf21) (-> arg1 bot-flags))
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 4 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
((time-elapsed? (-> arg1 waypoint-time0) (seconds 0.5))
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 3 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far #f
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 3
|
|
:nav-mesh-index -1
|
|
:skip-to 48
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(play-speech arg0 0)
|
|
(let ((v1-3 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-3 bytes 5) 1)
|
|
(set! (-> v1-3 bytes 6) 0)
|
|
(set! (-> v1-3 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-3) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(local-vars (a0-8 process) (a0-13 process))
|
|
(let* ((v1-3 (-> arg1 actor-group 0 data 1 actor))
|
|
(s3-0 (if v1-3
|
|
(-> v1-3 extra process)
|
|
)
|
|
)
|
|
(v1-8 (-> arg1 actor-group 0 data 3 actor))
|
|
(s4-0 (if v1-8
|
|
(-> v1-8 extra process)
|
|
)
|
|
)
|
|
(v1-13 (-> arg1 actor-group 0 data 2 actor))
|
|
(s5-0 (if v1-13
|
|
(-> v1-13 extra process)
|
|
)
|
|
)
|
|
)
|
|
(if (and (time-elapsed? (-> arg1 waypoint-time0) (seconds 0.1))
|
|
(let ((a0-3 s3-0))
|
|
(and a0-3 (< (the-as int (send-event a0-3 'query 'waypoint)) 3))
|
|
)
|
|
)
|
|
(send-event s3-0 'request 'waypoint 3)
|
|
)
|
|
(if (and (time-elapsed? (-> arg1 waypoint-time0) (seconds 0.75))
|
|
(begin (set! a0-8 s4-0) a0-8)
|
|
(< (the-as int (send-event a0-8 'query 'waypoint)) 3)
|
|
)
|
|
(send-event s4-0 'request 'waypoint 3)
|
|
)
|
|
(if (and (time-elapsed? (-> arg1 waypoint-time0) (seconds 0.9))
|
|
(begin (set! a0-13 s5-0) a0-13)
|
|
(< (the-as int (send-event a0-13 'query 'waypoint)) 3)
|
|
)
|
|
(send-event s5-0 'request 'waypoint 3)
|
|
)
|
|
(cond
|
|
((logtest? (bot-flags bf19 bf20 bf21) (-> arg1 bot-flags))
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 4 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
((and (>= (- (-> (target-pos 0) x) (-> arg1 root trans x)) -65536.0)
|
|
(or (not s3-0) (>= (the-as int (send-event s3-0 'query 'waypoint)) 3))
|
|
(or (not s4-0) (>= (the-as int (send-event s4-0 'query 'waypoint)) 3))
|
|
(or (not s5-0) (>= (the-as int (send-event s5-0 'query 'waypoint)) 3))
|
|
)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 4 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far #f
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 4
|
|
:nav-mesh-index -1
|
|
:skip-to 48
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(if (not (logtest? (bot-flags bf19 bf20 bf21) (-> arg0 bot-flags)))
|
|
(play-speech arg0 1)
|
|
)
|
|
(let* ((v1-8 (-> arg0 actor-group 0 data 1 actor))
|
|
(s4-0 (if v1-8
|
|
(-> v1-8 extra process)
|
|
)
|
|
)
|
|
(v1-13 (-> arg0 actor-group 0 data 3 actor))
|
|
(s5-0 (if v1-13
|
|
(-> v1-13 extra process)
|
|
)
|
|
)
|
|
)
|
|
(let* ((v1-18 (-> arg0 actor-group 0 data 2 actor))
|
|
(s3-0 (if v1-18
|
|
(-> v1-18 extra process)
|
|
)
|
|
)
|
|
)
|
|
(process-entity-status! arg0 (entity-perm-status no-kill) #t)
|
|
(process-entity-status! s4-0 (entity-perm-status no-kill) #t)
|
|
(process-entity-status! s5-0 (entity-perm-status no-kill) #t)
|
|
(process-entity-status! s3-0 (entity-perm-status no-kill) #t)
|
|
(let ((a0-7 (-> arg0 actor-group 0 data 4 actor)))
|
|
(if a0-7
|
|
(toggle-status (the-as entity-actor a0-7) (entity-perm-status no-kill) #t)
|
|
)
|
|
)
|
|
(send-event s4-0 'request 'health-meter #t)
|
|
(send-event s5-0 'request 'health-meter #t)
|
|
(send-event s3-0 'request 'health-meter #t)
|
|
(send-event s4-0 'request 'waypoint 3)
|
|
(send-event s3-0 'request 'waypoint 3)
|
|
)
|
|
(send-event s5-0 'request 'waypoint 3)
|
|
)
|
|
(let ((v1-62 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-62 bytes 5) 1)
|
|
(set! (-> v1-62 bytes 6) 1)
|
|
(set! (-> v1-62 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-62) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(local-vars (a0-8 process))
|
|
(let* ((v1-3 (-> arg1 actor-group 0 data 1 actor))
|
|
(s3-0 (if v1-3
|
|
(-> v1-3 extra process)
|
|
)
|
|
)
|
|
(v1-8 (-> arg1 actor-group 0 data 3 actor))
|
|
(s4-0 (if v1-8
|
|
(-> v1-8 extra process)
|
|
)
|
|
)
|
|
(v1-13 (-> arg1 actor-group 0 data 2 actor))
|
|
(s5-0 (if v1-13
|
|
(-> v1-13 extra process)
|
|
)
|
|
)
|
|
)
|
|
(let ((a0-1 s3-0))
|
|
(if (and (and a0-1 (= (send-event a0-1 'query 'waypoint) 3))
|
|
(time-elapsed? (-> arg1 waypoint-time0) (seconds 1.5))
|
|
)
|
|
(send-event s3-0 'request 'waypoint 9)
|
|
)
|
|
)
|
|
(when (and (not (channel-active? arg1 (gui-channel none)))
|
|
(not (speech-playing? arg1 6))
|
|
(begin (set! a0-8 s3-0) a0-8)
|
|
(>= (the-as int (send-event a0-8 'query 'waypoint)) 9)
|
|
)
|
|
(play-speech arg1 6)
|
|
(play-speech arg1 7)
|
|
)
|
|
(let ((a0-11 s5-0))
|
|
(if (and (and a0-11 (= (send-event a0-11 'query 'waypoint) 3))
|
|
(time-elapsed? (-> arg1 waypoint-time0) (seconds 1.6))
|
|
)
|
|
(send-event s5-0 'request 'waypoint 9)
|
|
)
|
|
)
|
|
(let ((a0-16 s4-0))
|
|
(if (and (and a0-16 (= (send-event a0-16 'query 'waypoint) 3))
|
|
(time-elapsed? (-> arg1 waypoint-time0) (seconds 1.8))
|
|
)
|
|
(send-event s4-0 'request 'waypoint 9)
|
|
)
|
|
)
|
|
(when (and (time-elapsed? (-> arg1 waypoint-time0) (seconds 4))
|
|
(not (speech-playing? arg1 2))
|
|
(not (channel-active? arg1 (gui-channel none)))
|
|
)
|
|
(play-speech arg1 2)
|
|
(play-speech arg1 3)
|
|
(play-speech arg1 4)
|
|
(play-speech arg1 5)
|
|
)
|
|
(when (and (or (not s3-0) (>= (the-as int (send-event s3-0 'query 'waypoint)) 9))
|
|
(or (not s4-0) (>= (the-as int (send-event s4-0 'query 'waypoint)) 9))
|
|
(or (not s5-0) (>= (the-as int (send-event s5-0 'query 'waypoint)) 9))
|
|
)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 9 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
#f
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far 'hal2-near-start-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 9
|
|
:nav-mesh-index -1
|
|
:skip-to -1
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(with-pp
|
|
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-0 from) (process->ppointer pp))
|
|
(set! (-> a1-0 num-params) 1)
|
|
(set! (-> a1-0 message) 'move-to)
|
|
(set! (-> a1-0 param 0) (the-as uint 'bottom))
|
|
(let ((t9-0 send-event-function)
|
|
(v1-7 (-> arg0 actor-group 0 data 4 actor))
|
|
)
|
|
(t9-0
|
|
(if v1-7
|
|
(-> v1-7 extra process)
|
|
)
|
|
a1-0
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-11 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-11 bytes 5) 1)
|
|
(set! (-> v1-11 bytes 6) 2)
|
|
(set! (-> v1-11 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-11) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(local-vars (v1-125 symbol))
|
|
(with-pp
|
|
(let* ((v1-3 (-> arg1 actor-group 0 data 1 actor))
|
|
(s3-0 (if v1-3
|
|
(-> v1-3 extra process)
|
|
)
|
|
)
|
|
(v1-8 (-> arg1 actor-group 0 data 3 actor))
|
|
(s4-0 (if v1-8
|
|
(-> v1-8 extra process)
|
|
)
|
|
)
|
|
(v1-13 (-> arg1 actor-group 0 data 2 actor))
|
|
(s5-0 (if v1-13
|
|
(-> v1-13 extra process)
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-1 from) (process->ppointer pp))
|
|
(set! (-> a1-1 num-params) 1)
|
|
(set! (-> a1-1 message) 'query)
|
|
(set! (-> a1-1 param 0) (the-as uint 'path-pos?))
|
|
(let ((t9-0 send-event-function)
|
|
(v1-22 (-> arg1 actor-group 0 data 4 actor))
|
|
)
|
|
(if (< (t9-0
|
|
(if v1-22
|
|
(-> v1-22 extra process)
|
|
)
|
|
a1-1
|
|
)
|
|
1.0
|
|
)
|
|
(set-time! (-> arg1 waypoint-time0))
|
|
)
|
|
)
|
|
)
|
|
(let ((a0-3 s3-0))
|
|
(if (and (and a0-3 (= (send-event a0-3 'query 'waypoint) 9))
|
|
(time-elapsed? (-> arg1 waypoint-time0) (seconds 0.1))
|
|
)
|
|
(send-event s3-0 'request 'waypoint 11)
|
|
)
|
|
)
|
|
(let ((a0-8 s4-0))
|
|
(if (and (and a0-8 (= (send-event a0-8 'query 'waypoint) 9))
|
|
(time-elapsed? (-> arg1 waypoint-time0) (seconds 0.9))
|
|
)
|
|
(send-event s4-0 'request 'waypoint 11)
|
|
)
|
|
)
|
|
(let ((a0-13 s5-0))
|
|
(if (and (and a0-13 (= (send-event a0-13 'query 'waypoint) 9))
|
|
(time-elapsed? (-> arg1 waypoint-time0) (seconds 0.7))
|
|
)
|
|
(send-event s5-0 'request 'waypoint 11)
|
|
)
|
|
)
|
|
(let ((a1-8 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-8 from) (process->ppointer pp))
|
|
(set! (-> a1-8 num-params) 1)
|
|
(set! (-> a1-8 message) 'query)
|
|
(set! (-> a1-8 param 0) (the-as uint 'idle))
|
|
(let ((t9-7 send-event-function)
|
|
(v1-87 (-> arg1 actor-group 0 data 6 actor))
|
|
)
|
|
(cond
|
|
((t9-7
|
|
(if v1-87
|
|
(-> v1-87 extra process)
|
|
)
|
|
a1-8
|
|
)
|
|
(let ((a0-20 s3-0))
|
|
(when (and (and a0-20 (>= (the-as int (send-event a0-20 'query 'waypoint)) 11))
|
|
(and (not (speech-playing? arg1 12))
|
|
(not (speech-playing? arg1 8))
|
|
(not (channel-active? arg1 (gui-channel none)))
|
|
)
|
|
)
|
|
(play-speech arg1 8)
|
|
(play-speech arg1 9)
|
|
(play-speech arg1 10)
|
|
(play-speech arg1 11)
|
|
)
|
|
)
|
|
)
|
|
((let ((a1-17 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-17 from) (process->ppointer pp))
|
|
(set! (-> a1-17 num-params) 1)
|
|
(set! (-> a1-17 message) 'query)
|
|
(set! (-> a1-17 param 0) (the-as uint 'hostile))
|
|
(let ((t9-16 send-event-function)
|
|
(v1-119 (-> arg1 actor-group 0 data 6 actor))
|
|
)
|
|
(t9-16
|
|
(if v1-119
|
|
(-> v1-119 extra process)
|
|
)
|
|
a1-17
|
|
)
|
|
)
|
|
)
|
|
(b! (speech-playing? arg1 12) cfg-77 :likely-delay (set! v1-125 #f))
|
|
(set! v1-125 (hal-sewer-method-227 arg1))
|
|
(label cfg-77)
|
|
(when v1-125
|
|
(stop-speech arg1 (the-as uint 0) #f)
|
|
(play-speech arg1 12)
|
|
(play-speech arg1 13)
|
|
(play-speech arg1 14)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(when (and (or (not s3-0) (>= (the-as int (send-event s3-0 'query 'waypoint)) 11))
|
|
(or (not s4-0) (>= (the-as int (send-event s4-0 'query 'waypoint)) 11))
|
|
(or (not s5-0) (>= (the-as int (send-event s5-0 'query 'waypoint)) 11))
|
|
)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(cond
|
|
((speech-playing? arg1 12)
|
|
(let ((a1-28 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-28 from) (process->ppointer pp))
|
|
(set! (-> a1-28 num-params) 1)
|
|
(set! (-> a1-28 message) 'query)
|
|
(set! (-> a1-28 param 0) (the-as uint 'beaten))
|
|
(let ((t9-28 send-event-function)
|
|
(v1-163 (-> arg1 actor-group 0 data 6 actor))
|
|
)
|
|
(if (t9-28
|
|
(if v1-163
|
|
(-> v1-163 extra process)
|
|
)
|
|
a1-28
|
|
)
|
|
(go-to-waypoint! arg1 20 #f)
|
|
(go-to-waypoint! arg1 16 #f)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(else
|
|
(go-to-waypoint! arg1 11 #f)
|
|
)
|
|
)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far 'hal2-near-start-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 11
|
|
:nav-mesh-index -1
|
|
:skip-to -1
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(with-pp
|
|
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-0 from) (process->ppointer pp))
|
|
(set! (-> a1-0 num-params) 2)
|
|
(set! (-> a1-0 message) 'request)
|
|
(set! (-> a1-0 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-0 param 1) (the-as uint 12))
|
|
(let ((t9-0 send-event-function)
|
|
(v1-8 (-> arg0 actor-group 0 data 1 actor))
|
|
)
|
|
(t9-0
|
|
(if v1-8
|
|
(-> v1-8 extra process)
|
|
)
|
|
a1-0
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-12 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-12 bytes 5) 1)
|
|
(set! (-> v1-12 bytes 6) 2)
|
|
(set! (-> v1-12 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-12) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(with-pp
|
|
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-1 from) (process->ppointer pp))
|
|
(set! (-> a1-1 num-params) 1)
|
|
(set! (-> a1-1 message) 'query)
|
|
(set! (-> a1-1 param 0) (the-as uint 'beaten))
|
|
(let ((t9-0 send-event-function)
|
|
(v1-7 (-> arg1 actor-group 0 data 6 actor))
|
|
)
|
|
(b!
|
|
(not (t9-0
|
|
(if v1-7
|
|
(-> v1-7 extra process)
|
|
)
|
|
a1-1
|
|
)
|
|
)
|
|
cfg-6
|
|
:delay (empty-form)
|
|
)
|
|
)
|
|
)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 20 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
(let ((v0-4 #t))
|
|
(b! #t cfg-17 :delay (nop!))
|
|
(label cfg-6)
|
|
(set! v0-4
|
|
(when (and (not (speech-playing? arg1 12)) (let ((a1-6 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-6 from) (process->ppointer pp))
|
|
(set! (-> a1-6 num-params) 1)
|
|
(set! (-> a1-6 message) 'query)
|
|
(set! (-> a1-6 param 0) (the-as uint 'hostile))
|
|
(let ((t9-5 send-event-function)
|
|
(v1-27 (-> arg1 actor-group 0 data 6 actor))
|
|
)
|
|
(and (t9-5
|
|
(if v1-27
|
|
(-> v1-27 extra process)
|
|
)
|
|
a1-6
|
|
)
|
|
(hal-sewer-method-227 arg1)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(stop-speech arg1 (the-as uint 0) #f)
|
|
(play-speech arg1 12)
|
|
(play-speech arg1 13)
|
|
(play-speech arg1 14)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 16 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
(label cfg-17)
|
|
v0-4
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far 'hal2-below-elevator-a-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 16
|
|
:nav-mesh-index -1
|
|
:skip-to -1
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(with-pp
|
|
(set-vector! (-> arg0 test-plane) -1.0 0.0 0.0 4870144.0)
|
|
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-0 from) (process->ppointer pp))
|
|
(set! (-> a1-0 num-params) 2)
|
|
(set! (-> a1-0 message) 'request)
|
|
(set! (-> a1-0 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-0 param 1) (the-as uint 16))
|
|
(let ((t9-0 send-event-function)
|
|
(v1-9 (-> arg0 actor-group 0 data 1 actor))
|
|
)
|
|
(t9-0
|
|
(if v1-9
|
|
(-> v1-9 extra process)
|
|
)
|
|
a1-0
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-1 from) (process->ppointer pp))
|
|
(set! (-> a1-1 num-params) 2)
|
|
(set! (-> a1-1 message) 'request)
|
|
(set! (-> a1-1 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-1 param 1) (the-as uint 16))
|
|
(let ((t9-1 send-event-function)
|
|
(v1-20 (-> arg0 actor-group 0 data 3 actor))
|
|
)
|
|
(t9-1
|
|
(if v1-20
|
|
(-> v1-20 extra process)
|
|
)
|
|
a1-1
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-2 from) (process->ppointer pp))
|
|
(set! (-> a1-2 num-params) 2)
|
|
(set! (-> a1-2 message) 'request)
|
|
(set! (-> a1-2 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-2 param 1) (the-as uint 16))
|
|
(let ((t9-2 send-event-function)
|
|
(v1-31 (-> arg0 actor-group 0 data 2 actor))
|
|
)
|
|
(t9-2
|
|
(if v1-31
|
|
(-> v1-31 extra process)
|
|
)
|
|
a1-2
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-35 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-35 bytes 5) 1)
|
|
(set! (-> v1-35 bytes 6) 2)
|
|
(set! (-> v1-35 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-35) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(with-pp
|
|
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-1 from) (process->ppointer pp))
|
|
(set! (-> a1-1 num-params) 1)
|
|
(set! (-> a1-1 message) 'query)
|
|
(set! (-> a1-1 param 0) (the-as uint 'beaten))
|
|
(let ((t9-0 send-event-function)
|
|
(v1-7 (-> arg1 actor-group 0 data 6 actor))
|
|
)
|
|
(when (t9-0
|
|
(if v1-7
|
|
(-> v1-7 extra process)
|
|
)
|
|
a1-1
|
|
)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 20 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
(return (the-as symbol #t))
|
|
)
|
|
)
|
|
)
|
|
(let* ((v1-22 (-> arg1 actor-group 0 data 7 actor))
|
|
(a0-6 (if v1-22
|
|
(-> v1-22 extra process)
|
|
)
|
|
)
|
|
(v1-27 (-> arg1 actor-group 0 data 9 actor))
|
|
(s4-0 (if v1-27
|
|
(-> v1-27 extra process)
|
|
)
|
|
)
|
|
(v1-32 (-> arg1 actor-group 0 data 8 actor))
|
|
(s5-0 (if v1-32
|
|
(-> v1-32 extra process)
|
|
)
|
|
)
|
|
)
|
|
(the-as
|
|
symbol
|
|
(when (and (or (not a0-6)
|
|
(>= (vector4-dot (get-trans (the-as process-focusable a0-6) 0) (the-as vector (-> arg1 test-plane))) 0.0)
|
|
)
|
|
(or (not s4-0)
|
|
(>= (vector4-dot (get-trans (the-as process-focusable s4-0) 0) (the-as vector (-> arg1 test-plane))) 0.0)
|
|
)
|
|
(or (not s5-0)
|
|
(>= (vector4-dot (get-trans (the-as process-focusable s5-0) 0) (the-as vector (-> arg1 test-plane))) 0.0)
|
|
)
|
|
)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 17 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far 'hal2-below-elevator-a-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 17
|
|
:nav-mesh-index -1
|
|
:skip-to -1
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(with-pp
|
|
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-0 from) (process->ppointer pp))
|
|
(set! (-> a1-0 num-params) 2)
|
|
(set! (-> a1-0 message) 'request)
|
|
(set! (-> a1-0 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-0 param 1) (the-as uint 17))
|
|
(let ((t9-0 send-event-function)
|
|
(v1-8 (-> arg0 actor-group 0 data 1 actor))
|
|
)
|
|
(t9-0
|
|
(if v1-8
|
|
(-> v1-8 extra process)
|
|
)
|
|
a1-0
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-1 from) (process->ppointer pp))
|
|
(set! (-> a1-1 num-params) 2)
|
|
(set! (-> a1-1 message) 'request)
|
|
(set! (-> a1-1 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-1 param 1) (the-as uint 17))
|
|
(let ((t9-1 send-event-function)
|
|
(v1-19 (-> arg0 actor-group 0 data 3 actor))
|
|
)
|
|
(t9-1
|
|
(if v1-19
|
|
(-> v1-19 extra process)
|
|
)
|
|
a1-1
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-2 from) (process->ppointer pp))
|
|
(set! (-> a1-2 num-params) 2)
|
|
(set! (-> a1-2 message) 'request)
|
|
(set! (-> a1-2 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-2 param 1) (the-as uint 17))
|
|
(let ((t9-2 send-event-function)
|
|
(v1-30 (-> arg0 actor-group 0 data 2 actor))
|
|
)
|
|
(t9-2
|
|
(if v1-30
|
|
(-> v1-30 extra process)
|
|
)
|
|
a1-2
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-34 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-34 bytes 5) 1)
|
|
(set! (-> v1-34 bytes 6) 2)
|
|
(set! (-> v1-34 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-34) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer)) (with-pp
|
|
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-1 from) (process->ppointer pp))
|
|
(set! (-> a1-1 num-params) 1)
|
|
(set! (-> a1-1 message) 'query)
|
|
(set! (-> a1-1 param 0) (the-as uint 'beaten))
|
|
(let ((t9-0 send-event-function)
|
|
(v1-7 (-> arg1 actor-group 0 data 6 actor))
|
|
)
|
|
(when (t9-0
|
|
(if v1-7
|
|
(-> v1-7 extra process)
|
|
)
|
|
a1-1
|
|
)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 20 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far 'hal2-below-elevator-a-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 20
|
|
:nav-mesh-index -1
|
|
:skip-to -1
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(with-pp
|
|
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-0 from) (process->ppointer pp))
|
|
(set! (-> a1-0 num-params) 2)
|
|
(set! (-> a1-0 message) 'request)
|
|
(set! (-> a1-0 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-0 param 1) (the-as uint 20))
|
|
(let ((t9-0 send-event-function)
|
|
(v1-8 (-> arg0 actor-group 0 data 1 actor))
|
|
)
|
|
(t9-0
|
|
(if v1-8
|
|
(-> v1-8 extra process)
|
|
)
|
|
a1-0
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-1 from) (process->ppointer pp))
|
|
(set! (-> a1-1 num-params) 2)
|
|
(set! (-> a1-1 message) 'request)
|
|
(set! (-> a1-1 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-1 param 1) (the-as uint 20))
|
|
(let ((t9-1 send-event-function)
|
|
(v1-19 (-> arg0 actor-group 0 data 3 actor))
|
|
)
|
|
(t9-1
|
|
(if v1-19
|
|
(-> v1-19 extra process)
|
|
)
|
|
a1-1
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-2 from) (process->ppointer pp))
|
|
(set! (-> a1-2 num-params) 2)
|
|
(set! (-> a1-2 message) 'request)
|
|
(set! (-> a1-2 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-2 param 1) (the-as uint 20))
|
|
(let ((t9-2 send-event-function)
|
|
(v1-30 (-> arg0 actor-group 0 data 2 actor))
|
|
)
|
|
(t9-2
|
|
(if v1-30
|
|
(-> v1-30 extra process)
|
|
)
|
|
a1-2
|
|
)
|
|
)
|
|
)
|
|
(let ((a0-7 (-> arg0 actor-group 0 data 4 actor)))
|
|
(if a0-7
|
|
(toggle-status (the-as entity-actor a0-7) (entity-perm-status no-kill) #f)
|
|
)
|
|
)
|
|
(let ((a0-8 (-> arg0 actor-group 0 data 11 actor)))
|
|
(if a0-8
|
|
(toggle-status (the-as entity-actor a0-8) (entity-perm-status no-kill) #t)
|
|
)
|
|
)
|
|
(let ((v1-44 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-44 bytes 5) 1)
|
|
(set! (-> v1-44 bytes 6) 2)
|
|
(set! (-> v1-44 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-44) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(when (not (channel-active? arg1 (gui-channel none)))
|
|
(cond
|
|
((speech-playing? arg1 12)
|
|
(if (not (speech-playing? arg1 22))
|
|
(play-speech arg1 22)
|
|
)
|
|
)
|
|
(else
|
|
(if (and (not (speech-playing? arg1 21)) (let* ((a0-6 arg1)
|
|
(t9-5 (method-of-object a0-6 hal-sewer-method-230))
|
|
(v1-17 (-> arg1 actor-group 0 data 1 actor))
|
|
)
|
|
(t9-5
|
|
a0-6
|
|
(the-as process-focusable (if v1-17
|
|
(-> v1-17 extra process)
|
|
)
|
|
)
|
|
*target*
|
|
)
|
|
)
|
|
)
|
|
(play-speech arg1 21)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(let* ((v1-25 (-> arg1 actor-group 0 data 1 actor))
|
|
(a0-8 (if v1-25
|
|
(-> v1-25 extra process)
|
|
)
|
|
)
|
|
)
|
|
(when (or (not a0-8) (>= (the-as int (send-event a0-8 'query 'waypoint)) 20))
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 21 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far 'hal2-below-elevator-a-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 21
|
|
:nav-mesh-index -1
|
|
:skip-to -1
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-1 bytes 5) 1)
|
|
(set! (-> v1-1 bytes 6) 2)
|
|
(set! (-> v1-1 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-1) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(local-vars (v1-40 int))
|
|
(with-pp
|
|
(cond
|
|
((speech-playing? arg1 23)
|
|
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-2 from) (process->ppointer pp))
|
|
(set! (-> a1-2 num-params) 1)
|
|
(set! (-> a1-2 message) 'query)
|
|
(set! (-> a1-2 param 0) (the-as uint 'beaten))
|
|
(let ((t9-1 send-event-function)
|
|
(v1-9 (-> arg1 actor-group 0 data 10 actor))
|
|
)
|
|
(when (t9-1
|
|
(if v1-9
|
|
(-> v1-9 extra process)
|
|
)
|
|
a1-2
|
|
)
|
|
(cond
|
|
((or (speech-playing? arg1 24) (speech-playing? arg1 77))
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 23 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
(else
|
|
(when (not (channel-active? arg1 (gui-channel none)))
|
|
(cond
|
|
((zero? (rnd-int-count arg1 2))
|
|
(play-speech arg1 24)
|
|
(play-speech arg1 25)
|
|
(play-speech arg1 26)
|
|
(play-speech arg1 27)
|
|
)
|
|
((begin (play-speech arg1 77) (play-speech arg1 78) (set! v1-40 (rnd-int-count arg1 4)) (zero? v1-40))
|
|
(play-speech arg1 79)
|
|
)
|
|
((= v1-40 1)
|
|
(play-speech arg1 80)
|
|
)
|
|
((= v1-40 2)
|
|
(play-speech arg1 68)
|
|
)
|
|
(else
|
|
(play-speech arg1 81)
|
|
)
|
|
)
|
|
)
|
|
#f
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(else
|
|
(when (not (channel-active? arg1 (gui-channel none)))
|
|
(play-speech arg1 23)
|
|
(let ((a1-23 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-23 from) (process->ppointer pp))
|
|
(set! (-> a1-23 num-params) 0)
|
|
(set! (-> a1-23 message) 'trigger)
|
|
(let ((t9-22 send-event-function)
|
|
(v1-58 (-> arg1 actor-group 0 data 10 actor))
|
|
)
|
|
(t9-22
|
|
(if v1-58
|
|
(-> v1-58 extra process)
|
|
)
|
|
a1-23
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-24 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-24 from) (process->ppointer pp))
|
|
(set! (-> a1-24 num-params) 2)
|
|
(set! (-> a1-24 message) 'request)
|
|
(set! (-> a1-24 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-24 param 1) (the-as uint 22))
|
|
(let ((t9-23 send-event-function)
|
|
(v1-69 (-> arg1 actor-group 0 data 1 actor))
|
|
)
|
|
(t9-23
|
|
(if v1-69
|
|
(-> v1-69 extra process)
|
|
)
|
|
a1-24
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-25 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-25 from) (process->ppointer pp))
|
|
(set! (-> a1-25 num-params) 2)
|
|
(set! (-> a1-25 message) 'request)
|
|
(set! (-> a1-25 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-25 param 1) (the-as uint 22))
|
|
(let ((t9-24 send-event-function)
|
|
(v1-80 (-> arg1 actor-group 0 data 3 actor))
|
|
)
|
|
(t9-24
|
|
(if v1-80
|
|
(-> v1-80 extra process)
|
|
)
|
|
a1-25
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-26 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-26 from) (process->ppointer pp))
|
|
(set! (-> a1-26 num-params) 2)
|
|
(set! (-> a1-26 message) 'request)
|
|
(set! (-> a1-26 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-26 param 1) (the-as uint 22))
|
|
(let ((t9-25 send-event-function)
|
|
(v1-91 (-> arg1 actor-group 0 data 2 actor))
|
|
)
|
|
(t9-25
|
|
(if v1-91
|
|
(-> v1-91 extra process)
|
|
)
|
|
a1-26
|
|
)
|
|
)
|
|
)
|
|
#f
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far #f
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 23
|
|
:nav-mesh-index -1
|
|
:skip-to 29
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(with-pp
|
|
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-0 from) (process->ppointer pp))
|
|
(set! (-> a1-0 num-params) 2)
|
|
(set! (-> a1-0 message) 'request)
|
|
(set! (-> a1-0 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-0 param 1) (the-as uint 23))
|
|
(let ((t9-0 send-event-function)
|
|
(v1-8 (-> arg0 actor-group 0 data 1 actor))
|
|
)
|
|
(t9-0
|
|
(if v1-8
|
|
(-> v1-8 extra process)
|
|
)
|
|
a1-0
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-1 from) (process->ppointer pp))
|
|
(set! (-> a1-1 num-params) 2)
|
|
(set! (-> a1-1 message) 'request)
|
|
(set! (-> a1-1 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-1 param 1) (the-as uint 23))
|
|
(let ((t9-1 send-event-function)
|
|
(v1-19 (-> arg0 actor-group 0 data 3 actor))
|
|
)
|
|
(t9-1
|
|
(if v1-19
|
|
(-> v1-19 extra process)
|
|
)
|
|
a1-1
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-2 from) (process->ppointer pp))
|
|
(set! (-> a1-2 num-params) 2)
|
|
(set! (-> a1-2 message) 'request)
|
|
(set! (-> a1-2 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-2 param 1) (the-as uint 23))
|
|
(let ((t9-2 send-event-function)
|
|
(v1-30 (-> arg0 actor-group 0 data 2 actor))
|
|
)
|
|
(t9-2
|
|
(if v1-30
|
|
(-> v1-30 extra process)
|
|
)
|
|
a1-2
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-34 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-34 bytes 5) 1)
|
|
(set! (-> v1-34 bytes 6) 2)
|
|
(set! (-> v1-34 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-34) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer)) (cond
|
|
((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)
|
|
#t
|
|
)
|
|
(else
|
|
(set-time! (-> arg1 waypoint-time0))
|
|
#f
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here (lambda ((arg0 hal-sewer))
|
|
(ai-task-control-method-12 (-> arg0 ai-ctrl) arg0)
|
|
(send-event arg0 'move-trans (-> arg0 hal2-course spots 2))
|
|
(send-event *target* 'continue (get-continue-by-name *game-info* "hal2-plant-first-bomb"))
|
|
(let* ((v1-18 (-> arg0 actor-group 0 data 1 actor))
|
|
(s4-0 (if v1-18
|
|
(-> v1-18 extra process)
|
|
)
|
|
)
|
|
(v1-23 (-> arg0 actor-group 0 data 3 actor))
|
|
(s5-1 (if v1-23
|
|
(-> v1-23 extra process)
|
|
)
|
|
)
|
|
(v1-28 (-> arg0 actor-group 0 data 2 actor))
|
|
(gp-1 (if v1-28
|
|
(-> v1-28 extra process)
|
|
)
|
|
)
|
|
)
|
|
(send-event s4-0 'skip)
|
|
(send-event s5-1 'skip)
|
|
(send-event gp-1 'skip)
|
|
(send-event s4-0 'request 'health-meter #t)
|
|
(send-event s5-1 'request 'health-meter #t)
|
|
(send-event gp-1 'request 'health-meter #t)
|
|
)
|
|
(none)
|
|
)
|
|
:check-too-far #f
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 24
|
|
:nav-mesh-index -1
|
|
:skip-to -1
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-1 bytes 5) 1)
|
|
(set! (-> v1-1 bytes 6) 2)
|
|
(set! (-> v1-1 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-1) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(with-pp
|
|
(let ((v1-3 (-> arg1 actor-group 0 data 1 actor)))
|
|
(if v1-3
|
|
(-> v1-3 extra process)
|
|
)
|
|
)
|
|
(let ((v1-8 (-> arg1 actor-group 0 data 3 actor)))
|
|
(if v1-8
|
|
(-> v1-8 extra process)
|
|
)
|
|
)
|
|
(let ((v1-13 (-> arg1 actor-group 0 data 2 actor)))
|
|
(if v1-13
|
|
(-> v1-13 extra process)
|
|
)
|
|
)
|
|
(when (time-elapsed? (-> arg1 waypoint-time0) (seconds 0.4))
|
|
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-1 from) (process->ppointer pp))
|
|
(set! (-> a1-1 num-params) 2)
|
|
(set! (-> a1-1 message) 'request)
|
|
(set! (-> a1-1 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-1 param 1) (the-as uint 24))
|
|
(let ((t9-0 send-event-function)
|
|
(v1-27 (-> arg1 actor-group 0 data 3 actor))
|
|
)
|
|
(t9-0
|
|
(if v1-27
|
|
(-> v1-27 extra process)
|
|
)
|
|
a1-1
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(when (time-elapsed? (-> arg1 waypoint-time0) (seconds 0.75))
|
|
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-2 from) (process->ppointer pp))
|
|
(set! (-> a1-2 num-params) 2)
|
|
(set! (-> a1-2 message) 'request)
|
|
(set! (-> a1-2 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-2 param 1) (the-as uint 24))
|
|
(let ((t9-1 send-event-function)
|
|
(v1-42 (-> arg1 actor-group 0 data 2 actor))
|
|
)
|
|
(t9-1
|
|
(if v1-42
|
|
(-> v1-42 extra process)
|
|
)
|
|
a1-2
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(if (and (not (speech-playing? arg1 28))
|
|
(time-elapsed? (-> arg1 waypoint-time0) (seconds 2))
|
|
(not (channel-active? arg1 (gui-channel none)))
|
|
)
|
|
(play-speech arg1 28)
|
|
)
|
|
(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)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far #f
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 25
|
|
:nav-mesh-index -1
|
|
:skip-to -1
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(with-pp
|
|
(let ((a0-1 (-> arg0 actor-group 0 data 11 actor)))
|
|
(if a0-1
|
|
(toggle-status (the-as entity-actor a0-1) (entity-perm-status no-kill) #f)
|
|
)
|
|
)
|
|
(let ((a0-2 (-> arg0 actor-group 0 data 18 actor)))
|
|
(if a0-2
|
|
(toggle-status (the-as entity-actor a0-2) (entity-perm-status no-kill) #t)
|
|
)
|
|
)
|
|
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-2 from) (process->ppointer pp))
|
|
(set! (-> a1-2 num-params) 1)
|
|
(set! (-> a1-2 message) 'request)
|
|
(set! (-> a1-2 param 0) (the-as uint 'bomb-recoil))
|
|
(let ((t9-2 send-event-function)
|
|
(v1-17 (-> arg0 actor-group 0 data 1 actor))
|
|
)
|
|
(t9-2
|
|
(if v1-17
|
|
(-> v1-17 extra process)
|
|
)
|
|
a1-2
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-3 from) (process->ppointer pp))
|
|
(set! (-> a1-3 num-params) 1)
|
|
(set! (-> a1-3 message) 'request)
|
|
(set! (-> a1-3 param 0) (the-as uint 'bomb-recoil))
|
|
(let ((t9-3 send-event-function)
|
|
(v1-27 (-> arg0 actor-group 0 data 3 actor))
|
|
)
|
|
(t9-3
|
|
(if v1-27
|
|
(-> v1-27 extra process)
|
|
)
|
|
a1-3
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-4 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-4 from) (process->ppointer pp))
|
|
(set! (-> a1-4 num-params) 1)
|
|
(set! (-> a1-4 message) 'request)
|
|
(set! (-> a1-4 param 0) (the-as uint 'bomb-recoil))
|
|
(let ((t9-4 send-event-function)
|
|
(v1-37 (-> arg0 actor-group 0 data 2 actor))
|
|
)
|
|
(t9-4
|
|
(if v1-37
|
|
(-> v1-37 extra process)
|
|
)
|
|
a1-4
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-41 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-41 bytes 5) 1)
|
|
(set! (-> v1-41 bytes 6) 2)
|
|
(set! (-> v1-41 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-41) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(with-pp
|
|
(cond
|
|
((time-elapsed? (-> arg1 waypoint-time0) (seconds 1.5))
|
|
(cond
|
|
((logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
|
|
(when (and (not (speech-playing? arg1 29)) (not (speech-playing? arg1 30)))
|
|
(if (zero? (rnd-int-count arg1 2))
|
|
(play-speech arg1 29)
|
|
(play-speech arg1 30)
|
|
)
|
|
)
|
|
)
|
|
(else
|
|
(when (not (speech-playing? arg1 31))
|
|
(play-speech arg1 31)
|
|
(play-speech arg1 32)
|
|
(play-speech arg1 33)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(else
|
|
(let ((a0-11 *target*))
|
|
(if (and a0-11 (focus-test? a0-11 hit))
|
|
(logior! (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-34 (-> arg1 actor-group 0 data 1 actor)))
|
|
(if v1-34
|
|
(-> v1-34 extra process)
|
|
)
|
|
)
|
|
(let ((v1-39 (-> arg1 actor-group 0 data 3 actor)))
|
|
(if v1-39
|
|
(-> v1-39 extra process)
|
|
)
|
|
)
|
|
(let ((v1-44 (-> arg1 actor-group 0 data 2 actor)))
|
|
(if v1-44
|
|
(-> v1-44 extra process)
|
|
)
|
|
)
|
|
(when (time-elapsed? (-> arg1 waypoint-time0) (seconds 2))
|
|
(let ((a1-10 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-10 from) (process->ppointer pp))
|
|
(set! (-> a1-10 num-params) 2)
|
|
(set! (-> a1-10 message) 'request)
|
|
(set! (-> a1-10 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-10 param 1) (the-as uint 26))
|
|
(let ((t9-9 send-event-function)
|
|
(v1-58 (-> arg1 actor-group 0 data 3 actor))
|
|
)
|
|
(t9-9
|
|
(if v1-58
|
|
(-> v1-58 extra process)
|
|
)
|
|
a1-10
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(when (time-elapsed? (-> arg1 waypoint-time0) (seconds 2.5))
|
|
(let ((a1-11 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-11 from) (process->ppointer pp))
|
|
(set! (-> a1-11 num-params) 2)
|
|
(set! (-> a1-11 message) 'request)
|
|
(set! (-> a1-11 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-11 param 1) (the-as uint 26))
|
|
(let ((t9-10 send-event-function)
|
|
(v1-73 (-> arg1 actor-group 0 data 2 actor))
|
|
)
|
|
(t9-10
|
|
(if v1-73
|
|
(-> v1-73 extra process)
|
|
)
|
|
a1-11
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(when (time-elapsed? (-> arg1 waypoint-time0) (seconds 3.5))
|
|
(let ((a1-12 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-12 from) (process->ppointer pp))
|
|
(set! (-> a1-12 num-params) 2)
|
|
(set! (-> a1-12 message) 'request)
|
|
(set! (-> a1-12 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-12 param 1) (the-as uint 26))
|
|
(let ((t9-11 send-event-function)
|
|
(v1-87 (-> arg1 actor-group 0 data 1 actor))
|
|
)
|
|
(t9-11
|
|
(if v1-87
|
|
(-> v1-87 extra process)
|
|
)
|
|
a1-12
|
|
)
|
|
)
|
|
)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 26 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far #f
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 26
|
|
:nav-mesh-index -1
|
|
:skip-to -1
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(set-vector! (-> arg0 test-plane) 0.29 0.0 -0.957 194109.44)
|
|
(let ((v1-2 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-2 bytes 5) 1)
|
|
(set! (-> v1-2 bytes 6) 3)
|
|
(set! (-> v1-2 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-2) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(let* ((s5-0 arg1)
|
|
(s4-0 (method-of-object s5-0 hal-sewer-method-230))
|
|
(v1-4 (-> arg1 actor-group 0 data 1 actor))
|
|
(s3-0 (if v1-4
|
|
(-> v1-4 extra process)
|
|
)
|
|
)
|
|
(v1-9 (-> arg1 actor-group 0 data 13 actor))
|
|
)
|
|
(when (or (s4-0 s5-0 (the-as process-focusable s3-0) (the-as process-focusable (when v1-9
|
|
(let ((s2-0 (-> v1-9 extra process)))
|
|
(if (type? s2-0 process-focusable)
|
|
s2-0
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(>= (vector4-dot (math-camera-pos) (the-as vector (-> arg1 test-plane))) 0.0)
|
|
)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 27 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far 'hal2-default-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 27
|
|
:nav-mesh-index -1
|
|
:skip-to -1
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(with-pp
|
|
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-0 from) (process->ppointer pp))
|
|
(set! (-> a1-0 num-params) 0)
|
|
(set! (-> a1-0 message) 'cue-chase)
|
|
(let ((t9-0 send-event-function)
|
|
(v1-5 (-> arg0 actor-group 0 data 14 actor))
|
|
)
|
|
(t9-0
|
|
(if v1-5
|
|
(-> v1-5 extra process)
|
|
)
|
|
a1-0
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-1 from) (process->ppointer pp))
|
|
(set! (-> a1-1 num-params) 2)
|
|
(set! (-> a1-1 message) 'request)
|
|
(set! (-> a1-1 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-1 param 1) (the-as uint 27))
|
|
(let ((t9-1 send-event-function)
|
|
(v1-16 (-> arg0 actor-group 0 data 1 actor))
|
|
)
|
|
(t9-1
|
|
(if v1-16
|
|
(-> v1-16 extra process)
|
|
)
|
|
a1-1
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-2 from) (process->ppointer pp))
|
|
(set! (-> a1-2 num-params) 2)
|
|
(set! (-> a1-2 message) 'request)
|
|
(set! (-> a1-2 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-2 param 1) (the-as uint 27))
|
|
(let ((t9-2 send-event-function)
|
|
(v1-27 (-> arg0 actor-group 0 data 3 actor))
|
|
)
|
|
(t9-2
|
|
(if v1-27
|
|
(-> v1-27 extra process)
|
|
)
|
|
a1-2
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-3 from) (process->ppointer pp))
|
|
(set! (-> a1-3 num-params) 2)
|
|
(set! (-> a1-3 message) 'request)
|
|
(set! (-> a1-3 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-3 param 1) (the-as uint 27))
|
|
(let ((t9-3 send-event-function)
|
|
(v1-38 (-> arg0 actor-group 0 data 2 actor))
|
|
)
|
|
(t9-3
|
|
(if v1-38
|
|
(-> v1-38 extra process)
|
|
)
|
|
a1-3
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-42 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-42 bytes 5) 1)
|
|
(set! (-> v1-42 bytes 6) 3)
|
|
(set! (-> v1-42 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-42) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(with-pp
|
|
(hal-sewer-method-228 arg1)
|
|
(when (not (channel-active? arg1 (gui-channel none)))
|
|
(cond
|
|
((not (speech-playing? arg1 34))
|
|
(let* ((s5-0 arg1)
|
|
(s4-0 (method-of-object s5-0 hal-sewer-method-230))
|
|
(v1-12 (-> arg1 actor-group 0 data 1 actor))
|
|
(s3-0 (if v1-12
|
|
(-> v1-12 extra process)
|
|
)
|
|
)
|
|
(v1-17 (-> arg1 actor-group 0 data 13 actor))
|
|
)
|
|
(if (s4-0
|
|
s5-0
|
|
(the-as process-focusable s3-0)
|
|
(the-as process-focusable (when v1-17
|
|
(let ((s2-0 (-> v1-17 extra process)))
|
|
(if (type? s2-0 process-focusable)
|
|
s2-0
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(play-speech arg1 34)
|
|
)
|
|
)
|
|
)
|
|
((and (not (speech-playing? arg1 38))
|
|
(< (vector4-dot (math-camera-pos) (the-as vector (-> arg1 test-plane))) 0.0)
|
|
)
|
|
(play-speech arg1 38)
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-8 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-8 from) (process->ppointer pp))
|
|
(set! (-> a1-8 num-params) 1)
|
|
(set! (-> a1-8 message) 'query)
|
|
(set! (-> a1-8 param 0) (the-as uint 'beaten))
|
|
(let ((t9-9 send-event-function)
|
|
(v1-38 (-> arg1 actor-group 0 data 12 actor))
|
|
)
|
|
(cond
|
|
((t9-9
|
|
(if v1-38
|
|
(-> v1-38 extra process)
|
|
)
|
|
a1-8
|
|
)
|
|
(when (not (logtest? (bot-flags bf22 bf23) (-> arg1 bot-flags)))
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 29 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
((and (time-elapsed? (-> arg1 waypoint-time0) (seconds 4))
|
|
(>= (vector4-dot (math-camera-pos) (the-as vector (-> arg1 test-plane))) 0.0)
|
|
)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 28 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far 'hal2-default-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 28
|
|
:nav-mesh-index -1
|
|
:skip-to -1
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(with-pp
|
|
(play-speech arg0 35)
|
|
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-1 from) (process->ppointer pp))
|
|
(set! (-> a1-1 num-params) 0)
|
|
(set! (-> a1-1 message) 'cue-chase)
|
|
(let ((t9-1 send-event-function)
|
|
(v1-7 (-> arg0 actor-group 0 data 16 actor))
|
|
)
|
|
(t9-1
|
|
(if v1-7
|
|
(-> v1-7 extra process)
|
|
)
|
|
a1-1
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-11 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-11 bytes 5) 1)
|
|
(set! (-> v1-11 bytes 6) 3)
|
|
(set! (-> v1-11 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-11) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(with-pp
|
|
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-1 from) (process->ppointer pp))
|
|
(set! (-> a1-1 num-params) 1)
|
|
(set! (-> a1-1 message) 'query)
|
|
(set! (-> a1-1 param 0) (the-as uint 'beaten))
|
|
(let* ((t9-0 send-event-function)
|
|
(v1-7 (-> arg1 actor-group 0 data 12 actor))
|
|
(s5-0 (t9-0
|
|
(if v1-7
|
|
(-> v1-7 extra process)
|
|
)
|
|
a1-1
|
|
)
|
|
)
|
|
(a1-2 (new 'stack-no-clear 'event-message-block))
|
|
)
|
|
(set! (-> a1-2 from) (process->ppointer pp))
|
|
(set! (-> a1-2 num-params) 1)
|
|
(set! (-> a1-2 message) 'query)
|
|
(set! (-> a1-2 param 0) (the-as uint 'beaten))
|
|
(let* ((t9-1 send-event-function)
|
|
(v1-16 (-> arg1 actor-group 0 data 15 actor))
|
|
(s4-0 (t9-1
|
|
(if v1-16
|
|
(-> v1-16 extra process)
|
|
)
|
|
a1-2
|
|
)
|
|
)
|
|
)
|
|
(when (not (channel-active? arg1 (gui-channel none)))
|
|
(cond
|
|
((and (not (speech-playing? arg1 36)) (not s5-0) (not s4-0))
|
|
(play-speech arg1 36)
|
|
)
|
|
((not (speech-playing? arg1 37))
|
|
(play-speech arg1 37)
|
|
)
|
|
)
|
|
)
|
|
(hal-sewer-method-228 arg1)
|
|
(when (time-elapsed? (-> arg1 waypoint-time0) (seconds 1.75))
|
|
(let ((a1-8 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-8 from) (process->ppointer pp))
|
|
(set! (-> a1-8 num-params) 2)
|
|
(set! (-> a1-8 message) 'request)
|
|
(set! (-> a1-8 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-8 param 1) (the-as uint 28))
|
|
(let ((t9-8 send-event-function)
|
|
(v1-46 (-> arg1 actor-group 0 data 1 actor))
|
|
)
|
|
(t9-8
|
|
(if v1-46
|
|
(-> v1-46 extra process)
|
|
)
|
|
a1-8
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(when (time-elapsed? (-> arg1 waypoint-time0) (seconds 2.75))
|
|
(let ((a1-9 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-9 from) (process->ppointer pp))
|
|
(set! (-> a1-9 num-params) 2)
|
|
(set! (-> a1-9 message) 'request)
|
|
(set! (-> a1-9 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-9 param 1) (the-as uint 28))
|
|
(let ((t9-9 send-event-function)
|
|
(v1-61 (-> arg1 actor-group 0 data 3 actor))
|
|
)
|
|
(t9-9
|
|
(if v1-61
|
|
(-> v1-61 extra process)
|
|
)
|
|
a1-9
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(when (time-elapsed? (-> arg1 waypoint-time0) (seconds 3.5))
|
|
(let ((a1-10 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-10 from) (process->ppointer pp))
|
|
(set! (-> a1-10 num-params) 2)
|
|
(set! (-> a1-10 message) 'request)
|
|
(set! (-> a1-10 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-10 param 1) (the-as uint 28))
|
|
(let ((t9-10 send-event-function)
|
|
(v1-76 (-> arg1 actor-group 0 data 2 actor))
|
|
)
|
|
(t9-10
|
|
(if v1-76
|
|
(-> v1-76 extra process)
|
|
)
|
|
a1-10
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(when (and s5-0 s4-0 (not (logtest? (bot-flags bf22 bf23) (-> arg1 bot-flags))))
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 29 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far 'hal2-default-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 29
|
|
:nav-mesh-index -1
|
|
:skip-to 48
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(with-pp
|
|
(play-speech arg0 39)
|
|
(play-speech arg0 40)
|
|
(play-speech arg0 41)
|
|
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-3 from) (process->ppointer pp))
|
|
(set! (-> a1-3 num-params) 2)
|
|
(set! (-> a1-3 message) 'request)
|
|
(set! (-> a1-3 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-3 param 1) (the-as uint 34))
|
|
(let ((t9-3 send-event-function)
|
|
(v1-14 (-> arg0 actor-group 0 data 1 actor))
|
|
)
|
|
(t9-3
|
|
(if v1-14
|
|
(-> v1-14 extra process)
|
|
)
|
|
a1-3
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-18 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-18 bytes 5) 1)
|
|
(set! (-> v1-18 bytes 6) 3)
|
|
(set! (-> v1-18 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-18) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(local-vars (a0-10 process))
|
|
(let* ((v1-3 (-> arg1 actor-group 0 data 1 actor))
|
|
(s5-0 (if v1-3
|
|
(-> v1-3 extra process)
|
|
)
|
|
)
|
|
(v1-8 (-> arg1 actor-group 0 data 3 actor))
|
|
(s4-0 (if v1-8
|
|
(-> v1-8 extra process)
|
|
)
|
|
)
|
|
(v1-13 (-> arg1 actor-group 0 data 2 actor))
|
|
(s3-0 (if v1-13
|
|
(-> v1-13 extra process)
|
|
)
|
|
)
|
|
)
|
|
(if (time-elapsed? (-> arg1 waypoint-time0) (seconds 1.75))
|
|
(send-event s4-0 'request 'waypoint 34)
|
|
)
|
|
(if (time-elapsed? (-> arg1 waypoint-time0) (seconds 2.25))
|
|
(send-event s3-0 'request 'waypoint 34)
|
|
)
|
|
(when (and (not (channel-active? arg1 (gui-channel none)))
|
|
(and (not (speech-playing? arg1 42))
|
|
(not (speech-playing? arg1 43))
|
|
(begin
|
|
(let ((v1-45 (-> arg1 actor-group 0 data 1 actor)))
|
|
(set! a0-10 (if v1-45
|
|
(-> v1-45 extra process)
|
|
)
|
|
)
|
|
)
|
|
a0-10
|
|
)
|
|
(>= (the-as int (send-event a0-10 'query 'waypoint)) 33)
|
|
)
|
|
)
|
|
(if (zero? (rnd-int-count arg1 2))
|
|
(play-speech arg1 42)
|
|
(play-speech arg1 43)
|
|
)
|
|
(play-speech arg1 44)
|
|
(play-speech arg1 45)
|
|
)
|
|
(let ((a0-16 s5-0))
|
|
(when (and (and a0-16 (= (send-event a0-16 'query 'waypoint) 34))
|
|
(let ((a0-18 s4-0))
|
|
(and a0-18 (= (send-event a0-18 'query 'waypoint) 34))
|
|
)
|
|
(let ((a0-20 s3-0))
|
|
(and (and a0-20 (= (send-event a0-20 'query 'waypoint) 34))
|
|
(outside-spot-radius? (the-as bot s5-0) (the-as bot-spot #f) (the-as vector #f) #f)
|
|
(outside-spot-radius? (the-as bot s4-0) (the-as bot-spot #f) (the-as vector #f) #f)
|
|
(outside-spot-radius? (the-as bot s3-0) (the-as bot-spot #f) (the-as vector #f) #f)
|
|
)
|
|
)
|
|
)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 35 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here (lambda ((arg0 hal-sewer))
|
|
(ai-task-control-method-12 (-> arg0 ai-ctrl) arg0)
|
|
(send-event arg0 'move-trans (-> arg0 hal2-course spots 3))
|
|
(send-event *target* 'continue (get-continue-by-name *game-info* "hal2-go-elevator2"))
|
|
(let* ((v1-18 (-> arg0 actor-group 0 data 1 actor))
|
|
(a0-7 (if v1-18
|
|
(-> v1-18 extra process)
|
|
)
|
|
)
|
|
(v1-23 (-> arg0 actor-group 0 data 3 actor))
|
|
(s5-1 (if v1-23
|
|
(-> v1-23 extra process)
|
|
)
|
|
)
|
|
(v1-28 (-> arg0 actor-group 0 data 2 actor))
|
|
(gp-1 (if v1-28
|
|
(-> v1-28 extra process)
|
|
)
|
|
)
|
|
)
|
|
(send-event a0-7 'skip)
|
|
(send-event s5-1 'skip)
|
|
(send-event gp-1 'skip)
|
|
)
|
|
(none)
|
|
)
|
|
:check-too-far 'hal2-default-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 35
|
|
:nav-mesh-index -1
|
|
:skip-to 48
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(with-pp
|
|
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-0 from) (process->ppointer pp))
|
|
(set! (-> a1-0 num-params) 2)
|
|
(set! (-> a1-0 message) 'request)
|
|
(set! (-> a1-0 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-0 param 1) (the-as uint 35))
|
|
(let ((t9-0 send-event-function)
|
|
(v1-8 (-> arg0 actor-group 0 data 1 actor))
|
|
)
|
|
(t9-0
|
|
(if v1-8
|
|
(-> v1-8 extra process)
|
|
)
|
|
a1-0
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-1 from) (process->ppointer pp))
|
|
(set! (-> a1-1 num-params) 2)
|
|
(set! (-> a1-1 message) 'request)
|
|
(set! (-> a1-1 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-1 param 1) (the-as uint 35))
|
|
(let ((t9-1 send-event-function)
|
|
(v1-19 (-> arg0 actor-group 0 data 3 actor))
|
|
)
|
|
(t9-1
|
|
(if v1-19
|
|
(-> v1-19 extra process)
|
|
)
|
|
a1-1
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-2 from) (process->ppointer pp))
|
|
(set! (-> a1-2 num-params) 2)
|
|
(set! (-> a1-2 message) 'request)
|
|
(set! (-> a1-2 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-2 param 1) (the-as uint 35))
|
|
(let ((t9-2 send-event-function)
|
|
(v1-30 (-> arg0 actor-group 0 data 2 actor))
|
|
)
|
|
(t9-2
|
|
(if v1-30
|
|
(-> v1-30 extra process)
|
|
)
|
|
a1-2
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-3 from) (process->ppointer pp))
|
|
(set! (-> a1-3 num-params) 1)
|
|
(set! (-> a1-3 message) 'move-to)
|
|
(set! (-> a1-3 param 0) (the-as uint 'bottom))
|
|
(let ((t9-3 send-event-function)
|
|
(v1-40 (-> arg0 actor-group 0 data 18 actor))
|
|
)
|
|
(t9-3
|
|
(if v1-40
|
|
(-> v1-40 extra process)
|
|
)
|
|
a1-3
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-44 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-44 bytes 5) 1)
|
|
(set! (-> v1-44 bytes 6) 3)
|
|
(set! (-> v1-44 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-44) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(with-pp
|
|
(let* ((v1-3 (-> arg1 actor-group 0 data 1 actor))
|
|
(s3-0 (if v1-3
|
|
(-> v1-3 extra process)
|
|
)
|
|
)
|
|
(v1-8 (-> arg1 actor-group 0 data 3 actor))
|
|
(s4-0 (if v1-8
|
|
(-> v1-8 extra process)
|
|
)
|
|
)
|
|
(v1-13 (-> arg1 actor-group 0 data 2 actor))
|
|
(s5-0 (if v1-13
|
|
(-> v1-13 extra process)
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-1 from) (process->ppointer pp))
|
|
(set! (-> a1-1 num-params) 1)
|
|
(set! (-> a1-1 message) 'query)
|
|
(set! (-> a1-1 param 0) (the-as uint 'path-pos?))
|
|
(let ((t9-0 send-event-function)
|
|
(v1-22 (-> arg1 actor-group 0 data 18 actor))
|
|
)
|
|
(cond
|
|
((< (t9-0
|
|
(if v1-22
|
|
(-> v1-22 extra process)
|
|
)
|
|
a1-1
|
|
)
|
|
1.0
|
|
)
|
|
(set-time! (-> arg1 waypoint-time0))
|
|
)
|
|
(else
|
|
(if (and (not (speech-playing? arg1 46)) (not (channel-active? arg1 (gui-channel none))))
|
|
(play-speech arg1 46)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(let ((a0-6 s3-0))
|
|
(if (and (and a0-6 (= (send-event a0-6 'query 'waypoint) 35))
|
|
(time-elapsed? (-> arg1 waypoint-time0) (seconds 0.1))
|
|
)
|
|
(send-event s3-0 'request 'waypoint 37)
|
|
)
|
|
)
|
|
(let ((a0-11 s4-0))
|
|
(if (and (and a0-11 (= (send-event a0-11 'query 'waypoint) 35))
|
|
(time-elapsed? (-> arg1 waypoint-time0) (seconds 0.9))
|
|
)
|
|
(send-event s4-0 'request 'waypoint 37)
|
|
)
|
|
)
|
|
(let ((a0-16 s5-0))
|
|
(if (and (and a0-16 (= (send-event a0-16 'query 'waypoint) 35))
|
|
(time-elapsed? (-> arg1 waypoint-time0) (seconds 0.7))
|
|
)
|
|
(send-event s5-0 'request 'waypoint 37)
|
|
)
|
|
)
|
|
(when (and (or (not s3-0) (>= (the-as int (send-event s3-0 'query 'waypoint)) 37))
|
|
(or (not s4-0) (>= (the-as int (send-event s4-0 'query 'waypoint)) 37))
|
|
(or (not s5-0) (>= (the-as int (send-event s5-0 'query 'waypoint)) 37))
|
|
)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 37 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far #f
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 37
|
|
:nav-mesh-index -1
|
|
:skip-to 48
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-1 bytes 5) 1)
|
|
(set! (-> v1-1 bytes 6) 3)
|
|
(set! (-> v1-1 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-1) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(let* ((v1-3 (-> arg1 actor-group 0 data 1 actor))
|
|
(s3-0 (if v1-3
|
|
(-> v1-3 extra process)
|
|
)
|
|
)
|
|
(v1-8 (-> arg1 actor-group 0 data 3 actor))
|
|
(s4-0 (if v1-8
|
|
(-> v1-8 extra process)
|
|
)
|
|
)
|
|
(v1-13 (-> arg1 actor-group 0 data 2 actor))
|
|
(s5-0 (if v1-13
|
|
(-> v1-13 extra process)
|
|
)
|
|
)
|
|
)
|
|
(when (and (not (speech-playing? arg1 47))
|
|
(not (channel-active? arg1 (gui-channel none)))
|
|
s4-0
|
|
(focus-test? (the-as process-focusable s4-0) touch-water)
|
|
)
|
|
(play-speech arg1 47)
|
|
(play-speech arg1 48)
|
|
)
|
|
(when (or (>= (-> (target-pos 0) x) 5207572.5)
|
|
(>= (-> (the-as process-focusable s3-0) root trans x) 5120000.0)
|
|
(>= (-> (the-as process-focusable s4-0) root trans x) 5120000.0)
|
|
(>= (-> (the-as process-focusable s5-0) root trans x) 5120000.0)
|
|
)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 41 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far 'hal2-default-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 41
|
|
:nav-mesh-index -1
|
|
:skip-to 48
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(with-pp
|
|
(let ((a0-1 (-> arg0 actor-group 0 data 18 actor)))
|
|
(if a0-1
|
|
(toggle-status (the-as entity-actor a0-1) (entity-perm-status no-kill) #f)
|
|
)
|
|
)
|
|
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-1 from) (process->ppointer pp))
|
|
(set! (-> a1-1 num-params) 0)
|
|
(set! (-> a1-1 message) 'cue-chase)
|
|
(let ((t9-1 send-event-function)
|
|
(v1-10 (-> arg0 actor-group 0 data 20 actor))
|
|
)
|
|
(t9-1
|
|
(if v1-10
|
|
(-> v1-10 extra process)
|
|
)
|
|
a1-1
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-14 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-14 bytes 5) 1)
|
|
(set! (-> v1-14 bytes 6) 3)
|
|
(set! (-> v1-14 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-14) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(with-pp
|
|
(if (and (not (speech-playing? arg1 52))
|
|
(speech-playing? arg1 49)
|
|
(not (channel-active? arg1 (gui-channel none)))
|
|
(let ((v1-10 (-> arg1 actor-group 0 data 20 actor)))
|
|
(not (if v1-10
|
|
(-> v1-10 extra process)
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-15 (-> arg1 actor-group 0 data 21 actor)))
|
|
(not (if v1-15
|
|
(-> v1-15 extra process)
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-20 (-> arg1 actor-group 0 data 22 actor)))
|
|
(or (if v1-20
|
|
(-> v1-20 extra process)
|
|
)
|
|
(let ((a0-7 (-> arg1 actor-group 0 data 23 actor)))
|
|
(if a0-7
|
|
(-> a0-7 extra process)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(play-speech arg1 52)
|
|
)
|
|
(cond
|
|
((not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0)))
|
|
(when (time-elapsed? (-> arg1 waypoint-time0) (seconds 0.5))
|
|
(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)
|
|
(set! (-> a1-5 message) 'cue-chase)
|
|
(let ((t9-4 send-event-function)
|
|
(v1-42 (-> arg1 actor-group 0 data 21 actor))
|
|
)
|
|
(t9-4
|
|
(if v1-42
|
|
(-> v1-42 extra process)
|
|
)
|
|
a1-5
|
|
)
|
|
)
|
|
)
|
|
(stop-speech arg1 (the-as uint 0) #f)
|
|
(play-speech arg1 49)
|
|
(play-speech arg1 50)
|
|
(play-speech arg1 51)
|
|
)
|
|
#f
|
|
)
|
|
((not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-1)))
|
|
(when (time-elapsed? (-> arg1 waypoint-time0) (seconds 4))
|
|
(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)
|
|
(set! (-> a1-10 message) 'cue-chase)
|
|
(let ((t9-9 send-event-function)
|
|
(v1-66 (-> arg1 actor-group 0 data 22 actor))
|
|
)
|
|
(t9-9
|
|
(if v1-66
|
|
(-> v1-66 extra process)
|
|
)
|
|
a1-10
|
|
)
|
|
)
|
|
)
|
|
)
|
|
#f
|
|
)
|
|
((not (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-2)))
|
|
(when (time-elapsed? (-> arg1 waypoint-time0) (seconds 5))
|
|
(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)
|
|
(set! (-> a1-11 message) 'cue-chase)
|
|
(let ((t9-10 send-event-function)
|
|
(v1-82 (-> arg1 actor-group 0 data 23 actor))
|
|
)
|
|
(t9-10
|
|
(if v1-82
|
|
(-> v1-82 extra process)
|
|
)
|
|
a1-11
|
|
)
|
|
)
|
|
)
|
|
)
|
|
#f
|
|
)
|
|
(else
|
|
(let ((a1-12 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-12 from) (process->ppointer pp))
|
|
(set! (-> a1-12 num-params) 1)
|
|
(set! (-> a1-12 message) 'query)
|
|
(set! (-> a1-12 param 0) (the-as uint 'beaten))
|
|
(let ((t9-11 send-event-function)
|
|
(v1-92 (-> arg1 actor-group 0 data 19 actor))
|
|
)
|
|
(when (t9-11
|
|
(if v1-92
|
|
(-> v1-92 extra process)
|
|
)
|
|
a1-12
|
|
)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 42 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far 'hal2-default-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 42
|
|
:nav-mesh-index -1
|
|
:skip-to 48
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(with-pp
|
|
(if (zero? (rnd-int-count arg0 2))
|
|
(play-speech arg0 53)
|
|
(play-speech arg0 54)
|
|
)
|
|
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-3 from) (process->ppointer pp))
|
|
(set! (-> a1-3 num-params) 2)
|
|
(set! (-> a1-3 message) 'request)
|
|
(set! (-> a1-3 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-3 param 1) (the-as uint 42))
|
|
(let ((t9-3 send-event-function)
|
|
(v1-14 (-> arg0 actor-group 0 data 1 actor))
|
|
)
|
|
(t9-3
|
|
(if v1-14
|
|
(-> v1-14 extra process)
|
|
)
|
|
a1-3
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-18 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-18 bytes 5) 1)
|
|
(set! (-> v1-18 bytes 6) 3)
|
|
(set! (-> v1-18 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-18) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(let* ((v1-3 (-> arg1 actor-group 0 data 1 actor))
|
|
(s3-0 (if v1-3
|
|
(-> v1-3 extra process)
|
|
)
|
|
)
|
|
(v1-8 (-> arg1 actor-group 0 data 3 actor))
|
|
(s4-0 (if v1-8
|
|
(-> v1-8 extra process)
|
|
)
|
|
)
|
|
(v1-13 (-> arg1 actor-group 0 data 2 actor))
|
|
(s5-0 (if v1-13
|
|
(-> v1-13 extra process)
|
|
)
|
|
)
|
|
)
|
|
(if (time-elapsed? (-> arg1 waypoint-time0) (seconds 0.4))
|
|
(send-event s4-0 'request 'waypoint 42)
|
|
)
|
|
(if (time-elapsed? (-> arg1 waypoint-time0) (seconds 0.7))
|
|
(send-event s5-0 'request 'waypoint 42)
|
|
)
|
|
(cond
|
|
((hal-sewer-method-231 arg1 24)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 44 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
((let ((a0-11 s3-0))
|
|
(or (and (or (not a0-11) (>= (the-as int (send-event a0-11 'query 'waypoint)) 42))
|
|
(outside-spot-radius? (the-as bot s3-0) (the-as bot-spot #f) (the-as vector #f) #f)
|
|
)
|
|
(let ((a0-14 s4-0))
|
|
(and (or (not a0-14) (>= (the-as int (send-event a0-14 'query 'waypoint)) 42))
|
|
(outside-spot-radius? (the-as bot s4-0) (the-as bot-spot #f) (the-as vector #f) #f)
|
|
)
|
|
)
|
|
(let ((a0-17 s5-0))
|
|
(and (or (not a0-17) (>= (the-as int (send-event a0-17 'query 'waypoint)) 42))
|
|
(outside-spot-radius? (the-as bot s5-0) (the-as bot-spot #f) (the-as vector #f) #f)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 43 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far 'hal2-default-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 43
|
|
:nav-mesh-index -1
|
|
:skip-to 48
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(with-pp
|
|
(logclear! (-> arg0 bot-flags) (bot-flags bf24))
|
|
(reset-warn-time! arg0)
|
|
(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)))
|
|
(set! (-> a1-2 from) (process->ppointer pp))
|
|
(set! (-> a1-2 num-params) 0)
|
|
(set! (-> a1-2 message) 'cue-chase)
|
|
(let ((t9-3 send-event-function)
|
|
(v1-17 (-> arg0 actor-group 0 data 24 actor))
|
|
)
|
|
(t9-3
|
|
(if v1-17
|
|
(-> v1-17 extra process)
|
|
)
|
|
a1-2
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-21 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-21 bytes 5) 1)
|
|
(set! (-> v1-21 bytes 6) 3)
|
|
(set! (-> v1-21 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-21) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(when (hal-sewer-method-231 arg1 24)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 44 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
(return #t)
|
|
)
|
|
(cond
|
|
((logtest? (-> arg1 bot-task-bits) (bot-task-bits botbits-2 botbits-4))
|
|
(logclear! (-> arg1 bot-flags) (bot-flags bf24))
|
|
(reset-warn-time! arg1)
|
|
(set-time! (-> arg1 waypoint-time0))
|
|
(when (not (channel-active? arg1 (gui-channel none)))
|
|
(let ((v1-22 *target*))
|
|
(when (and v1-22 (focus-test? v1-22 in-air) (not (logtest? (-> v1-22 focus-status) (focus-status hit))))
|
|
(cond
|
|
((not (speech-playing? arg1 58))
|
|
(play-speech arg1 58)
|
|
)
|
|
((not (speech-playing? arg1 59))
|
|
(play-speech arg1 59)
|
|
)
|
|
((not (speech-playing? arg1 60))
|
|
(play-speech arg1 60)
|
|
(play-speech arg1 61)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
((channel-active? arg1 (gui-channel none))
|
|
(reset-warn-time! arg1)
|
|
(set-time! (-> arg1 waypoint-time0))
|
|
)
|
|
(else
|
|
(when (time-elapsed? (-> arg1 waypoint-time0) (seconds 11))
|
|
(set-time! (-> arg1 waypoint-time0))
|
|
(let ((v1-55 (-> arg1 sentries1-reminder-index))
|
|
(a1-14 (-> arg1 hal2-course sentries1-reminders))
|
|
)
|
|
(cond
|
|
((< v1-55 (-> a1-14 length))
|
|
(set! (-> arg1 sentries1-reminder-index) (+ v1-55 1))
|
|
(play-speech arg1 (-> a1-14 v1-55))
|
|
)
|
|
(else
|
|
(logior! (-> arg1 bot-flags) (bot-flags bf24))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
#f
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far 'hal2-force-fail-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 44
|
|
:nav-mesh-index -1
|
|
:skip-to 48
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(with-pp
|
|
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-0 from) (process->ppointer pp))
|
|
(set! (-> a1-0 num-params) 1)
|
|
(set! (-> a1-0 message) 'request)
|
|
(set! (-> a1-0 param 0) (the-as uint 'replace-bomb))
|
|
(let ((t9-0 send-event-function)
|
|
(v1-7 (-> arg0 actor-group 0 data 1 actor))
|
|
)
|
|
(t9-0
|
|
(if v1-7
|
|
(-> v1-7 extra process)
|
|
)
|
|
a1-0
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-1 from) (process->ppointer pp))
|
|
(set! (-> a1-1 num-params) 0)
|
|
(set! (-> a1-1 message) 'cue-chase)
|
|
(let ((t9-1 send-event-function)
|
|
(v1-15 (-> arg0 actor-group 0 data 27 actor))
|
|
)
|
|
(t9-1
|
|
(if v1-15
|
|
(-> v1-15 extra process)
|
|
)
|
|
a1-1
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-2 from) (process->ppointer pp))
|
|
(set! (-> a1-2 num-params) 2)
|
|
(set! (-> a1-2 message) 'request)
|
|
(set! (-> a1-2 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-2 param 1) (the-as uint 44))
|
|
(let ((t9-2 send-event-function)
|
|
(v1-26 (-> arg0 actor-group 0 data 1 actor))
|
|
)
|
|
(t9-2
|
|
(if v1-26
|
|
(-> v1-26 extra process)
|
|
)
|
|
a1-2
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-30 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-30 bytes 5) 1)
|
|
(set! (-> v1-30 bytes 6) 3)
|
|
(set! (-> v1-30 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-30) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(let* ((v1-3 (-> arg1 actor-group 0 data 1 actor))
|
|
(s3-0 (if v1-3
|
|
(-> v1-3 extra process)
|
|
)
|
|
)
|
|
(v1-8 (-> arg1 actor-group 0 data 3 actor))
|
|
(s4-0 (if v1-8
|
|
(-> v1-8 extra process)
|
|
)
|
|
)
|
|
(v1-13 (-> arg1 actor-group 0 data 2 actor))
|
|
(s5-0 (if v1-13
|
|
(-> v1-13 extra process)
|
|
)
|
|
)
|
|
)
|
|
(if (time-elapsed? (-> arg1 waypoint-time0) (seconds 0.2))
|
|
(send-event s4-0 'request 'waypoint 44)
|
|
)
|
|
(if (time-elapsed? (-> arg1 waypoint-time0) (seconds 0.4))
|
|
(send-event s5-0 'request 'waypoint 44)
|
|
)
|
|
(cond
|
|
((hal-sewer-method-231 arg1 27)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 48 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
((let ((a0-11 s3-0))
|
|
(or (and (or (not a0-11) (>= (the-as int (send-event a0-11 'query 'waypoint)) 47))
|
|
(outside-spot-radius? (the-as bot s3-0) (the-as bot-spot #f) (the-as vector #f) #f)
|
|
)
|
|
(let ((a0-14 s4-0))
|
|
(and (or (not a0-14) (>= (the-as int (send-event a0-14 'query 'waypoint)) 47))
|
|
(outside-spot-radius? (the-as bot s4-0) (the-as bot-spot #f) (the-as vector #f) #f)
|
|
)
|
|
)
|
|
(let ((a0-17 s5-0))
|
|
(and (or (not a0-17) (>= (the-as int (send-event a0-17 'query 'waypoint)) 47))
|
|
(outside-spot-radius? (the-as bot s5-0) (the-as bot-spot #f) (the-as vector #f) #f)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 47 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far 'hal2-default-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 47
|
|
:nav-mesh-index -1
|
|
:skip-to 48
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(with-pp
|
|
(logclear! (-> arg0 bot-flags) (bot-flags bf24))
|
|
(reset-warn-time! arg0)
|
|
(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)))
|
|
(set! (-> a1-2 from) (process->ppointer pp))
|
|
(set! (-> a1-2 num-params) 0)
|
|
(set! (-> a1-2 message) 'cue-chase)
|
|
(let ((t9-3 send-event-function)
|
|
(v1-17 (-> arg0 actor-group 0 data 27 actor))
|
|
)
|
|
(t9-3
|
|
(if v1-17
|
|
(-> v1-17 extra process)
|
|
)
|
|
a1-2
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-21 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-21 bytes 5) 1)
|
|
(set! (-> v1-21 bytes 6) 3)
|
|
(set! (-> v1-21 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-21) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(when (hal-sewer-method-231 arg1 27)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 48 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
(return #t)
|
|
)
|
|
(cond
|
|
((logtest? (-> arg1 bot-task-bits) (bot-task-bits botbits-3 botbits-5))
|
|
(logclear! (-> arg1 bot-flags) (bot-flags bf24))
|
|
(reset-warn-time! arg1)
|
|
(set-time! (-> arg1 waypoint-time0))
|
|
(when (not (channel-active? arg1 (gui-channel none)))
|
|
(let ((v1-22 *target*))
|
|
(when (and v1-22 (focus-test? v1-22 in-air) (not (logtest? (-> v1-22 focus-status) (focus-status hit))))
|
|
(cond
|
|
((not (speech-playing? arg1 64))
|
|
(play-speech arg1 64)
|
|
)
|
|
((not (speech-playing? arg1 65))
|
|
(play-speech arg1 65)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
((channel-active? arg1 (gui-channel none))
|
|
(reset-warn-time! arg1)
|
|
(set-time! (-> arg1 waypoint-time0))
|
|
)
|
|
(else
|
|
(when (time-elapsed? (-> arg1 waypoint-time0) (seconds 9))
|
|
(let ((v1-46 (-> arg1 sentries2-reminder-index))
|
|
(a1-11 (-> arg1 hal2-course sentries2-reminders))
|
|
)
|
|
(cond
|
|
((< v1-46 (-> a1-11 length))
|
|
(set! (-> arg1 sentries2-reminder-index) (+ v1-46 1))
|
|
(play-speech arg1 (-> a1-11 v1-46))
|
|
(set-time! (-> arg1 waypoint-time0))
|
|
)
|
|
(else
|
|
(if (time-elapsed? (-> arg1 waypoint-time0) (seconds 20))
|
|
(logior! (-> arg1 bot-flags) (bot-flags bf24))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
#f
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far 'hal2-force-fail-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 48
|
|
:nav-mesh-index -1
|
|
:skip-to -1
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(with-pp
|
|
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-0 from) (process->ppointer pp))
|
|
(set! (-> a1-0 num-params) 2)
|
|
(set! (-> a1-0 message) 'request)
|
|
(set! (-> a1-0 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-0 param 1) (the-as uint 48))
|
|
(let ((t9-0 send-event-function)
|
|
(v1-8 (-> arg0 actor-group 0 data 1 actor))
|
|
)
|
|
(t9-0
|
|
(if v1-8
|
|
(-> v1-8 extra process)
|
|
)
|
|
a1-0
|
|
)
|
|
)
|
|
)
|
|
(play-speech arg0 66)
|
|
(add-process *gui-control* arg0 (gui-channel art-load) (gui-action queue) "sewer-hosehead" -99.0 0)
|
|
(let ((v1-16 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-16 bytes 5) 1)
|
|
(set! (-> v1-16 bytes 6) 4)
|
|
(set! (-> v1-16 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-16) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(with-pp
|
|
(let* ((v1-3 (-> arg1 actor-group 0 data 1 actor))
|
|
(s5-0 (if v1-3
|
|
(-> v1-3 extra process)
|
|
)
|
|
)
|
|
)
|
|
(let* ((v1-8 (-> arg1 actor-group 0 data 3 actor))
|
|
(s3-0 (if v1-8
|
|
(-> v1-8 extra process)
|
|
)
|
|
)
|
|
(v1-13 (-> arg1 actor-group 0 data 2 actor))
|
|
(s4-0 (if v1-13
|
|
(-> v1-13 extra process)
|
|
)
|
|
)
|
|
)
|
|
(when (and (logtest? (-> arg1 waypoint-bits) (waypoint-bits wabits-0))
|
|
(time-elapsed? (-> 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)
|
|
(set! (-> a1-1 message) 'beaten)
|
|
(let ((t9-0 send-event-function)
|
|
(v1-29 (-> arg1 actor-group 0 data 19 actor))
|
|
)
|
|
(t9-0
|
|
(if v1-29
|
|
(-> v1-29 extra process)
|
|
)
|
|
a1-1
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-2 from) (process->ppointer pp))
|
|
(set! (-> a1-2 num-params) 0)
|
|
(set! (-> a1-2 message) 'die-fast)
|
|
(let ((t9-1 send-event-function)
|
|
(v1-37 (-> arg1 actor-group 0 data 22 actor))
|
|
)
|
|
(t9-1
|
|
(if v1-37
|
|
(-> v1-37 extra process)
|
|
)
|
|
a1-2
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-3 from) (process->ppointer pp))
|
|
(set! (-> a1-3 num-params) 0)
|
|
(set! (-> a1-3 message) 'die-fast)
|
|
(let ((t9-2 send-event-function)
|
|
(v1-45 (-> arg1 actor-group 0 data 23 actor))
|
|
)
|
|
(t9-2
|
|
(if v1-45
|
|
(-> v1-45 extra process)
|
|
)
|
|
a1-3
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-4 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-4 from) (process->ppointer pp))
|
|
(set! (-> a1-4 num-params) 0)
|
|
(set! (-> a1-4 message) 'die-fast)
|
|
(let ((t9-3 send-event-function)
|
|
(v1-53 (-> arg1 actor-group 0 data 20 actor))
|
|
)
|
|
(t9-3
|
|
(if v1-53
|
|
(-> v1-53 extra process)
|
|
)
|
|
a1-4
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-5 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-5 from) (process->ppointer pp))
|
|
(set! (-> a1-5 num-params) 0)
|
|
(set! (-> a1-5 message) 'die-fast)
|
|
(let ((t9-4 send-event-function)
|
|
(v1-61 (-> arg1 actor-group 0 data 21 actor))
|
|
)
|
|
(t9-4
|
|
(if v1-61
|
|
(-> v1-61 extra process)
|
|
)
|
|
a1-5
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-6 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-6 from) (process->ppointer pp))
|
|
(set! (-> a1-6 num-params) 0)
|
|
(set! (-> a1-6 message) 'die-fast)
|
|
(let ((t9-5 send-event-function)
|
|
(v1-69 (-> arg1 actor-group 0 data 24 actor))
|
|
)
|
|
(t9-5
|
|
(if v1-69
|
|
(-> v1-69 extra process)
|
|
)
|
|
a1-6
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-7 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-7 from) (process->ppointer pp))
|
|
(set! (-> a1-7 num-params) 0)
|
|
(set! (-> a1-7 message) 'die-fast)
|
|
(let ((t9-6 send-event-function)
|
|
(v1-77 (-> arg1 actor-group 0 data 25 actor))
|
|
)
|
|
(t9-6
|
|
(if v1-77
|
|
(-> v1-77 extra process)
|
|
)
|
|
a1-7
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-8 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-8 from) (process->ppointer pp))
|
|
(set! (-> a1-8 num-params) 0)
|
|
(set! (-> a1-8 message) 'die-fast)
|
|
(let ((t9-7 send-event-function)
|
|
(v1-85 (-> arg1 actor-group 0 data 26 actor))
|
|
)
|
|
(t9-7
|
|
(if v1-85
|
|
(-> v1-85 extra process)
|
|
)
|
|
a1-8
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-9 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-9 from) (process->ppointer pp))
|
|
(set! (-> a1-9 num-params) 0)
|
|
(set! (-> a1-9 message) 'die-fast)
|
|
(let ((t9-8 send-event-function)
|
|
(v1-93 (-> arg1 actor-group 0 data 27 actor))
|
|
)
|
|
(t9-8
|
|
(if v1-93
|
|
(-> v1-93 extra process)
|
|
)
|
|
a1-9
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-10 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-10 from) (process->ppointer pp))
|
|
(set! (-> a1-10 num-params) 0)
|
|
(set! (-> a1-10 message) 'die-fast)
|
|
(let ((t9-9 send-event-function)
|
|
(v1-101 (-> arg1 actor-group 0 data 28 actor))
|
|
)
|
|
(t9-9
|
|
(if v1-101
|
|
(-> v1-101 extra process)
|
|
)
|
|
a1-10
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-11 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-11 from) (process->ppointer pp))
|
|
(set! (-> a1-11 num-params) 0)
|
|
(set! (-> a1-11 message) 'die-fast)
|
|
(let ((t9-10 send-event-function)
|
|
(v1-109 (-> arg1 actor-group 0 data 29 actor))
|
|
)
|
|
(t9-10
|
|
(if v1-109
|
|
(-> v1-109 extra process)
|
|
)
|
|
a1-11
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(if (time-elapsed? (-> arg1 waypoint-time0) (seconds 0.2))
|
|
(send-event s3-0 'request 'waypoint 48)
|
|
)
|
|
(if (time-elapsed? (-> arg1 waypoint-time0) (seconds 0.4))
|
|
(send-event s4-0 'request 'waypoint 48)
|
|
)
|
|
)
|
|
(when (and (not (channel-active? arg1 (gui-channel none))) (not (speech-playing? arg1 67)))
|
|
(let* ((v1-141 (-> arg1 actor-group 0 data 1 actor))
|
|
(s4-1 (if v1-141
|
|
(-> v1-141 extra process)
|
|
)
|
|
)
|
|
)
|
|
(if (and s4-1
|
|
(>= 65536.0 (vector-vector-xz-distance (target-pos 0) (-> (the-as process-focusable s4-1) root trans)))
|
|
)
|
|
(play-speech arg1 67)
|
|
)
|
|
)
|
|
)
|
|
(let ((a0-36 s5-0))
|
|
(when (and (and a0-36 (>= (the-as int (send-event a0-36 'query 'waypoint)) 54))
|
|
(outside-spot-radius? (the-as bot s5-0) (the-as bot-spot #f) (the-as vector #f) #f)
|
|
)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 54 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here (lambda ((arg0 hal-sewer))
|
|
(ai-task-control-method-12 (-> arg0 ai-ctrl) arg0)
|
|
(send-event arg0 'move-trans (-> arg0 hal2-course spots 4))
|
|
(send-event *target* 'continue (get-continue-by-name *game-info* "hal2-wall2"))
|
|
(let* ((v1-18 (-> arg0 actor-group 0 data 1 actor))
|
|
(s5-1 (if v1-18
|
|
(-> v1-18 extra process)
|
|
)
|
|
)
|
|
(v1-23 (-> arg0 actor-group 0 data 3 actor))
|
|
(s4-0 (if v1-23
|
|
(-> v1-23 extra process)
|
|
)
|
|
)
|
|
(v1-28 (-> arg0 actor-group 0 data 2 actor))
|
|
(s3-0 (if v1-28
|
|
(-> v1-28 extra process)
|
|
)
|
|
)
|
|
)
|
|
(send-event s5-1 'request 'replace-bomb)
|
|
(send-event s5-1 'skip)
|
|
(send-event s4-0 'skip)
|
|
(send-event s3-0 'skip)
|
|
)
|
|
(logior! (-> arg0 waypoint-bits) (waypoint-bits wabits-0))
|
|
(none)
|
|
)
|
|
:check-too-far 'hal2-default-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 54
|
|
:nav-mesh-index -1
|
|
:skip-to -1
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(play-speech arg0 69)
|
|
(let ((v1-3 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-3 bytes 5) 1)
|
|
(set! (-> v1-3 bytes 6) 4)
|
|
(set! (-> v1-3 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-3) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(let* ((v1-3 (-> arg1 actor-group 0 data 1 actor))
|
|
(a0-1 (if v1-3
|
|
(-> v1-3 extra process)
|
|
)
|
|
)
|
|
)
|
|
(when (and a0-1 (>= (the-as int (send-event a0-1 'query 'waypoint)) 55))
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 55 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far 'hal2-default-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 55
|
|
:nav-mesh-index -1
|
|
:skip-to -1
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-1 bytes 5) 1)
|
|
(set! (-> v1-1 bytes 6) 4)
|
|
(set! (-> v1-1 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-1) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(local-vars (a0-3 process))
|
|
(let* ((v1-3 (-> arg1 actor-group 0 data 1 actor))
|
|
(s5-0 (if v1-3
|
|
(-> v1-3 extra process)
|
|
)
|
|
)
|
|
(v1-8 (-> arg1 actor-group 0 data 3 actor))
|
|
(s4-0 (if v1-8
|
|
(-> v1-8 extra process)
|
|
)
|
|
)
|
|
(v1-13 (-> arg1 actor-group 0 data 2 actor))
|
|
(s3-0 (if v1-13
|
|
(-> v1-13 extra process)
|
|
)
|
|
)
|
|
)
|
|
(if (and (not (speech-playing? arg1 70))
|
|
(and (not (channel-active? arg1 (gui-channel none)))
|
|
(begin (set! a0-3 s5-0) a0-3)
|
|
(>= (the-as int (send-event a0-3 'query 'waypoint)) 56)
|
|
)
|
|
)
|
|
(play-speech arg1 70)
|
|
)
|
|
(let ((a0-5 s5-0))
|
|
(when (and (and a0-5 (>= (the-as int (send-event a0-5 'query 'waypoint)) 56))
|
|
(let ((a0-7 s4-0))
|
|
(and a0-7 (>= (the-as int (send-event a0-7 'query 'waypoint)) 54))
|
|
)
|
|
(let ((a0-9 s3-0))
|
|
(and (and a0-9 (>= (the-as int (send-event a0-9 'query 'waypoint)) 54))
|
|
(outside-spot-radius? (the-as bot s5-0) (the-as bot-spot #f) (the-as vector #f) #f)
|
|
(outside-spot-radius? (the-as bot s4-0) (the-as bot-spot #f) (the-as vector #f) #f)
|
|
(outside-spot-radius? (the-as bot s3-0) (the-as bot-spot #f) (the-as vector #f) #f)
|
|
)
|
|
)
|
|
)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 56 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far 'hal2-default-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 56
|
|
:nav-mesh-index -1
|
|
:skip-to -1
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(logclear! (-> arg0 bot-flags) (bot-flags bf24))
|
|
(reset-warn-time! arg0)
|
|
(set! (-> arg0 waypoint-time0) 0)
|
|
(let ((v1-5 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-5 bytes 5) 1)
|
|
(set! (-> v1-5 bytes 6) 4)
|
|
(set! (-> v1-5 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-5) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(cond
|
|
((hal-sewer-method-229 arg1)
|
|
(logclear! (-> arg1 bot-flags) (bot-flags bf24))
|
|
(reset-warn-time! arg1)
|
|
(when (and (not (channel-active? arg1 (gui-channel none))) (scene-play arg1 "sewer-hosehead" #f))
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 57 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
(else
|
|
(cond
|
|
((channel-active? arg1 (gui-channel none))
|
|
(set! (-> arg1 waypoint-time0) (+ (current-time) (seconds 9)))
|
|
)
|
|
((>= (current-time) (-> arg1 waypoint-time0))
|
|
(let ((a1-8
|
|
(bot-speech-list-method-9
|
|
(-> arg1 hal2-course bomb2-reminders)
|
|
arg1
|
|
(-> arg1 hal2-course speeches)
|
|
(speech-flags)
|
|
)
|
|
)
|
|
)
|
|
(if (>= a1-8 0)
|
|
(play-speech arg1 a1-8)
|
|
(logior! (-> arg1 bot-flags) (bot-flags bf24))
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
#f
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far 'hal2-force-fail-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 57
|
|
:nav-mesh-index -1
|
|
:skip-to -1
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-1 bytes 5) 1)
|
|
(set! (-> v1-1 bytes 6) 4)
|
|
(set! (-> v1-1 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-1) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer)) (when (scene-release? arg1)
|
|
(reset-warn-time! arg1)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 58 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far #f
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 58
|
|
:nav-mesh-index -1
|
|
:skip-to -1
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(with-pp
|
|
(reset-warn-time! arg0)
|
|
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-0 from) (process->ppointer pp))
|
|
(set! (-> a1-0 num-params) 0)
|
|
(set! (-> a1-0 message) 'trigger)
|
|
(let ((t9-1 send-event-function)
|
|
(v1-7 (-> arg0 actor-group 0 data 31 actor))
|
|
)
|
|
(t9-1
|
|
(if v1-7
|
|
(-> v1-7 extra process)
|
|
)
|
|
a1-0
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-1 from) (process->ppointer pp))
|
|
(set! (-> a1-1 num-params) 2)
|
|
(set! (-> a1-1 message) 'request)
|
|
(set! (-> a1-1 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-1 param 1) (the-as uint 58))
|
|
(let ((t9-2 send-event-function)
|
|
(v1-18 (-> arg0 actor-group 0 data 1 actor))
|
|
)
|
|
(t9-2
|
|
(if v1-18
|
|
(-> v1-18 extra process)
|
|
)
|
|
a1-1
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-2 from) (process->ppointer pp))
|
|
(set! (-> a1-2 num-params) 2)
|
|
(set! (-> a1-2 message) 'request)
|
|
(set! (-> a1-2 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-2 param 1) (the-as uint 58))
|
|
(let ((t9-3 send-event-function)
|
|
(v1-29 (-> arg0 actor-group 0 data 3 actor))
|
|
)
|
|
(t9-3
|
|
(if v1-29
|
|
(-> v1-29 extra process)
|
|
)
|
|
a1-2
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-3 from) (process->ppointer pp))
|
|
(set! (-> a1-3 num-params) 2)
|
|
(set! (-> a1-3 message) 'request)
|
|
(set! (-> a1-3 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-3 param 1) (the-as uint 58))
|
|
(let ((t9-4 send-event-function)
|
|
(v1-40 (-> arg0 actor-group 0 data 2 actor))
|
|
)
|
|
(t9-4
|
|
(if v1-40
|
|
(-> v1-40 extra process)
|
|
)
|
|
a1-3
|
|
)
|
|
)
|
|
)
|
|
(set-setting! 'allow-look-around #f 0.0 0)
|
|
(let ((v1-46 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-46 bytes 5) 1)
|
|
(set! (-> v1-46 bytes 6) 4)
|
|
(set! (-> v1-46 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-46) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer)) (with-pp
|
|
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-1 from) (process->ppointer pp))
|
|
(set! (-> a1-1 num-params) 1)
|
|
(set! (-> a1-1 message) 'query)
|
|
(set! (-> a1-1 param 0) (the-as uint 'beaten))
|
|
(let ((t9-0 send-event-function)
|
|
(v1-7 (-> arg1 actor-group 0 data 31 actor))
|
|
)
|
|
(when (t9-0
|
|
(if v1-7
|
|
(-> v1-7 extra process)
|
|
)
|
|
a1-1
|
|
)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 59 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far 'hal2-onslaught-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 59
|
|
:nav-mesh-index -1
|
|
:skip-to -1
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(with-pp
|
|
(reset-warn-time! arg0)
|
|
(remove-setting! 'allow-look-around)
|
|
(play-speech arg0 74)
|
|
(add-process *gui-control* arg0 (gui-channel art-load) (gui-action queue) "sewer-blow-up-statue-res" -99.0 0)
|
|
(set-vector! (-> arg0 test-plane) -0.67 0.0 0.74 2007695.4)
|
|
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-3 from) (process->ppointer pp))
|
|
(set! (-> a1-3 num-params) 2)
|
|
(set! (-> a1-3 message) 'request)
|
|
(set! (-> a1-3 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-3 param 1) (the-as uint 58))
|
|
(let ((t9-4 send-event-function)
|
|
(v1-17 (-> arg0 actor-group 0 data 3 actor))
|
|
)
|
|
(t9-4
|
|
(if v1-17
|
|
(-> v1-17 extra process)
|
|
)
|
|
a1-3
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-4 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-4 from) (process->ppointer pp))
|
|
(set! (-> a1-4 num-params) 2)
|
|
(set! (-> a1-4 message) 'request)
|
|
(set! (-> a1-4 param 0) (the-as uint 'waypoint))
|
|
(set! (-> a1-4 param 1) (the-as uint 58))
|
|
(let ((t9-5 send-event-function)
|
|
(v1-28 (-> arg0 actor-group 0 data 2 actor))
|
|
)
|
|
(t9-5
|
|
(if v1-28
|
|
(-> v1-28 extra process)
|
|
)
|
|
a1-4
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-32 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-32 bytes 5) 1)
|
|
(set! (-> v1-32 bytes 6) 4)
|
|
(set! (-> v1-32 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-32) check-done)
|
|
(the-as
|
|
(function halt-wait-spot hal symbol)
|
|
(lambda ((arg0 object) (arg1 hal-sewer))
|
|
(let* ((v1-3 (-> arg1 actor-group 0 data 1 actor))
|
|
(s3-0 (if v1-3
|
|
(-> v1-3 extra process)
|
|
)
|
|
)
|
|
(v1-8 (-> arg1 actor-group 0 data 3 actor))
|
|
(s4-0 (if v1-8
|
|
(-> v1-8 extra process)
|
|
)
|
|
)
|
|
(v1-13 (-> arg1 actor-group 0 data 2 actor))
|
|
(s5-0 (if v1-13
|
|
(-> v1-13 extra process)
|
|
)
|
|
)
|
|
)
|
|
(if (time-elapsed? (-> arg1 waypoint-time0) (seconds 2))
|
|
(send-event s5-0 'request 'waypoint 59)
|
|
)
|
|
(if (time-elapsed? (-> arg1 waypoint-time0) (seconds 3))
|
|
(send-event s3-0 'request 'waypoint 59)
|
|
)
|
|
(if (time-elapsed? (-> arg1 waypoint-time0) (seconds 4))
|
|
(send-event s4-0 'request 'waypoint 59)
|
|
)
|
|
(when (not (channel-active? arg1 (gui-channel none)))
|
|
(cond
|
|
((and (not (speech-playing? arg1 75)) (time-elapsed? (-> arg1 waypoint-time0) (seconds 6)))
|
|
(play-speech arg1 75)
|
|
(play-speech arg1 76)
|
|
)
|
|
(else
|
|
(when (and (>= (vector4-dot (-> (the-as process-focusable s3-0) root trans) (the-as vector (-> arg1 test-plane))) 0.0)
|
|
(>= (vector4-dot (-> (the-as process-focusable s4-0) root trans) (the-as vector (-> arg1 test-plane))) 0.0)
|
|
(>= (vector4-dot (-> (the-as process-focusable s5-0) root trans) (the-as vector (-> arg1 test-plane))) 0.0)
|
|
)
|
|
(let ((a0-18 *target*))
|
|
(when (and a0-18
|
|
(and (>= (vector4-dot (get-trans a0-18 0) (the-as vector (-> arg1 test-plane))) 0.0)
|
|
(scene-play arg1 "sewer-blow-up-statue-res" #f)
|
|
)
|
|
)
|
|
(ai-task-control-method-12 (-> arg1 ai-ctrl) arg1)
|
|
(go-to-waypoint! arg1 67 #f)
|
|
(ai-task-control-method-10 (-> arg1 ai-ctrl) arg1)
|
|
#t
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far 'hal2-default-check-too-far
|
|
)
|
|
(new 'static 'bot-waypoint
|
|
:waypoint-id 67
|
|
:nav-mesh-index -1
|
|
:skip-to -1
|
|
:on-set (lambda ((arg0 hal-sewer))
|
|
(with-pp
|
|
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-0 from) (process->ppointer pp))
|
|
(set! (-> a1-0 num-params) 2)
|
|
(set! (-> a1-0 message) 'request)
|
|
(set! (-> a1-0 param 0) (the-as uint 'health-meter))
|
|
(set! (-> a1-0 param 1) (the-as uint #f))
|
|
(let ((t9-0 send-event-function)
|
|
(v1-7 (-> arg0 actor-group 0 data 1 actor))
|
|
)
|
|
(t9-0
|
|
(if v1-7
|
|
(-> v1-7 extra process)
|
|
)
|
|
a1-0
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-1 from) (process->ppointer pp))
|
|
(set! (-> a1-1 num-params) 2)
|
|
(set! (-> a1-1 message) 'request)
|
|
(set! (-> a1-1 param 0) (the-as uint 'health-meter))
|
|
(set! (-> a1-1 param 1) (the-as uint #f))
|
|
(let ((t9-1 send-event-function)
|
|
(v1-17 (-> arg0 actor-group 0 data 3 actor))
|
|
)
|
|
(t9-1
|
|
(if v1-17
|
|
(-> v1-17 extra process)
|
|
)
|
|
a1-1
|
|
)
|
|
)
|
|
)
|
|
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
|
(set! (-> a1-2 from) (process->ppointer pp))
|
|
(set! (-> a1-2 num-params) 2)
|
|
(set! (-> a1-2 message) 'request)
|
|
(set! (-> a1-2 param 0) (the-as uint 'health-meter))
|
|
(set! (-> a1-2 param 1) (the-as uint #f))
|
|
(let ((t9-2 send-event-function)
|
|
(v1-27 (-> arg0 actor-group 0 data 2 actor))
|
|
)
|
|
(t9-2
|
|
(if v1-27
|
|
(-> v1-27 extra process)
|
|
)
|
|
a1-2
|
|
)
|
|
)
|
|
)
|
|
(let ((v1-31 (get-task-by-type (-> arg0 ai-ctrl) halt-wait-spot arg0)))
|
|
(set! (-> v1-31 bytes 5) 1)
|
|
(set! (-> v1-31 bytes 6) 4)
|
|
(set! (-> v1-31 bytes 4) 0)
|
|
(set! (-> (the-as halt-wait-spot v1-31) check-done)
|
|
(the-as (function halt-wait-spot hal symbol) (lambda () #f))
|
|
)
|
|
)
|
|
(none)
|
|
)
|
|
)
|
|
:on-update #f
|
|
:on-skipping-here #f
|
|
:check-too-far #f
|
|
)
|
|
)
|
|
:speeches (new 'static 'inline-array bot-speech-info 82
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal001")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal002")
|
|
(new 'static 'bot-speech-info :name "hal003")
|
|
(new 'static 'bot-speech-info :slave-id 1 :name "hal120")
|
|
(new 'static 'bot-speech-info :slave-id 2 :name "hal119")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal121")
|
|
(new 'static 'bot-speech-info :name "hal004")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :slave-id 2 :name "hal122")
|
|
(new 'static 'bot-speech-info :name "hal006")
|
|
(new 'static 'bot-speech-info :slave-id 2 :name "hal123")
|
|
(new 'static 'bot-speech-info :slave-id 1 :name "hal124")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal125")
|
|
(new 'static 'bot-speech-info :name "hal007")
|
|
(new 'static 'bot-speech-info :slave-id 2 :name "hal126")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :slave-id 1 :name "hal127")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal008")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :slave-id 2 :name "hal009")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :slave-id 1 :name "hal010")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal011")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :slave-id 2 :name "hal012")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :slave-id 1 :name "hal013")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal045")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal044")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal048")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal049")
|
|
(new 'static 'bot-speech-info :slave-id 2 :name "hal084")
|
|
(new 'static 'bot-speech-info :slave-id 1 :name "hal030")
|
|
(new 'static 'bot-speech-info :name "hal050")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal051")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal053")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal054")
|
|
(new 'static 'bot-speech-info :slave-id 2 :name "hal085")
|
|
(new 'static 'bot-speech-info :name "hal052")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :slave-id 1 :name "hal031")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal055")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :slave-id 2 :name "hal128")
|
|
(new 'static 'bot-speech-info :slave-id 1 :name "hal032")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal058")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal057")
|
|
(new 'static 'bot-speech-info :name "hal059")
|
|
(new 'static 'bot-speech-info :slave-id 2 :name "hal129")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal060")
|
|
(new 'static 'bot-speech-info :hold-time #x1e0 :slave-id 1 :name "hal021")
|
|
(new 'static 'bot-speech-info :hold-time #x1e0 :slave-id 1 :name "hal019")
|
|
(new 'static 'bot-speech-info :hold-time #xf0 :slave-id 2 :name "hal024")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal029")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal027")
|
|
(new 'static 'bot-speech-info :slave-id 1 :name "hal020")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :slave-id 2 :name "hal026")
|
|
(new 'static 'bot-speech-info :name "hal061")
|
|
(new 'static 'bot-speech-info :slave-id 1 :name "hal033")
|
|
(new 'static 'bot-speech-info :slave-id 2 :name "hal022")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal165")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal063")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal064")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :tuning-id 1 :name "hal066")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :tuning-id 1 :name "hal067")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :tuning-id 1 :name "hal068")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :slave-id 2 :tuning-id 1 :name "hal086")
|
|
(new 'static 'bot-speech-info :tuning-id 1 :name "hal069")
|
|
(new 'static 'bot-speech-info :slave-id 2 :tuning-id 1 :name "hal087")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :tuning-id 1 :name "hal070")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :tuning-id 1 :name "hal065")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :tuning-id 1 :name "hal071")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :tuning-id 1 :name "hal072")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :tuning-id 1 :name "hal073")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal047")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal046")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal074")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal182")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal094")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal108")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :slave-id 1 :name "hal111")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :slave-id 2 :name "hal109")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal081")
|
|
(new 'static 'bot-speech-info :hold-time #x96 :name "hal082")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :slave-id 2 :name "hal132")
|
|
(new 'static 'bot-speech-info :hold-time #x12c :name "hal097")
|
|
(new 'static 'bot-speech-info :hold-time #x2a3 :name "hal090")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal091")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal096")
|
|
(new 'static 'bot-speech-info :hold-time #x5a :name "hal114")
|
|
)
|
|
:speech-tunings (new 'static 'inline-array bot-speech-tuning 2
|
|
(new 'static 'bot-speech-tuning :fo-min 10 :fo-max 70 :fo-curve 11 :trans? #t)
|
|
(new 'static 'bot-speech-tuning :fo-min 30 :fo-max #x96 :fo-curve 11 :trans? #t)
|
|
)
|
|
:dirs (new 'static 'inline-array vector 8
|
|
(new 'static 'vector :x 1.0 :w 1.0)
|
|
(new 'static 'vector :z -1.0 :w 1.0)
|
|
(new 'static 'vector :x -1.0 :w 1.0)
|
|
(new 'static 'vector :z -1.0 :w 1.0)
|
|
(new 'static 'vector :x 0.62 :z -0.78 :w 1.0)
|
|
(new 'static 'vector :x 0.98 :z 0.19 :w 1.0)
|
|
(new 'static 'vector :z 1.0 :w 1.0)
|
|
(new 'static 'vector :x 1.0 :w 1.0)
|
|
)
|
|
:spots (new 'static 'inline-array bot-spot 5
|
|
(new 'static 'bot-spot :center (new 'static 'vector :x 4641423.5 :y -207175.69 :z 2093178.9 :w 4096.0))
|
|
(new 'static 'bot-spot :center (new 'static 'vector :x 4739932.0 :y -207216.64 :z 2096578.5 :w 4096.0))
|
|
(new 'static 'bot-spot :center (new 'static 'vector :x 4922614.0 :y -212992.0 :z 2115420.2 :w 9216.0))
|
|
(new 'static 'bot-spot :center (new 'static 'vector :x 4707983.5 :y -256819.2 :z 1450844.1 :w 4096.0))
|
|
(new 'static 'bot-spot :center (new 'static 'vector :x 5692252.0 :y -373432.3 :z 1996718.1 :w 4096.0))
|
|
)
|
|
:sentries1-reminders (new 'static 'boxed-array :type int16 56 57)
|
|
:sentries2-reminders (new 'static 'boxed-array :type int16 63)
|
|
:bomb2-reminders (new 'static 'bot-speech-list
|
|
:last-local-index -1
|
|
:speech-indexes (new 'static 'boxed-array :type int16 73 71 72)
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set! (-> *bot-course-table* course 5) *hal2-course*)
|