;;-*-Lisp-*- (in-package goal) ;; definition of type grim-sewer (deftype grim-sewer (grim) () ) ;; definition for method 3 of type grim-sewer (defmethod inspect ((this grim-sewer)) (when (not this) (set! this this) (goto cfg-4) ) (let ((t9-0 (method-of-type grim inspect))) (t9-0 this) ) (label cfg-4) this ) ;; definition for method 116 of type grim-sewer ;; WARN: Return type mismatch object vs none. (defmethod go-idle ((this grim-sewer)) (cond ((task-node-closed? (game-task-node sewer-escort-resolution)) (cleanup-for-death this) (go (method-of-object this die-fast)) ) (else (ruffian-method-240 this) ) ) (none) ) ;; definition for symbol *grim2-course*, type ruffian-course (define *grim2-course* (new 'static 'ruffian-course :course-id #x4 :speech-count #x14 :spot-count #x32 :too-far-fail-speeches (new 'static 'bot-speech-list :flags #x2 :last-local-index -1 :speech-indexes (new 'static 'boxed-array :type int16 3) ) :attack-player-speeches (new 'static 'bot-speech-list :flags #x2 :last-local-index -1 :speech-indexes (new 'static 'boxed-array :type int16 0 1 2 16 17 18 19) ) :default-check-too-far #f :waypoints (new 'static 'boxed-array :type bot-waypoint (new 'static 'bot-waypoint :waypoint-id 1 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (clear-speech-flags! arg0) (logior! (-> arg0 focus-status) (focus-status disable)) (set! (-> arg0 notice-enemy-dist) 0.0) (let ((v1-5 (-> arg0 root root-prim))) (set! (-> v1-5 prim-core collide-as) (collide-spec)) (set! (-> v1-5 prim-core collide-with) (collide-spec)) ) 0 (move-to-point! (-> arg0 root) (-> arg0 ruf-course spots 0 center)) (let ((a1-1 (new 'stack-no-clear 'vector))) (set-vector! a1-1 0.0 9102.223 0.0 1.0) (quaternion-zxy! (-> arg0 root quat) a1-1) ) (set! (-> arg0 follow-dir quad) (-> *hal2-course* dirs 0 quad)) (set! (-> arg0 focus-mode) 1) (let ((v1-19 (-> arg0 actor-group 0 data 2 actor))) (set! (-> arg0 poi-handle) (process->handle (if v1-19 (-> v1-19 extra process) ) ) ) ) (let ((v1-25 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-25 bytes 5) 1) (set! (-> v1-25 bytes 6) 0) (set! (-> v1-25 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-25) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (< 1 (-> arg1 waypoint-request)) (let* ((v1-4 (-> arg1 actor-group 0 data 0 actor)) (a0-2 (if v1-4 (-> v1-4 extra process) ) ) ) (when a0-2 (set! (-> arg1 master-handle) (process->handle a0-2)) (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 (lambda ((arg0 grim-sewer)) (let ((v1-3 (-> arg0 actor-group 0 data 2 actor))) (set! (-> arg0 poi-handle) (process->handle (if v1-3 (-> v1-3 extra process) ) ) ) ) (none) ) :on-skipping-here #f :check-too-far #f ) (new 'static 'bot-waypoint :waypoint-id 2 :skip-to 54 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (-> arg0 root root-prim))) (set! (-> v1-1 prim-core collide-as) (-> arg0 root backup-collide-as)) (set! (-> v1-1 prim-core collide-with) (-> arg0 root backup-collide-with)) ) (let ((v1-5 (-> arg0 actor-group 0 data 2 actor))) (set! (-> arg0 poi-handle) (process->handle (if v1-5 (-> v1-5 extra process) ) ) ) ) (let ((v1-11 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-11 bytes 5) 1) (set! (-> v1-11 bytes 6) 0) (set! (-> v1-11 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-11) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (>= (-> arg1 waypoint-request) 3) (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 :skip-to 54 :on-set (lambda ((arg0 grim-sewer)) (set! (-> arg0 focus-mode) 0) (clear-poi-and-focus! arg0) (let ((v1-3 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-3 bytes 5) 1) (set! (-> v1-3 bytes 6) 0) (set! (-> v1-3 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-3) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (>= (-> arg1 waypoint-request) 5) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 5 #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 5 :skip-to 54 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 1) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (or (< (-> arg1 spot center x) (-> arg1 root trans x)) (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) ) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 6 #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 6 :skip-to 54 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 2) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (or (< (-> arg1 spot center x) (-> arg1 root trans x)) (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) ) (let* ((v1-7 (-> arg1 actor-group 0 data 1 actor)) (a0-2 (if v1-7 (-> v1-7 extra process) ) ) ) (when (or (not a0-2) (let ((s5-0 7)) (< s5-0 (the-as int (send-event a0-2 'query 'waypoint))) ) ) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 7 #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 7 :skip-to 54 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 3) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 ai-task-control) (arg1 grim-sewer)) (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 8 #f) (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) #t ) (none) ) ) ) ) (none) ) :on-update #f :on-skipping-here #f :check-too-far #f ) (new 'static 'bot-waypoint :waypoint-id 8 :skip-to 54 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 4) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (and (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) (-> arg1 next-state) (let ((v1-5 (-> arg1 next-state name))) (or (= v1-5 'waiting-idle) (= v1-5 'scared-idle)) ) ) (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 ) ) ) ) ) (none) ) :on-update #f :on-skipping-here #f :check-too-far #f ) (new 'static 'bot-waypoint :waypoint-id 9 :nav-mesh-index 1 :skip-to 54 :on-set (lambda ((arg0 grim-sewer)) (set! (-> arg0 follow-dir quad) (-> *hal2-course* dirs 1 quad)) (let ((v1-2 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-2 bytes 5) 1) (set! (-> v1-2 bytes 6) 4) (set! (-> v1-2 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-2) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (>= (-> arg1 waypoint-request) 11) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 10 #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 10 :nav-mesh-index 1 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-choose-jump arg0))) (set! (-> v1-1 bytes 5) 3) (set! (-> v1-1 bytes 6) 5) (set! (-> v1-1 bytes 7) 6) (set! (-> v1-1 bytes 8) 7) (set! (-> v1-1 bytes 10) 8) (set! (-> v1-1 bytes 11) 9) (set! (-> v1-1 bytes 12) 10) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 ai-task-control) (arg1 grim-sewer)) (when (or (ai-task-control-method-12 arg0 arg1) (< (-> arg1 root trans y) (+ -3072.0 (-> arg1 ruf-course spots 5 center y))) ) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (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 #f ) (new 'static 'bot-waypoint :waypoint-id 11 :nav-mesh-index 2 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-3 (-> arg0 actor-group 0 data 1 actor))) (set! (-> arg0 poi-handle) (process->handle (if v1-3 (-> v1-3 extra process) ) ) ) ) (let ((v1-9 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-9 bytes 5) 1) (set! (-> v1-9 bytes 6) 11) (set! (-> v1-9 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-9) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (>= (-> arg1 waypoint-request) 16) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 14 #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 14 :nav-mesh-index 2 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (set-time! (-> arg0 waypoint-time0)) (logior! (-> arg0 bot-flags) (bot-flags bf19)) (clear-poi-and-focus! arg0) (logclear! (-> arg0 focus-status) (focus-status disable)) (set! (-> arg0 notice-enemy-dist) 204800.0) (set! (-> arg0 min-speed) 40960.0) (set! (-> arg0 max-speed) 40960.0) (let ((v1-12 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-12 bytes 5) 1) (set! (-> v1-12 bytes 6) 11) (set! (-> v1-12 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-12) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (time-elapsed? (-> arg1 waypoint-time0) (seconds 1)) (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 ) ) ) ) ) (none) ) :on-update #f :on-skipping-here #f :check-too-far #f ) (new 'static 'bot-waypoint :waypoint-id 16 :nav-mesh-index 2 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 12) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (cond ((>= (-> arg1 waypoint-request) 20) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 18 #f) (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) #t ) ((>= (-> arg1 waypoint-request) 17) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 17 #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 17 :nav-mesh-index -1 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 13) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (>= (-> arg1 waypoint-request) 20) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 18 #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 18 :nav-mesh-index 2 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (logclear! (-> arg0 bot-flags) (bot-flags bf19)) (logclear! (-> arg0 focus-status) (focus-status disable)) (set! (-> arg0 notice-enemy-dist) 204800.0) (set! (-> arg0 min-speed) 20480.0) (set! (-> arg0 max-speed) 40960.0) (set! (-> arg0 follow-dir quad) (-> *hal2-course* dirs 1 quad)) (let ((v1-9 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-9 bytes 5) 1) (set! (-> v1-9 bytes 6) 14) (set! (-> v1-9 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-9) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 19 #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 19 :nav-mesh-index 2 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (set! (-> arg0 follow-dir quad) (-> *hal2-course* dirs 2 quad)) (let ((v1-2 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-2 bytes 5) 1) (set! (-> v1-2 bytes 6) 15) (set! (-> v1-2 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-2) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (cond ((>= (-> arg1 waypoint-request) 22) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 22 #f) (ai-task-control-method-10 (-> arg1 ai-ctrl) arg1) #t ) ((outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) (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 #f ) (new 'static 'bot-waypoint :waypoint-id 20 :nav-mesh-index 2 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 15) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (>= (-> arg1 waypoint-request) 22) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 22 #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 22 :nav-mesh-index 2 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (logior! (-> arg0 bot-flags) (bot-flags bf19)) (set! (-> arg0 min-speed) 40960.0) (set! (-> arg0 max-speed) 40960.0) (let ((v1-5 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-5 bytes 5) 1) (set! (-> v1-5 bytes 6) 16) (set! (-> v1-5 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-5) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (>= (-> arg1 waypoint-request) 23) (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 ) ) ) ) ) (none) ) :on-update #f :on-skipping-here #f :check-too-far #f ) (new 'static 'bot-waypoint :waypoint-id 23 :nav-mesh-index 2 :skip-to 34 :on-set (lambda ((arg0 grim-sewer)) (logclear! (-> arg0 bot-flags) (bot-flags bf19)) (set! (-> arg0 min-speed) 28672.0) (set! (-> arg0 max-speed) 28672.0) (let ((v1-7 (-> arg0 actor-group 0 data 1 actor))) (set! (-> arg0 poi-handle) (process->handle (if v1-7 (-> v1-7 extra process) ) ) ) ) (let ((v1-13 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-13 bytes 5) 1) (set! (-> v1-13 bytes 6) 17) (set! (-> v1-13 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-13) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (>= (-> arg1 waypoint-request) 24) (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 ) ) ) ) ) (none) ) :on-update #f :on-skipping-here (lambda ((arg0 grim-sewer)) (ai-task-control-method-12 (-> arg0 ai-ctrl) arg0) (send-event arg0 'move-trans (-> arg0 ruf-course spots 16)) (let ((v1-10 (-> arg0 root root-prim))) (set! (-> v1-10 prim-core collide-as) (-> arg0 root backup-collide-as)) (set! (-> v1-10 prim-core collide-with) (-> arg0 root backup-collide-with)) ) (set! (-> arg0 focus-mode) 0) (clear-poi-and-focus! arg0) (logclear! (-> arg0 focus-status) (focus-status disable)) (let ((v1-18 (-> arg0 actor-group 0 data 0 actor))) (set! (-> arg0 master-handle) (process->handle (if v1-18 (-> v1-18 extra process) ) ) ) ) (none) ) :check-too-far #f ) (new 'static 'bot-waypoint :waypoint-id 24 :nav-mesh-index 2 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (set! (-> arg0 min-speed) 40960.0) (set! (-> arg0 max-speed) 40960.0) (clear-poi-and-focus! arg0) (let ((v1-5 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-5 bytes 5) 1) (set! (-> v1-5 bytes 6) 18) (set! (-> v1-5 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-5) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (>= (-> arg1 waypoint-request) 26) (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 3 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (set! (-> arg0 min-speed) 20480.0) (set! (-> arg0 max-speed) 40960.0) (set! (-> arg0 follow-dir quad) (-> *hal2-course* dirs 3 quad)) (clear-poi-and-focus! arg0) (let ((v1-6 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-6 bytes 5) 1) (set! (-> v1-6 bytes 6) 19) (set! (-> v1-6 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-6) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (>= (-> arg1 waypoint-request) 27) (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 #f ) (new 'static 'bot-waypoint :waypoint-id 27 :nav-mesh-index -1 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (logior! (-> arg0 bot-flags) (bot-flags bf19)) (logclear! (-> arg0 focus-status) (focus-status disable)) (set! (-> arg0 notice-enemy-dist) 491520.0) (set! (-> arg0 min-speed) 40960.0) (set! (-> arg0 max-speed) 40960.0) (let ((v1-8 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-8 bytes 5) 1) (set! (-> v1-8 bytes 6) 19) (set! (-> v1-8 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-8) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (>= (-> arg1 waypoint-request) 28) (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 #f ) (new 'static 'bot-waypoint :waypoint-id 28 :nav-mesh-index -1 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 20) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (>= (-> arg1 waypoint-request) 34) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 30 #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 30 :nav-mesh-index -1 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (logclear! (-> arg0 bot-flags) (bot-flags bf19)) (logior! (-> arg0 focus-status) (focus-status disable)) (set! (-> arg0 notice-enemy-dist) 204800.0) (set! (-> arg0 min-speed) 20480.0) (set! (-> arg0 max-speed) 40960.0) (set! (-> arg0 follow-dir quad) (-> *hal2-course* dirs 4 quad)) (let ((v1-9 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-9 bytes 5) 1) (set! (-> v1-9 bytes 6) 21) (set! (-> v1-9 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-9) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 31 #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 31 :nav-mesh-index -1 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 22) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 32 #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 32 :nav-mesh-index -1 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 23) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 33 #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 33 :nav-mesh-index -1 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (set! (-> arg0 follow-dir quad) (-> *hal2-course* dirs 5 quad)) (let ((v1-2 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-2 bytes 5) 1) (set! (-> v1-2 bytes 6) 24) (set! (-> v1-2 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-2) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 34 #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 34 :nav-mesh-index -1 :skip-to 54 :on-set (lambda ((arg0 grim-sewer)) (set! (-> arg0 follow-dir quad) (-> *hal2-course* dirs 6 quad)) (let ((v1-2 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-2 bytes 5) 1) (set! (-> v1-2 bytes 6) 25) (set! (-> v1-2 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-2) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (>= (-> arg1 waypoint-request) 35) (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 grim-sewer)) (ai-task-control-method-12 (-> arg0 ai-ctrl) arg0) (send-event arg0 'move-trans (-> arg0 ruf-course spots 25)) (logclear! (-> arg0 bot-flags) (bot-flags bf19)) (logior! (-> arg0 focus-status) (focus-status disable)) (set! (-> arg0 notice-enemy-dist) 204800.0) (set! (-> arg0 min-speed) 20480.0) (set! (-> arg0 max-speed) 40960.0) (set! (-> arg0 focus-mode) 0) (clear-poi-and-focus! arg0) (logclear! (-> arg0 focus-status) (focus-status disable)) (none) ) :check-too-far #f ) (new 'static 'bot-waypoint :waypoint-id 35 :nav-mesh-index 4 :skip-to 54 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 25) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 ai-task-control) (arg1 grim-sewer)) (when (>= (-> arg1 waypoint-request) 37) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 36 #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 36 :nav-mesh-index 5 :skip-to 54 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-choose-jump arg0))) (set! (-> v1-1 bytes 5) 2) (set! (-> v1-1 bytes 6) 26) (set! (-> v1-1 bytes 7) 27) (set! (-> v1-1 bytes 10) 28) (set! (-> v1-1 bytes 11) 29) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-choose-jump v1-1) check-done) (the-as (function ruft-choose-jump ruffian symbol) (lambda ((arg0 ai-task-control) (arg1 grim-sewer)) (when (or (ai-task-control-method-12 arg0 arg1) (< (-> arg1 root trans y) (+ -3072.0 (-> arg1 ruf-course spots 26 center y))) ) (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 54 :on-set (lambda ((arg0 grim-sewer)) (logior! (-> arg0 enemy-flags) (enemy-flag check-water check-water-backup)) (logior! (-> arg0 bot-flags) (bot-flags bf19)) (logclear! (-> arg0 focus-status) (focus-status disable)) (let ((v1-7 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-7 bytes 5) 1) (set! (-> v1-7 bytes 6) 30) (set! (-> v1-7 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-7) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 38 #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 38 :nav-mesh-index -1 :skip-to 54 :on-set (lambda ((arg0 grim-sewer)) (set! (-> arg0 follow-dir quad) (-> *hal2-course* dirs 7 quad)) (let ((v1-2 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-2 bytes 5) 1) (set! (-> v1-2 bytes 6) 31) (set! (-> v1-2 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-2) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (>= (-> arg1 waypoint-request) 42) (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 #f ) (new 'static 'bot-waypoint :waypoint-id 42 :nav-mesh-index -1 :skip-to 54 :on-set (lambda ((arg0 grim-sewer)) (logclear! (-> arg0 bot-flags) (bot-flags bf19)) (set! (-> arg0 min-speed) 20480.0) (set! (-> arg0 max-speed) 40960.0) (let ((v1-5 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-5 bytes 5) 1) (set! (-> v1-5 bytes 6) 32) (set! (-> v1-5 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-5) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (if (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) (logior! (-> arg1 bot-flags) (bot-flags bf19)) ) (when (and (>= (-> arg1 waypoint-request) 44) (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) ) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 45 #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 45 :nav-mesh-index -1 :skip-to 54 :on-set (lambda ((arg0 grim-sewer)) (logclear! (-> arg0 bot-flags) (bot-flags bf19)) (set! (-> arg0 min-speed) 40960.0) (set! (-> arg0 max-speed) 40960.0) (let ((v1-5 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-5 bytes 5) 1) (set! (-> v1-5 bytes 6) 33) (set! (-> v1-5 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-5) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 46 #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 46 :nav-mesh-index -1 :skip-to 54 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 34) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (outside-spot-radius? arg1 (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 #f ) (new 'static 'bot-waypoint :waypoint-id 47 :nav-mesh-index -1 :skip-to 54 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 35) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (if (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) (logior! (-> arg1 bot-flags) (bot-flags bf19)) ) (when (and (>= (-> arg1 waypoint-request) 48) (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) ) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 50 #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 50 :nav-mesh-index -1 :skip-to 54 :on-set (lambda ((arg0 grim-sewer)) (logclear! (-> arg0 bot-flags) (bot-flags bf19)) (let ((v1-3 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-3 bytes 5) 1) (set! (-> v1-3 bytes 6) 36) (set! (-> v1-3 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-3) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 51 #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 51 :nav-mesh-index -1 :skip-to 54 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 37) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 52 #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 52 :nav-mesh-index -1 :skip-to 54 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 38) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 53 #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 53 :nav-mesh-index -1 :skip-to 54 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 39) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (outside-spot-radius? arg1 (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 #f :check-too-far #f ) (new 'static 'bot-waypoint :waypoint-id 54 :nav-mesh-index 5 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 40) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (>= (-> arg1 waypoint-request) 58) (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 (lambda ((arg0 grim-sewer)) (ai-task-control-method-12 (-> arg0 ai-ctrl) arg0) (send-event arg0 'move-trans (-> arg0 ruf-course spots 41)) (logclear! (-> arg0 focus-status) (focus-status disable)) (set! (-> arg0 min-speed) 40960.0) (set! (-> arg0 max-speed) 40960.0) (logclear! (-> arg0 bot-flags) (bot-flags bf19)) (none) ) :check-too-far #f ) (new 'static 'bot-waypoint :waypoint-id 58 :nav-mesh-index -1 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (set! (-> arg0 focus-mode) 0) (clear-poi-and-focus! arg0) (logior! (-> arg0 bot-flags) (bot-flags bf19)) (let ((v1-5 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-5 bytes 5) 1) (set! (-> v1-5 bytes 6) 42) (set! (-> v1-5 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-5) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (>= (-> arg1 waypoint-request) 59) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 60 #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 60 :nav-mesh-index -1 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 43) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 61 #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 61 :nav-mesh-index -1 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 44) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 62 #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 62 :nav-mesh-index -1 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 45) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 63 #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 63 :nav-mesh-index -1 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 46) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 64 #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 64 :nav-mesh-index -1 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 47) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 65 #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 65 :nav-mesh-index -1 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (logclear! (-> arg0 bot-flags) (bot-flags bf19)) (let ((v1-3 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-3 bytes 5) 1) (set! (-> v1-3 bytes 6) 48) (set! (-> v1-3 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-3) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda ((arg0 object) (arg1 grim-sewer)) (when (outside-spot-radius? arg1 (the-as bot-spot #f) (the-as vector #f) #f) (ai-task-control-method-12 (-> arg1 ai-ctrl) arg1) (go-to-waypoint! arg1 66 #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 66 :nav-mesh-index -1 :skip-to -1 :on-set (lambda ((arg0 grim-sewer)) (let ((v1-1 (get-task-by-type (-> arg0 ai-ctrl) ruft-wait-spot arg0))) (set! (-> v1-1 bytes 5) 1) (set! (-> v1-1 bytes 6) 49) (set! (-> v1-1 bytes 4) -1) (set! (-> (the-as ruft-wait-spot v1-1) check-done) (the-as (function ruft-wait-spot ruffian symbol) (lambda () #f)) ) ) (none) ) :on-update #f :on-skipping-here #f :check-too-far #f ) ) :speeches (new 'static 'inline-array bot-speech-info 20 (new 'static 'bot-speech-info :flags (speech-flags sf11) :hold-time #x5a :slave-id -1 :name "hal157") (new 'static 'bot-speech-info :flags (speech-flags sf06 sf11) :hold-time #x5a :slave-id -1 :name "hal158") (new 'static 'bot-speech-info :flags (speech-flags sf11) :hold-time #x5a :slave-id -1 :name "hal156") (new 'static 'bot-speech-info :hold-time #x5a :slave-id -1 :tuning-id 1 :name "hal015") (new 'static 'bot-speech-info :flags (speech-flags sf01 sf08) :hold-time #x5a :slave-id -1 :name "hal038") (new 'static 'bot-speech-info :flags (speech-flags sf01 sf08) :hold-time #x5a :slave-id -1 :name "hal151") (new 'static 'bot-speech-info :flags (speech-flags sf01 sf02 sf08) :hold-time #x5a :slave-id -1 :name "hal152" ) (new 'static 'bot-speech-info :flags (speech-flags sf01 sf08) :hold-time #x5a :slave-id -1 :name "hal153") (new 'static 'bot-speech-info :flags (speech-flags sf01 sf08) :hold-time #x5a :slave-id -1 :name "hal154") (new 'static 'bot-speech-info :flags (speech-flags sf01 sf06) :hold-time #x5a :slave-id -1 :name "hal155") (new 'static 'bot-speech-info :flags (speech-flags sf01 sf06) :hold-time #x5a :slave-id -1 :name "hal039") (new 'static 'bot-speech-info :flags (speech-flags sf01 sf06) :hold-time #x5a :slave-id -1 :name "hal042") (new 'static 'bot-speech-info :flags (speech-flags sf01 sf06) :hold-time #x5a :slave-id -1 :name "hal041") (new 'static 'bot-speech-info :flags (speech-flags sf01 sf06) :hold-time #x5a :slave-id -1 :name "hal040") (new 'static 'bot-speech-info :flags (speech-flags sf01 sf06) :hold-time #x5a :slave-id -1 :name "hal043") (new 'static 'bot-speech-info :flags (speech-flags sf01 sf08) :hold-time #x5a :slave-id -1 :name "hal035") (new 'static 'bot-speech-info :flags (speech-flags sf01) :hold-time #x5a :slave-id -1 :name "hal161") (new 'static 'bot-speech-info :flags (speech-flags sf01) :hold-time #x5a :slave-id -1 :name "hal162") (new 'static 'bot-speech-info :flags (speech-flags sf01) :hold-time #x5a :slave-id -1 :name "hal163") (new 'static 'bot-speech-info :flags (speech-flags sf01) :hold-time #x5a :slave-id -1 :name "hal164") ) :speech-tunings (new 'static 'inline-array bot-speech-tuning 2 (new 'static 'bot-speech-tuning :fo-min 30 :fo-max #x8c :fo-curve 11 :trans? #t) (new 'static 'bot-speech-tuning :fo-min 30 :fo-max #x78 :fo-curve 1 :trans? #f) ) :spots (new 'static 'inline-array bot-spot 50 (new 'static 'bot-spot :center (new 'static 'vector :x 4616151.0 :y -207216.64 :z 2085355.5 :w 8192.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 4799938.5 :y -207216.64 :z 2086133.8 :w 8192.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 4827341.0 :y -207216.64 :z 2100510.8 :w 8192.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 4900208.5 :y -211435.52 :z 2130493.5 :w 8192.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 4945142.0 :y -212869.12 :z 2113536.0 :w 8192.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 4950057.0 :y -260751.36 :z 2125987.8 :w 6144.0) :blocked-xz-dist 8192.0 ) (new 'static 'bot-spot :center (new 'static 'vector :x 4958658.5 :y -260751.36 :z 2117386.2 :w 6144.0) :blocked-xz-dist 8192.0 ) (new 'static 'bot-spot :center (new 'static 'vector :x 4952883.0 :y -260751.36 :z 2102804.5 :w 6144.0) :blocked-xz-dist 8192.0 ) (new 'static 'bot-spot :center (new 'static 'vector :x 4957880.5 :y -271073.28 :z 2127954.0 :w 4096.0) :blocked-xz-dist 8192.0 ) (new 'static 'bot-spot :center (new 'static 'vector :x 4969431.0 :y -271073.28 :z 2116444.2 :w 4096.0) :blocked-xz-dist 8192.0 ) (new 'static 'bot-spot :center (new 'static 'vector :x 4955873.5 :y -269516.8 :z 2093137.9 :w 4096.0) :blocked-xz-dist 8192.0 ) (new 'static 'bot-spot :center (new 'static 'vector :x 4955463.5 :y -271564.8 :z 2060083.2 :w 12288.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 4994253.0 :y -272056.3 :z 2076753.9 :w 8192.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 4976312.5 :y -273326.1 :z 1885880.4 :w 8192.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 4947353.5 :y -272097.28 :z 1902592.0 :w 12288.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 4705116.0 :y -273858.56 :z 1906647.0 :w 12288.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 4734730.0 :y -273817.6 :z 1879572.5 :w 8192.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 4708393.0 :y -273858.56 :z 1703485.5 :w 16384.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 4749762.5 :y -273858.56 :z 1661050.9 :w 10240.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 4687749.0 :y -256614.4 :z 1458257.9 :w 10240.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 4658503.5 :y -261980.16 :z 1545134.1 :w 8192.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 4719657.0 :y -254607.36 :z 1413161.0 :w 12288.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 4766269.5 :y -248709.12 :z 1354465.2 :w 16384.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 4822098.0 :y -241254.4 :z 1300725.8 :w 12288.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 4895990.0 :y -236544.0 :z 1319321.6 :w 14336.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 4910858.0 :y -237568.0 :z 1411604.5 :w 8192.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 4910162.0 :y -353198.1 :z 1424957.5 :w 6144.0) :blocked-xz-dist 8192.0 ) (new 'static 'bot-spot :center (new 'static 'vector :x 4899389.5 :y -353198.1 :z 1425530.9 :w 6144.0) :blocked-xz-dist 8192.0 ) (new 'static 'bot-spot :center (new 'static 'vector :x 4909834.0 :y -363806.72 :z 1434951.6 :w 4096.0) :blocked-xz-dist 8192.0 ) (new 'static 'bot-spot :center (new 'static 'vector :x 4897751.0 :y -363806.72 :z 1433886.8 :w 4096.0) :blocked-xz-dist 8192.0 ) (new 'static 'bot-spot :center (new 'static 'vector :x 4919050.0 :y -363806.72 :z 1463705.6 :w 10240.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 5193892.0 :y -372858.88 :z 1494384.6 :w 10240.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 5505556.5 :y -363929.6 :z 1461575.6 :w 10240.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 5579653.0 :y -363929.6 :z 1495040.0 :w 20480.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 5604679.5 :y -363929.6 :z 1617428.5 :w 14336.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 5620285.5 :y -363929.6 :z 1695539.2 :w 14336.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 5568143.5 :y -363929.6 :z 1802076.1 :w 20480.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 5608571.0 :y -363929.6 :z 1845698.5 :w 18432.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 5811364.0 :y -363929.6 :z 1853440.0 :w 51200.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 5794119.5 :y -373432.3 :z 1982709.8 :w 47104.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 5566832.5 :y -363929.6 :z 2037022.8 :w 14336.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 5774663.5 :y -373432.3 :z 1945231.4 :w 4096.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 5572403.0 :y -363929.6 :z 1983447.0 :w 10240.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 5662105.5 :y -363929.6 :z 2038988.8 :w 10240.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 5696553.0 :y -361758.72 :z 2097438.8 :w 22528.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 5733867.5 :y -363929.6 :z 2178621.5 :w 24576.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 5743984.5 :y -363192.3 :z 2255093.8 :w 22528.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 5708022.0 :y -363642.88 :z 2328535.0 :w 24576.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 5633597.5 :y -363929.6 :z 2420162.5 :w 24576.0)) (new 'static 'bot-spot :center (new 'static 'vector :x 5586821.0 :y -363929.6 :z 2439741.5 :w 10240.0)) ) :ouch-speeches (new 'static 'bot-speech-list-shuffle :flags #xa :last-local-index -1 :speech-indexes (new 'static 'boxed-array :type int16 4 5 6 7 8 9 10 11 12 13 14 15) ) ) ) ;; failed to figure out what this is: (set! (-> *bot-course-table* course 4) *grim2-course*)