d/jak2: helldog (#2445)

The last of the missions that had a missing file.

I manually fixed some casting related to a `handle->process`, since this
is the last file...whatever not worth stressing about. But probably an
issue that will crop up in the future.

Co-authored-by: water <awaterford111445@gmail.com>
This commit is contained in:
Tyler Wilding
2023-03-31 17:38:34 -05:00
committed by GitHub
parent 2c98c5a6e0
commit 3c22eb061f
6 changed files with 661 additions and 12 deletions
+8
View File
@@ -51185,6 +51185,14 @@
)
)
(deftype mystery-traffic-object-spawn-params-2 (structure)
"(anon-function 5 helldog)"
((params traffic-object-spawn-params :inline)
(vec vector :inline)
(something-else int64)
)
)
(define-extern *paddywagon-constants* rigid-body-vehicle-constants)
(define-extern pw-iter-seg-new-dir-level (function pw-iter-seg nav-segment none))
(define-extern choose-next-branch-no-exit-level (function vehicle-controller paddywagon nav-branch))
@@ -1879,7 +1879,10 @@
"race-manager": [["L459", "attack-info"]],
"palcab-obs": [["L146", "attack-info"]],
"forest-obs": [["L240", "(pointer int32)", 4]],
"helldog": [["L72", "vector"]],
"helldog": [
["L72", "vector"],
["L68", "vector"]
],
"hosehead": [
["L261", "vector"],
["L260", "vector"],
@@ -2239,5 +2239,6 @@
[112, "vector"],
[128, "quaternion"],
[48, "quaternion"]
]
],
"(anon-function 5 helldog)": [[16, "mystery-traffic-object-spawn-params-2"]]
}
@@ -11116,5 +11116,12 @@
[1081, "s2", "process-drawable"],
[1094, "s2", "process-drawable"],
[1126, "s4", "citizen-rebel"]
]
],
"(anon-function 3 helldog)": [
[[19, 36], "s4", "helldog"],
[64, "s4", "process-drawable"],
[70, "s4", "process-drawable"],
[80, "s4", "helldog"]
],
"(anon-function 5 helldog)": [[181, "v0", "helldog"]]
}
@@ -5,5 +5,634 @@
;; name in dgo: helldog
;; dgos: LHELLDOG
(deftype mystery-traffic-object-spawn-params-2 (structure)
"(anon-function 5 helldog)"
((params traffic-object-spawn-params :inline)
(vec vector :inline)
(something-else int64)
)
)
;; og:update-with-merge
;; DECOMP BEGINS
(defmethod draw hud-helldog ((obj hud-helldog))
(set-hud-piece-position!
(the-as hud-sprite (-> obj sprites))
(the int (+ 457.0 (* 130.0 (-> obj offset))))
195
)
(format (clear (-> obj strings 0 text)) "~D" (-> obj values 0 current))
(set-as-offset-from! (the-as hud-sprite (-> obj strings 0 pos)) (the-as vector4w (-> obj sprites)) -18 25)
((method-of-type hud draw) obj)
0
(none)
)
(defmethod update-values hud-helldog ((obj hud-helldog))
(set! (-> obj values 0 target) (the int (-> *game-info* counter)))
((method-of-type hud update-values) obj)
0
(none)
)
(defmethod init-callback hud-helldog ((obj hud-helldog))
(set! (-> obj level) (level-get *level* 'ctywide))
(set! (-> obj gui-id)
(add-process *gui-control* obj (gui-channel hud-middle-right) (gui-action hidden) (-> obj name) 81920.0 0)
)
(logior! (-> obj flags) (hud-flags show))
(set! (-> obj sprites 0 tex) (lookup-texture-by-id (new 'static 'texture-id :index #x5 :page #x679)))
(set! (-> obj sprites 0 scale-x) 1.2)
(set! (-> obj sprites 0 scale-y) 1.2)
(set! (-> obj sprites 0 flags) (the-as uint 4))
(alloc-string-if-needed obj 0)
(set! (-> obj strings 0 scale) 0.6)
(set! (-> obj strings 0 flags) (font-flags kerning middle large))
0
(none)
)
(defskelgroup skel-helldog helldog helldog-lod0-jg helldog-idle-ja
((helldog-lod0-mg (meters 20)) (helldog-lod1-mg (meters 40)) (helldog-lod2-mg (meters 999999)))
:bounds (static-spherem 0 0 0 6.6)
:shadow helldog-shadow-mg
)
(define *helldog-constants*
(new 'static 'rigid-body-vehicle-constants
:info (new 'static 'rigid-body-info
:mass 20.0
:inv-mass 0.05
:linear-damping 0.995
:angular-damping 0.995
:bounce-factor 0.1
:friction-factor 0.05
:cm-offset-joint (new 'static 'vector :y 2048.0 :z -2048.0 :w 1.0)
:inertial-tensor-box (new 'static 'array meters 3 (meters 6) (meters 3) (meters 7))
)
:extra (new 'static 'rigid-body-object-extra-info
:max-time-step 0.033333335
:gravity (meters 40)
:idle-distance (meters 50)
:attack-force-scale 1.0
)
:name '*helldog-constants*
:flags #xc
:object-type #x13
:guard-type #x5
:max-engine-thrust (meters 50)
:inv-max-engine-thrust 0.0000048828124
:engine-response-rate 60.0
:engine-intake-factor 1.5
:brake-factor 3.5
:turbo-boost-factor 1.0
:max-xz-speed (meters 40)
:ground-probe-distance (meters 4.5)
:cos-ground-effect-angle 0.42261824
:spring-lift-factor 0.3
:air-drag-factor 1.0
:steering-thruster-factor 5.0
:steering-thruster-max-gain 4.0
:steering-thruster-half-gain-speed (meters 15)
:tire-friction-factor 0.5
:tire-static-friction 0.55
:tire-dynamic-friction 0.4
:tire-dynamic-friction-speed (meters 2)
:tire-inv-max-friction-speed 0.000034877234
:airfoil-factor 1.0
:drag-force-factor 1.0
:speed-scrubbing-drag 10.0
:speed-limiting-drag 0.5
:pitch-control-factor 0.5
:roll-control-factor 1.0
:jump-thrust-factor 0.5
:buoyancy-factor 1.0
:player-weight 163840.0
:player-shift-x (meters 0.6)
:player-shift-z (meters 1)
:target-speed-offset (meters -2)
:turning-accel (meters 45)
:toughness-factor 1.0
:damage-factor 2.0
:camera-string-min-height (meters 4.5)
:camera-string-max-height (meters 4.5)
:camera-string-min-length (meters 5)
:camera-string-max-length (meters 12.5)
:camera-min-fov 15109.688
:camera-max-fov 17476.268
:camera-head-offset 8192.0
:camera-foot-offset 4096.0
:camera-air-max-angle-offset 5461.3335
:camera-max-lookaround-speed 40960.0
:seat-count 2
:section-count 4
:rider-stance #x1
:grab-rail-array #f
:seat-array (new 'static 'inline-array vehicle-seat-info 4
(new 'static 'vehicle-seat-info
:position (new 'static 'vector :x 5120.0 :y 819.2 :z 2457.6 :w (the-as float #x10000))
)
(new 'static 'vehicle-seat-info
:position (new 'static 'vector :x -5120.0 :y 819.2 :z 2457.6 :w (the-as float #x20000))
)
(new 'static 'vehicle-seat-info)
(new 'static 'vehicle-seat-info)
)
:rider-hand-offset (new 'static 'inline-array vector 2
(new 'static 'vector :x 2457.6 :y 409.6 :z 4710.4 :w 1.0)
(new 'static 'vector :x -2457.6 :y 409.6 :z 4710.4 :w 1.0)
)
:section-bike-front (new 'static 'vehicle-section-info
:damage-seg-array (new 'static 'array uint64 3 #x200 #x20 #x2)
:damage-seg-count 3
)
:section-bike-rear (new 'static 'vehicle-section-info
:damage-seg-array (new 'static 'array uint64 3 #x400 #x40 #x4)
:damage-seg-count 3
)
:section-car-front-right (new 'static 'vehicle-section-info
:damage-seg-array (new 'static 'array uint64 3 #x800 #x80 #x8)
:damage-seg-count 3
)
:section-car-rear-right (new 'static 'vehicle-section-info
:damage-seg-array (new 'static 'array uint64 3 #x1000 #x100 #x10)
:damage-seg-count 3
)
:explosion #f
:engine-pitch-scale 0.25
:engine-pitch-mod-amp 0.025
:engine-sound-select #x8
:engine-sound (static-sound-name "vehicle-engine")
:thrust-sound (static-sound-name "bike-thrust")
:scrape-sound (static-sound-name "car-scrape-stn")
:glance-sound (static-sound-name "car-glance-stn")
:impact-sound (static-sound-name "car-impact-stn")
:extra-sound (static-sound-name "car-by-1")
:explosion-part #xa1
:headlight-count 3
:taillight-count 2
:thruster-flame-width (meters 0.6)
:thruster-flame-length (meters 2)
:thruster-local-pos (new 'static 'inline-array vector 2
(new 'static 'vector :x 6144.0 :y 4096.0 :z -17612.8 :w 1.0)
(new 'static 'vector :x -6144.0 :y 4096.0 :z -17612.8 :w 1.0)
)
:exhaust-local-pos (new 'static 'inline-array vector 2
(new 'static 'vector :x 6144.0 :y 5529.6 :z -17612.8 :w 1.0)
(new 'static 'vector :x -6144.0 :y 5529.6 :z -17612.8 :w 1.0)
)
:exhaust-local-dir (new 'static 'inline-array vector 2 (new 'static 'vector :z -1.0 :w 1.0) (new 'static 'vector :z -1.0 :w 1.0))
:smoke-local-pos (new 'static 'inline-array vector 2
(new 'static 'vector :x 2048.0 :y 4096.0 :z -16384.0 :w 1.0)
(new 'static 'vector :x -2048.0 :y 4096.0 :z -16384.0 :w 1.0)
)
:smoke-local-vel (new 'static 'inline-array vector 2
(new 'static 'vector :x 2048.0 :w 1.0)
(new 'static 'vector :x -2048.0 :w 1.0)
)
:headlight-local-pos (new 'static 'inline-array vector 3
(new 'static 'vector :x 5734.4 :y 1843.2 :z 15769.6 :w 1.0)
(new 'static 'vector :x -5734.4 :y 1843.2 :z 15769.6 :w 1.0)
(new 'static 'vector :y 6963.2 :z 6922.24 :w 1.0)
)
:taillight-local-pos (new 'static 'inline-array vector 2
(new 'static 'vector :x 10362.88 :y 4710.4 :z -16998.4 :w 1.0)
(new 'static 'vector :x -10362.88 :y 4710.4 :z -16998.4 :w 1.0)
)
:lift-thruster-count 2
:roll-thruster-count 2
:steering-thruster-count 2
:stabilizer-count 4
:inv-lift-thruster-count 0.5
:lift-thruster-array (new 'static 'inline-array vehicle-control-point 2
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y 2048.0 :z 8192.0 :w 1.0)
:normal (new 'static 'vector :y -1.0 :w 1.0)
)
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y 2048.0 :z -12288.0 :w 1.0)
:normal (new 'static 'vector :y -1.0 :w 1.0)
)
)
:roll-thruster-array (new 'static 'inline-array vehicle-control-point 2
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :x 6963.2 :y 2867.2 :z -2048.0 :w 1.0)
:normal (new 'static 'vector :x 0.3 :y -0.6 :w 1.0)
)
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :x -6963.2 :y 2867.2 :z -2048.0 :w 1.0)
:normal (new 'static 'vector :x -0.3 :y -0.6 :w 1.0)
)
)
:steering-thruster-array (new 'static 'inline-array vehicle-control-point 2
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y 2048.0 :z 5734.4 :w 1.0)
:normal (new 'static 'vector :x 1.0 :w 1.0)
)
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y 2048.0 :z -9830.4 :w 1.0)
:normal (new 'static 'vector :x -1.0 :w 1.0)
)
)
:stabilizer-array (new 'static 'inline-array vehicle-control-point 6
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y 2048.0 :z -10240.0 :w 1.0)
:normal (new 'static 'vector :x 1.0 :w 1.0)
)
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y 2048.0 :z 6144.0 :w 1.0)
:normal (new 'static 'vector :x 1.0 :w 0.5)
)
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y 2048.0 :z -2048.0 :w 1.0)
:normal (new 'static 'vector :x 1.0 :w 2.0)
)
(new 'static 'vehicle-control-point
:local-pos (new 'static 'vector :y 2048.0 :z -10240.0 :w 1.0)
:normal (new 'static 'vector :y 1.0 :w 1.0)
)
(new 'static 'vehicle-control-point)
(new 'static 'vehicle-control-point)
)
:engine-thrust-local-pos (new 'static 'vector :y 2048.0 :z -7782.4 :w 1.0)
:brake-local-pos (new 'static 'vector :z -5734.4 :w 1.0)
:color-option-count 1
:color-option-array (new 'static 'inline-array vector 1 (new 'static 'vector :x 1.0 :y 1.0 :z 1.0 :w 1.0))
)
)
(define *helldog-front-turret-control-info* (new 'static 'turret-control-info
:joint-index 4
:barrel-count 1
:shot-speed 819200.0
:attack-range 286720.0
:rot-min (new 'static 'array float 2 -16384.0 -21845.334)
:rot-max (new 'static 'array float 2 0.0 21845.334)
:local-pos (new 'static 'vector :y -1433.6 :z 4096.0 :w 1.0)
:local-dir (new 'static 'vector :z 1.0 :w 1.0)
:barrel-array (new 'static 'inline-array turret-barrel-info 4
(new 'static 'turret-barrel-info
:local-pos (new 'static 'vector :y -1433.6 :z 4096.0 :w 1.0)
:local-dir (new 'static 'vector :z 1.0 :w 1.0)
)
(new 'static 'turret-barrel-info)
(new 'static 'turret-barrel-info)
(new 'static 'turret-barrel-info)
)
)
)
(define *helldog-top-turret-control-info* (new 'static 'turret-control-info
:joint-index #x6
:barrel-count 2
:shot-speed 819200.0
:attack-range 286720.0
:rot-min (new 'static 'array float 2 -1820.4445 -65536.0)
:rot-max (new 'static 'array float 2 1820.4445 65536.0)
:local-pos (new 'static 'vector :y -1433.6 :z 4096.0 :w 1.0)
:local-dir (new 'static 'vector :z 1.0 :w 1.0)
:barrel-array (new 'static 'inline-array turret-barrel-info 4
(new 'static 'turret-barrel-info
:local-pos (new 'static 'vector :x 5734.4 :y -819.2 :z 6144.0 :w 1.0)
:local-dir (new 'static 'vector :z 1.0 :w 1.0)
)
(new 'static 'turret-barrel-info
:local-pos (new 'static 'vector :x -5734.4 :y -819.2 :z 6144.0 :w 1.0)
:local-dir (new 'static 'vector :z 1.0 :w 1.0)
)
(new 'static 'turret-barrel-info)
(new 'static 'turret-barrel-info)
)
)
)
(deftype helldog (hellcat)
((current-level level :offset-assert 1080)
)
:heap-base #x3c0
:method-count-assert 159
:size-assert #x43c
:flag-assert #x9f03c0043c
)
(defmethod init-skel-and-rigid-body helldog ((obj helldog))
(with-pp
(set! (-> pp level) (level-get *level* 'lhelldog))
(initialize-skeleton
obj
(the-as skeleton-group (art-group-get-by-name *level* "skel-helldog" (the-as (pointer uint32) #f)))
(the-as pair 0)
)
(alloc-and-init-rigid-body-control obj *helldog-constants*)
(set-info (-> obj turret) *helldog-top-turret-control-info*)
(set! (-> obj turret guard-settings)
(the-as
traffic-guard-type-settings
(new 'static 'vector :y 0.125 :z (the-as float #x3c004b) :w 0.0000000000000000000000000000000000015517602)
)
)
(logior! (-> obj turret flags) (turret-flag no-rot-y-clamp))
(set! (-> obj turret-jm) (new 'process 'joint-mod-rotate-local obj (-> obj turret info joint-index) #t))
(set! (-> obj flags)
(the-as rigid-body-object-flag (logior (rigid-body-object-flag no-hijack) (-> obj flags)))
)
(if (not (-> obj minimap))
(set! (-> obj minimap) (add-icon! *minimap* obj (the-as uint 15) (the-as int #f) (the-as vector #t) 0))
)
0
(none)
)
)
(defmethod vehicle-method-82 helldog ((obj helldog))
((method-of-type vehicle vehicle-method-82) obj)
(none)
)
(defmethod vehicle-method-120 helldog ((obj helldog))
(let ((t9-0 (method-of-type hellcat vehicle-method-120)))
(t9-0 obj)
)
(if (logtest? (-> obj controller flags) (vehicle-controller-flag attached))
(set! (-> obj current-level) (the-as level (-> obj controller branch dest-node level)))
(set! (-> obj current-level) #f)
)
0
(none)
)
(defmethod vehicle-method-128 helldog ((obj helldog))
(let ((t9-0 (method-of-type vehicle vehicle-method-128)))
(t9-0 obj)
)
(logior! (-> obj flags) (rigid-body-object-flag persistent))
0
(none)
)
(defmethod vehicle-method-127 helldog ((obj helldog))
((method-of-type vehicle vehicle-method-127) obj)
0
(none)
)
(defmethod vehicle-method-129 helldog ((obj helldog))
(when (-> obj minimap)
(logior! (-> obj minimap flags) (minimap-flag fade-out))
(set! (-> obj minimap) #f)
)
((method-of-type vehicle vehicle-method-129) obj)
0
(none)
)
(defmethod vehicle-method-134 helldog ((obj helldog) (arg0 process))
"Stubbed"
(logior! (-> obj controller flags) (vehicle-controller-flag ignore-others))
(set! (-> obj controller target-speed-offset) 81920.0)
(let ((t9-0 (method-of-type vehicle-guard vehicle-method-134)))
(t9-0 obj arg0)
)
(vehicle-method-111 obj 2 (the-as target arg0))
(go (method-of-object obj hostile))
0
(none)
)
(defmethod vehicle-method-108 helldog ((obj helldog))
(set! (-> obj flags)
(the-as rigid-body-object-flag (logior (rigid-body-object-flag persistent in-pursuit) (-> obj flags)))
)
(logior! (-> obj controller flags) (vehicle-controller-flag ignore-others))
0
(none)
)
(defstate active (helldog)
:virtual #t
:enter (behavior ()
(vehicle-method-107 self)
(let ((t9-1 (-> (method-of-type hellcat active) enter)))
(if t9-1
(t9-1)
)
)
(none)
)
)
(defstate hostile (helldog)
:virtual #t
:enter (behavior ()
(set! (-> self ai-hook) (method-of-object self vehicle-method-93))
(none)
)
:trans (the-as (function none :behavior helldog) #f)
:code (the-as (function none :behavior helldog) sleep-code)
:post (behavior ()
(vehicle-guard-method-158 self)
(none)
)
)
(defstate die (helldog)
:virtual #t
:code (behavior ()
(cleanup-for-death self)
(none)
)
)
(set-subtask-hook!
*game-info*
147
0
(the-as
(function object)
(lambda :behavior task-manager
()
(change-parent self *traffic-manager*)
(set! (-> self end-pos quad) (-> (new 'static 'vector :x 4136960.0 :y 32768.0 :z 4677632.0 :w 1.0) quad))
(set-setting! 'minimap 'clear 0 32)
(set-setting! 'exclusive-task #f 0 (-> self node-info task))
(until (= (level-status *level* 'lwidea) 'active)
(suspend)
)
(if (task-node-closed? (game-task-node city-destroy-guard-vehicles-destroy))
(go-virtual complete)
)
(set! (-> self start-time) 0)
(set! (-> self max-count) 5)
(set! (-> self count) (-> self max-count))
(set-vector! (-> self data-vector 0) 3284992.0 73728.0 2019328.0 0.0)
(set-vector! (-> self data-vector 1) 4653056.0 69632.0 2519040.0 31857.777)
(set-vector! (-> self data-vector 2) 4366336.0 73728.0 323584.0 0.0)
(set-vector! (-> self data-vector 3) 2101248.0 73728.0 -114688.0 27852.8)
(set-vector! (-> self data-vector 4) 1687552.0 73728.0 -819200.0 2366.578)
(let ((gp-1 (new 'stack-no-clear 'mystery-traffic-object-spawn-params-2)))
(set! (-> gp-1 something-else) 0)
(set! (-> gp-1 params object-type) (traffic-type tt17))
(set! (-> gp-1 params behavior) (the-as uint 1))
(set! (-> gp-1 params id) (the-as uint 0))
(set! (-> gp-1 params nav-mesh) #f)
(set! (-> gp-1 params nav-branch) #f)
(set! (-> gp-1 params proc) #f)
(set! (-> gp-1 params handle) (the-as handle #f))
(set! (-> gp-1 params user-data) (the-as uint 0))
(set! (-> gp-1 params flags) (traffic-spawn-flags))
(set! (-> gp-1 params guard-type) (the-as uint 7))
(vector-reset! (-> gp-1 params velocity))
(vector-reset! (-> gp-1 params position))
(vector-reset! (-> gp-1 params velocity))
(countdown (s5-0 (-> self count))
(set! (-> gp-1 params id) (the-as uint (+ (-> gp-1 something-else) 122)))
(set! (-> gp-1 params position quad) (-> self data-vector (-> gp-1 something-else) quad))
(let ((f30-0 (-> gp-1 params position w)))
(set-vector! (-> gp-1 vec) (sin f30-0) 0.0 (cos f30-0) 1.0)
)
(set! (-> gp-1 params position w) 1.0)
(forward-up-nopitch->quaternion (-> gp-1 params rotation) (-> gp-1 vec) (new 'static 'vector :y 1.0 :w 1.0))
(let ((s4-1 (the-as helldog (vehicle-spawn self helldog (-> gp-1 params)))))
(when s4-1
(let ((v1-32 (-> gp-1 something-else)))
(set! (-> s4-1 current-level) (the-as level (cond
((zero? v1-32)
'ctyindb
)
((= v1-32 1)
'ctyindb
)
((= v1-32 2)
'ctysluma
)
((= v1-32 3)
'ctyslumb
)
((= v1-32 4)
'ctyslumb
)
(else
#f
)
)
)
)
)
(set! (-> self slave (-> gp-1 something-else)) (process->handle s4-1))
(send-event *traffic-manager* 'add-object (-> gp-1 params object-type) s4-1)
(+! (-> gp-1 something-else) 1)
)
(if (not s4-1)
(format 0 "failed to spawn helldog~%")
)
)
)
(send-event *traffic-manager* 'set-object-target-count (-> gp-1 params object-type) 0)
)
(send-event *traffic-manager* 'set-guard-target-count-range 5 0 0)
(set! (-> *game-info* counter) (the float (-> self max-count)))
(none)
)
)
)
(set-subtask-hook! *game-info* 147 1 (the-as (function object) (lambda :behavior task-manager () (none))))
(set-subtask-hook!
*game-info*
147
2
(the-as
(function object)
(lambda :behavior task-manager
()
(let ((gp-0 0))
(dotimes (s5-0 (-> self max-count))
(let ((s4-0 (handle->process (-> self slave s5-0))))
(when (and s4-0 (not (logtest? (-> (the-as helldog s4-0) focus-status) (focus-status dead))))
(cond
((or (not (-> (the-as helldog s4-0) current-level))
(= (level-status *level* (the-as symbol (-> (the-as helldog s4-0) current-level))) 'active)
)
(when (focus-test? (the-as helldog s4-0) inactive)
(let ((s3-0 (new 'stack 'traffic-object-spawn-params)))
(set! (-> s3-0 object-type) (traffic-type tt17))
(set! (-> s3-0 behavior) (the-as uint 2))
(set! (-> s3-0 id) (the-as uint 0))
(set! (-> s3-0 nav-mesh) #f)
(set! (-> s3-0 nav-branch) #f)
(set! (-> s3-0 proc) #f)
(set! (-> s3-0 handle) (-> self slave s5-0))
(set! (-> s3-0 user-data) (the-as uint 0))
(set! (-> s3-0 flags) (traffic-spawn-flags trsflags-01))
(set! (-> s3-0 guard-type) (the-as uint 7))
(vector-reset! (-> s3-0 velocity))
(set! (-> s3-0 position quad) (-> (the-as process-drawable s4-0) root trans quad))
(quaternion-copy! (-> s3-0 rotation) (-> (the-as process-drawable s4-0) root quat))
(activate-by-handle *traffic-engine* s3-0)
)
)
)
(else
(if (not (focus-test? (the-as helldog s4-0) inactive))
(send-event s4-0 'traffic-off-force)
)
)
)
(+! gp-0 1)
)
)
)
(set! (-> self count) gp-0)
(set! (-> *game-info* counter) (the float gp-0))
(if (zero? gp-0)
(go-virtual complete)
)
)
(none)
)
)
)
(set-subtask-hook!
*game-info*
147
3
(the-as
(function object)
(lambda :behavior task-manager
()
(set! (-> self hud-counter) (ppointer->handle (process-spawn hud-helldog :init hud-init-by-other :to self)))
(none)
)
)
)
(set-subtask-hook! *game-info* 147 5 (the-as (function object) (lambda :behavior task-manager () (none))))
(set-subtask-hook!
*game-info*
147
4
(the-as
(function object)
(lambda :behavior task-manager
()
(task-node-close! (game-task-node city-destroy-guard-vehicles-destroy))
(talker-spawn-func (-> *talker-speech* 98) *entity-pool* (target-pos 0) (the-as region #f))
(while (let ((a0-3 (the-as process #f)))
(dotimes (v1-1 (-> self max-count))
(set! a0-3 (the-as process (or a0-3 (handle->process (-> self slave v1-1)))))
)
a0-3
)
(suspend)
)
(task-node-close! (game-task-node city-destroy-guard-vehicles-resolution))
(none)
)
)
)
+10 -9
View File
@@ -8,6 +8,7 @@
"DGO/ATO.DGO",
"DGO/CAB.DGO",
"DGO/CAP.DGO",
"DGO/CAS.DGO",
"DGO/CFB.DGO",
"DGO/CGA.DGO",
"DGO/CGB.DGO",
@@ -18,17 +19,17 @@
"DGO/COA.DGO",
"DGO/COB.DGO",
"DGO/CPA.DGO",
"DGO/CTA.DGO",
"DGO/LPROTECT.DGO",
"DGO/CPO.DGO",
"DGO/CTA.DGO",
"DGO/CTB.DGO",
"DGO/CTC.DGO",
"DGO/CTYASHA.DGO",
"DGO/CTYKORA.DGO",
"DGO/CWI.DGO",
"DGO/DEMO.DGO",
"DGO/DG1.DGO",
"DGO/DRB.DGO",
"DGO/DMI.DGO",
"DGO/DRB.DGO",
"DGO/FDA.DGO",
"DGO/FDB.DGO",
"DGO/FEA.DGO",
@@ -43,12 +44,16 @@
"DGO/INTROCST.DGO",
"DGO/KIOSK.DGO",
"DGO/LBBUSH.DGO",
"DGO/LBRNERMK.DGO",
"DGO/LBOMBBOT.DGO",
"DGO/LBRNERMK.DGO",
"DGO/LERLCHAL.DGO",
"DGO/LHELLDOG.DGO",
"DGO/LKIDDOGE.DGO",
"DGO/LMEETBRT.DGO",
"DGO/LPACKAGE.DGO",
"DGO/LPORTRUN.DGO",
"DGO/LPOWER.DGO",
"DGO/LPROTECT.DGO",
"DGO/LSACK.DGO",
"DGO/LSHUTTLE.DGO",
"DGO/MCN.DGO",
@@ -58,15 +63,11 @@
"DGO/ONINTENT.DGO",
"DGO/ORACLE.DGO",
"DGO/OUTROCST.DGO",
"DGO/CAS.DGO",
"DGO/LPACKAGE.DGO",
"DGO/LPOWER.DGO",
"DGO/PAC.DGO",
"DGO/PAE.DGO",
"DGO/PALOUT.DGO",
"DGO/PALBOSS.DGO",
"DGO/PALOUT.DGO",
"DGO/PAR.DGO",
"DGO/DEMO.DGO",
"DGO/PAS.DGO",
"DGO/PRI.DGO",
"DGO/RUI.DGO",