fix orb in sewers being unobtainable after starting sewer escort (+ some more type fixes) (#2757)

Total hack but it does seem to work correctly.

Fixes #2756
This commit is contained in:
ManDude 2023-06-20 04:25:03 +01:00 committed by GitHub
parent 0c729437bb
commit 15ef95e036
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
29 changed files with 169 additions and 65 deletions

View File

@ -20253,7 +20253,7 @@
:bitfield #t
:type uint16
(bit-0 0) ;; blocks birth
(bit-1 1) ;; dead? error?
(error 1)
(dead 2)
(no-kill 3)
(bit-4 4)
@ -20279,7 +20279,7 @@
(user-uint8 uint8 8 :offset 0) ;; guessed by decompiler
(status entity-perm-status :offset 8) ;; entity-perm-status
(dummy uint8 1 :offset 10) ;; guessed by decompiler
(task uint8 :offset 11) ;; game-task
(task game-task :offset 11) ;; game-task
(aid actor-id :offset 12) ;; guessed by decompiler
(quad uint128 :offset 0)
)

View File

@ -818,7 +818,7 @@
(defstate blocked (collectable)
:virtual #t
:trans (behavior ()
(if (task-complete? *game-info* (the-as game-task (-> self entity extra perm task)))
(if (task-complete? *game-info* (-> self entity extra perm task))
(go-virtual wait)
)
(none)
@ -1615,11 +1615,11 @@ This commonly includes things such as:
(if (when a0-11
(let ((a0-12 (-> a0-11 extra perm task)))
(if a0-12
(zero? a0-12)
(= a0-12 (game-task none))
)
)
)
(set! (-> obj entity extra perm task) (the-as uint 1))
(set! (-> obj entity extra perm task) (game-task complete))
)
)
(initialize-skeleton
@ -1930,10 +1930,10 @@ This commonly includes things such as:
(let ((v1-22 (-> obj entity)))
(if (and (-> obj entity)
(-> v1-22 extra perm task)
(zero? (-> v1-22 extra perm task))
(= (-> v1-22 extra perm task) (game-task none))
(type-type? (-> v1-22 etype) crate)
)
(set! (-> obj entity extra perm task) (the-as uint 1))
(set! (-> obj entity extra perm task) (game-task complete))
)
)
(initialize-skeleton
@ -2024,11 +2024,11 @@ This commonly includes things such as:
(if (when a0-11
(let ((a0-12 (-> a0-11 extra perm task)))
(if a0-12
(zero? a0-12)
(= a0-12 (game-task none))
)
)
)
(set! (-> obj entity extra perm task) (the-as uint 1))
(set! (-> obj entity extra perm task) (game-task complete))
)
)
(initialize-skeleton

View File

@ -1137,11 +1137,11 @@
(if (when a0-6
(let ((a0-7 (-> a0-6 extra perm task)))
(if a0-7
(zero? a0-7)
(= a0-7 (game-task none))
)
)
)
(set! (-> self entity extra perm task) (the-as uint 1))
(set! (-> self entity extra perm task) (game-task complete))
)
)
)

View File

@ -9,7 +9,7 @@
:bitfield #t
:type uint16
(bit-0 0) ;; blocks birth
(bit-1 1)
(error 1)
(dead 2)
(no-kill 3)
(bit-4 4)
@ -80,7 +80,7 @@
(user-uint8 uint8 8 :offset 0)
(status entity-perm-status :offset 8)
(dummy uint8 1 :offset 10)
(task uint8 :offset 11)
(task game-task :offset 11)
(aid actor-id :offset 12)
(quad uint128 :offset 0)
)

View File

@ -706,11 +706,11 @@
)
(cond
((= (-> obj type) entity-actor)
(set! (-> obj extra perm task) (the-as uint (-> obj task)))
(set! (-> obj extra perm task) (-> obj task))
(set! (-> obj extra vis-id) (-> obj vis-id))
)
(else
(set! (-> obj extra perm task) (the-as uint 0))
(set! (-> obj extra perm task) (game-task none))
(set! (-> obj extra vis-id) 0)
0
)
@ -1105,7 +1105,7 @@
(bucket-id debug-no-zbuf1)
(res-lump-struct sv-16 'name string)
(-> (the-as process-drawable arg0) root trans)
(if (logtest? (-> sv-16 extra perm status) (entity-perm-status bit-0 bit-1))
(if (logtest? (-> sv-16 extra perm status) (entity-perm-status bit-0 error))
(font-color red)
(font-color white)
)
@ -1250,7 +1250,7 @@
(set! sv-32 (the-as int (bucket-id debug-no-zbuf1)))
(let ((a2-4 (res-lump-struct s2-0 'name structure))
(a3-2 sv-20)
(t0-1 (if (logtest? (-> s2-0 extra perm status) (entity-perm-status bit-0 bit-1))
(t0-1 (if (logtest? (-> s2-0 extra perm status) (entity-perm-status bit-0 error))
1
5
)
@ -1621,7 +1621,7 @@
;; WARN: Return type mismatch symbol vs none.
(defun entity-deactivate-handler ((arg0 process) (arg1 entity-actor))
(when (= arg0 (-> arg1 extra process))
(logclear! (-> arg1 extra perm status) (entity-perm-status bit-1 no-kill))
(logclear! (-> arg1 extra perm status) (entity-perm-status error no-kill))
(set! (-> arg1 extra process) #f)
)
(none)
@ -1928,7 +1928,7 @@
((= arg0 'game)
(logclear! (-> obj status) arg1)
)
((task-complete? *game-info* (the-as game-task (-> obj task)))
((task-complete? *game-info* (-> obj task))
(logclear! (-> obj status) (logior (if (logtest? (-> obj status) (entity-perm-status bit-4))
524
0
@ -2319,7 +2319,7 @@
(defun entity-task-complete-off ((arg0 entity))
(let ((v1-0 (-> arg0 extra)))
(if (!= (-> v1-0 perm task) 1)
(if (!= (-> v1-0 perm task) (game-task complete))
(logclear! (-> *game-info* task-perm-list data (-> v1-0 perm task) status) (entity-perm-status complete))
)
)

View File

@ -1166,7 +1166,7 @@
)
(when actor-perm
(set! (-> entity-perm quad) (-> actor-perm quad))
(update entity-perm 'try (entity-perm-status bit-0 bit-1 dead no-kill bit-5 subtask-complete bit-9 bit-12))
(update entity-perm 'try (entity-perm-status bit-0 error dead no-kill bit-5 subtask-complete bit-9 bit-12))
)
)
)

View File

@ -12315,7 +12315,7 @@
(let ((v1-8 (new 'global 'entity-perm-array 110)))
(set! (-> gp-0 task-perm-list) v1-8)
(dotimes (a0-16 (-> v1-8 length))
(set! (-> v1-8 data a0-16 task) (the-as uint a0-16))
(set! (-> v1-8 data a0-16 task) (the-as game-task a0-16))
)
(logior! (-> v1-8 data 1 status) (entity-perm-status complete))
)

View File

@ -14643,6 +14643,11 @@
(set! (-> demo memory-mode) (load-buffer-mode small-edge))
)
(#when PC_PORT
(set! (-> sewesc activate-func) 'sewesc-activate)
(set! (-> sewesc deactivate-func) 'sewesc-deactivate)
)
(define *level-load-list* '(default-level
intro
demo

View File

@ -193,7 +193,7 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
)
(when (not arg1)
(if (-> arg0 entity)
(logior! (-> arg0 entity extra perm status) (entity-perm-status bit-1))
(logior! (-> arg0 entity extra perm status) (entity-perm-status error))
)
(go process-drawable-art-error "no nav-mesh")
(return 0)

View File

@ -243,7 +243,7 @@
)
(else
(if (-> arg0 entity)
(logior! (-> arg0 entity extra perm status) (entity-perm-status bit-1))
(logior! (-> arg0 entity extra perm status) (entity-perm-status error))
)
#f
)

View File

@ -600,7 +600,7 @@
:code (behavior ((arg0 string))
(format 0 "ART ERROR: ~A for ~A~%" arg0 self)
(if (-> self entity)
(logior! (-> self entity extra perm status) (entity-perm-status bit-1))
(logior! (-> self entity extra perm status) (entity-perm-status error))
)
(let* ((s5-0 (-> self root))
(v1-6 (if (type? s5-0 collide-shape)
@ -1832,7 +1832,7 @@
(if arg2
(set! (-> s4-0 options) (actor-option auto-pickup))
)
(when (and (nonzero? s5-0) (not (task-complete? *game-info* (the-as game-task s5-0))))
(when (and (nonzero? s5-0) (not (task-complete? *game-info* s5-0)))
(label cfg-12)
(birth-pickup-at-point gp-0 (pickup-type fuel-cell) (the float s5-0) #f self s4-0)
(when (not (-> self child))

View File

@ -1344,7 +1344,7 @@ This commonly includes things such as:
(logior! (-> obj button-status) (button-status button-status-3))
(set! (-> obj event-going-down) 'trigger)
(set! (-> obj event-going-up) 'untrigger)
(if (and (= (-> obj entity extra perm task) 61)
(if (and (= (-> obj entity extra perm task) (game-task drill-mech))
(task-node-closed? (game-task-node drill-mech-smash-consoles))
(= (-> obj timeout) 0.0)
)

View File

@ -193,7 +193,9 @@
(defmethod set-flipped-state drill-flip-step ((obj drill-flip-step))
"Set the state of the platform based on the completion of the drill-mech task."
(if (and (= (-> obj entity extra perm task) 61) (task-node-closed? (game-task-node drill-mech-smash-consoles)))
(if (and (= (-> obj entity extra perm task) (game-task drill-mech))
(task-node-closed? (game-task-node drill-mech-smash-consoles))
)
(process-entity-status! obj (entity-perm-status bit-12) #t)
)
(if (and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status bit-12)))
@ -899,7 +901,7 @@ This commonly includes things such as:
(init-collision! obj)
(process-drawable-from-entity! obj arg0)
(skel-init! obj)
(set! (-> obj entity extra perm task) (the-as uint 26))
(set! (-> obj entity extra perm task) (game-task drill-eggs))
(set! (-> obj notify-actor) (entity-actor-lookup (-> obj entity) 'alt-actor 0))
(set! sv-16 (new 'static 'res-tag))
(let ((v1-6 (res-lump-data (-> obj entity) 'actor-groups pointer :tag-ptr (& sv-16))))

View File

@ -1177,3 +1177,83 @@ This commonly includes things such as:
0
(none)
)
(#when PC_PORT
;; added to fix missing skill
;; serves as a template
(define *skill-sewesc-from-sewer* (new 'static 'entity-perm
:task (game-task complete)
:status (entity-perm-status)
:aid #x8917))
(defun get-skill-sewesc-from-sewer-perm ()
"returns the entity perm for the skill-sewesc-from-sewer process."
(let ((game-perms (-> *game-info* perm-list))
(skill-perm (actor-perm *game-info* (-> *skill-sewesc-from-sewer* aid))))
(cond
(skill-perm
skill-perm)
((< (-> game-perms length) (-> game-perms allocated-length))
(set! (-> game-perms data (-> game-perms length) quad) (-> *skill-sewesc-from-sewer* quad))
(+! (-> game-perms length) 1)
(-> game-perms data (1- (-> game-perms length))))
)
)
)
(defun sewesc-deactivate ()
"deactivate func for sewesc.
added."
(kill-by-name "skill-sewesc-from-sewer-tracker" *active-pool*)
(kill-by-name "skill-sewesc-from-sewer" *active-pool*)
(let ((perm-to-use (get-skill-sewesc-from-sewer-perm)))
(logclear! (-> perm-to-use status) (entity-perm-status error))
)
0)
(defun sewesc-activate ()
"activate func for sewesc.
added."
(process-spawn-function process :name "skill-sewesc-from-sewer-tracker"
(lambda :behavior process ()
(suspend)
(suspend)
(loop
(let ((perm-to-use (get-skill-sewesc-from-sewer-perm)))
(cond
((logtest? (-> perm-to-use status) (entity-perm-status dead))
;; skill is already collected
)
((process-by-name "skill-sewesc-from-sewer" *active-pool*)
;; skill is alive
(logior! (-> perm-to-use status) (entity-perm-status error)))
((logtest? (-> perm-to-use status) (entity-perm-status error))
;; skill spawned and is now collected
(logior! (-> perm-to-use status) (entity-perm-status dead)))
(else
;; skill is not alive and not collected
(let ((fact (new 'stack 'fact-info self (pickup-type eco-pill-random) (-> *FACT-bank* default-eco-pill-green-inc))))
(logior! (-> fact options) (actor-option fade-out))
(set! (-> fact fade-time) 0)
(awhen (birth-pickup-at-point (new 'static 'vector :x 5341306.5 :y -358441.1562 :z 2525436.5000 :w 1.0)
(pickup-type skill) 1.0 #f self fact)
(format 0 "sewesc -> skill birthed~%")
(set! (-> it 0 name) "skill-sewesc-from-sewer")
(logior! (-> perm-to-use status) (entity-perm-status error)) ;; mark as been spawned once
)
)
)
)
)
(suspend))
))
)
)

View File

@ -868,7 +868,7 @@ This commonly includes things such as:
(kill-and-free-particles (-> self part))
(stop! (-> self sound))
(set! (-> self sound spec) (static-sound-spec "eco-plume2" :fo-min 5 :fo-max 90))
(while (not (task-complete? *game-info* (the-as game-task (-> self entity extra perm task))))
(while (not (task-complete? *game-info* (-> self entity extra perm task)))
(spawn (-> self part2) (-> self root-override trans))
(update! (-> self sound))
(suspend)

View File

@ -204,11 +204,11 @@
(= (-> *entity-debug-inspect* entity) e)
)
(define *entity-debug-include-part-spawner* #t)
(define *entity-debug-part-spawner-list* '(stadiumb-part))
(define *entity-debug-include-cameras* #t)
(define *entity-debug-include-nav-meshes* #t)
(define *entity-debug-include-race-meshes* #t)
(define *entity-debug-include-part-spawner* #f)
(define *entity-debug-include-cameras* #f)
(define *entity-debug-include-nav-meshes* #f)
(define *entity-debug-include-race-meshes* #f)
(defun build-entity-list ()
"Fill the entity pick menu"
;; clear old list

View File

@ -59,10 +59,25 @@
(string-format "etype: ~A~%vis: ~D task: ~S" (-> actor etype) (-> actor vis-id) (game-task->string (-> actor task)))
debug-buf 352 cur-y (font-color default) (font-flags shadow kerning middle))
(+! cur-y (* LINE_HEIGHT 2))
(format (clear *debug-temp-string*) "(~S)" (begin (bit-enum->string task-mask (-> actor kill-mask) (clear *temp-string*)) *temp-string*))
(draw-string-xy (string-format "kill-mask: ~S" *debug-temp-string*)
debug-buf 352 cur-y (font-color default) (font-flags shadow kerning middle))
(+! cur-y (* LINE_HEIGHT 1))
(when (and (nonzero? (-> actor extra)) (-> actor extra))
(draw-string-xy (string-format "perm: #x~X task: ~S" (-> actor extra perm user-uint64) (game-task->string (-> actor extra perm task)))
debug-buf 352 cur-y (font-color default) (font-flags shadow kerning middle))
(+! cur-y (* LINE_HEIGHT 1))
(when (nonzero? (-> actor extra perm status))
(format (clear *debug-temp-string*) "(~S)" (begin (bit-enum->string entity-perm-status (-> actor extra perm status) (clear *temp-string*)) *temp-string*))
(draw-string-xy (string-format "perm-status: ~S" *debug-temp-string*)
debug-buf 352 cur-y (font-color default) (font-flags shadow kerning middle))
(+! cur-y (* LINE_HEIGHT 1))
)
)
(when (nonzero? (-> actor kill-mask))
(format (clear *debug-temp-string*) "(~S)" (begin (bit-enum->string task-mask (-> actor kill-mask) (clear *temp-string*)) *temp-string*))
(draw-string-xy (string-format "kill-mask: ~S" *debug-temp-string*)
debug-buf 352 cur-y (font-color default) (font-flags shadow kerning middle))
(+! cur-y (* LINE_HEIGHT 1))
)
)
)
)

View File

@ -883,7 +883,7 @@
(defstate blocked (collectable)
:virtual #t
:trans (behavior ()
(if (task-complete? *game-info* (the-as game-task (-> self entity extra perm task)))
(if (task-complete? *game-info* (-> self entity extra perm task))
(go-virtual wait)
)
(none)
@ -1814,11 +1814,11 @@ This commonly includes things such as:
(if (when a0-11
(let ((a0-12 (-> a0-11 extra perm task)))
(if a0-12
(zero? a0-12)
(= a0-12 (game-task none))
)
)
)
(set! (-> obj entity extra perm task) (the-as uint 1))
(set! (-> obj entity extra perm task) (game-task complete))
)
)
(initialize-skeleton
@ -2155,10 +2155,10 @@ This commonly includes things such as:
(let ((v1-22 (-> obj entity)))
(if (and (-> obj entity)
(-> v1-22 extra perm task)
(zero? (-> v1-22 extra perm task))
(= (-> v1-22 extra perm task) (game-task none))
(type-type? (-> v1-22 etype) crate)
)
(set! (-> obj entity extra perm task) (the-as uint 1))
(set! (-> obj entity extra perm task) (game-task complete))
)
)
(initialize-skeleton
@ -2266,11 +2266,11 @@ This commonly includes things such as:
(if (when a0-11
(let ((a0-12 (-> a0-11 extra perm task)))
(if a0-12
(zero? a0-12)
(= a0-12 (game-task none))
)
)
)
(set! (-> obj entity extra perm task) (the-as uint 1))
(set! (-> obj entity extra perm task) (game-task complete))
)
)
(initialize-skeleton

View File

@ -1198,11 +1198,11 @@
(if (when a0-6
(let ((a0-7 (-> a0-6 extra perm task)))
(if a0-7
(zero? a0-7)
(= a0-7 (game-task none))
)
)
)
(set! (-> self entity extra perm task) (the-as uint 1))
(set! (-> self entity extra perm task) (game-task complete))
)
)
)

View File

@ -23,7 +23,7 @@
(user-uint8 uint8 8 :offset 0)
(status entity-perm-status :offset 8)
(dummy uint8 1 :offset 10)
(task uint8 :offset 11)
(task game-task :offset 11)
(aid actor-id :offset 12)
(quad uint128 :offset 0)
)

View File

@ -831,11 +831,11 @@
)
(cond
((= (-> obj type) entity-actor)
(set! (-> obj extra perm task) (the-as uint (-> obj task)))
(set! (-> obj extra perm task) (-> obj task))
(set! (-> obj extra vis-id) (-> obj vis-id))
)
(else
(set! (-> obj extra perm task) (the-as uint 0))
(set! (-> obj extra perm task) (game-task none))
(set! (-> obj extra vis-id) 0)
0
)
@ -1308,7 +1308,7 @@
(bucket-id debug-no-zbuf1)
(res-lump-struct sv-16 'name string)
(-> (the-as process-drawable arg0) root trans)
(if (logtest? (-> sv-16 extra perm status) (entity-perm-status bit-0 bit-1))
(if (logtest? (-> sv-16 extra perm status) (entity-perm-status bit-0 error))
(font-color red)
(font-color white)
)
@ -1456,7 +1456,7 @@
(set! sv-32 318)
(let ((a2-4 (res-lump-struct s2-0 'name structure))
(a3-2 sv-20)
(t0-1 (if (logtest? (-> s2-0 extra perm status) (entity-perm-status bit-0 bit-1))
(t0-1 (if (logtest? (-> s2-0 extra perm status) (entity-perm-status bit-0 error))
1
5
)
@ -1835,7 +1835,7 @@
;; WARN: Return type mismatch symbol vs none.
(defun entity-deactivate-handler ((arg0 process) (arg1 entity-actor))
(when (= arg0 (-> arg1 extra process))
(logclear! (-> arg1 extra perm status) (entity-perm-status bit-1 no-kill))
(logclear! (-> arg1 extra perm status) (entity-perm-status error no-kill))
(set! (-> arg1 extra process) #f)
)
(none)
@ -2154,7 +2154,7 @@
((= arg0 'game)
(logclear! (-> obj status) arg1)
)
((task-complete? *game-info* (the-as game-task (-> obj task)))
((task-complete? *game-info* (-> obj task))
(logclear! (-> obj status) (logior (if (logtest? (-> obj status) (entity-perm-status bit-4))
524
0
@ -2541,7 +2541,7 @@
;; WARN: Return type mismatch int vs none.
(defun entity-task-complete-off ((arg0 entity))
(let ((v1-0 (-> arg0 extra)))
(if (!= (-> v1-0 perm task) 1)
(if (!= (-> v1-0 perm task) (game-task complete))
(logclear! (-> *game-info* task-perm-list data (-> v1-0 perm task) status) (entity-perm-status complete))
)
)

View File

@ -1059,7 +1059,7 @@
)
(when actor-perm
(set! (-> entity-perm quad) (-> actor-perm quad))
(update entity-perm 'try (entity-perm-status bit-0 bit-1 dead no-kill bit-5 subtask-complete bit-9 bit-12))
(update entity-perm 'try (entity-perm-status bit-0 error dead no-kill bit-5 subtask-complete bit-9 bit-12))
)
)
)

View File

@ -12311,7 +12311,7 @@
(let ((v1-8 (new 'global 'entity-perm-array 110)))
(set! (-> gp-0 task-perm-list) v1-8)
(dotimes (a0-16 (-> v1-8 length))
(set! (-> v1-8 data a0-16 task) (the-as uint a0-16))
(set! (-> v1-8 data a0-16 task) (the-as game-task a0-16))
)
(logior! (-> v1-8 data 1 status) (entity-perm-status complete))
)

View File

@ -230,7 +230,7 @@ Note that this doesn't actually return the nav-control, but instead adds this pr
)
(when (not arg1)
(if (-> arg0 entity)
(logior! (-> arg0 entity extra perm status) (entity-perm-status bit-1))
(logior! (-> arg0 entity extra perm status) (entity-perm-status error))
)
(go process-drawable-art-error "no nav-mesh")
(return 0)

View File

@ -249,7 +249,7 @@
)
(else
(if (-> arg0 entity)
(logior! (-> arg0 entity extra perm status) (entity-perm-status bit-1))
(logior! (-> arg0 entity extra perm status) (entity-perm-status error))
)
#f
)

View File

@ -576,7 +576,7 @@
)
:code (behavior ((arg0 string))
(if (-> self entity)
(logior! (-> self entity extra perm status) (entity-perm-status bit-1))
(logior! (-> self entity extra perm status) (entity-perm-status error))
)
(let* ((s5-0 (-> self root))
(v1-6 (if (type? s5-0 collide-shape)
@ -1867,7 +1867,7 @@
(if arg2
(set! (-> s4-0 options) (actor-option auto-pickup))
)
(when (and (nonzero? s5-0) (not (task-complete? *game-info* (the-as game-task s5-0))))
(when (and (nonzero? s5-0) (not (task-complete? *game-info* s5-0)))
(label cfg-12)
(birth-pickup-at-point gp-0 (pickup-type fuel-cell) (the float s5-0) #f self s4-0)
(when (not (-> self child))

View File

@ -210,7 +210,9 @@
;; WARN: Return type mismatch int vs none.
(defmethod set-flipped-state drill-flip-step ((obj drill-flip-step))
"Set the state of the platform based on the completion of the drill-mech task."
(if (and (= (-> obj entity extra perm task) 61) (task-node-closed? (game-task-node drill-mech-smash-consoles)))
(if (and (= (-> obj entity extra perm task) (game-task drill-mech))
(task-node-closed? (game-task-node drill-mech-smash-consoles))
)
(process-entity-status! obj (entity-perm-status bit-12) #t)
)
(if (and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status bit-12)))
@ -1012,7 +1014,7 @@ This commonly includes things such as:
(init-collision! obj)
(process-drawable-from-entity! obj arg0)
(skel-init! obj)
(set! (-> obj entity extra perm task) (the-as uint 26))
(set! (-> obj entity extra perm task) (game-task drill-eggs))
(set! (-> obj notify-actor) (entity-actor-lookup (-> obj entity) 'alt-actor 0))
(set! sv-16 (new 'static 'res-tag))
(let ((v1-6 (res-lump-data (-> obj entity) 'actor-groups pointer :tag-ptr (& sv-16))))

View File

@ -1531,7 +1531,7 @@ This commonly includes things such as:
(logior! (-> obj button-status) (button-status button-status-3))
(set! (-> obj event-going-down) 'trigger)
(set! (-> obj event-going-up) 'untrigger)
(if (and (= (-> obj entity extra perm task) 61)
(if (and (= (-> obj entity extra perm task) (game-task drill-mech))
(task-node-closed? (game-task-node drill-mech-smash-consoles))
(= (-> obj timeout) 0.0)
)

View File

@ -977,7 +977,7 @@ This commonly includes things such as:
(kill-and-free-particles (-> self part))
(stop! (-> self sound))
(set! (-> self sound spec) (static-sound-spec "eco-plume2" :fo-min 5 :fo-max 90))
(while (not (task-complete? *game-info* (the-as game-task (-> self entity extra perm task))))
(while (not (task-complete? *game-info* (-> self entity extra perm task)))
(spawn (-> self part2) (-> self root-override trans))
(update! (-> self sound))
(suspend)