mirror of
https://github.com/open-goal/jak-project.git
synced 2025-02-11 09:05:38 +00:00
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:
parent
0c729437bb
commit
15ef95e036
@ -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)
|
||||
)
|
||||
|
@ -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
|
||||
|
@ -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))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
@ -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)
|
||||
)
|
||||
|
@ -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))
|
||||
)
|
||||
)
|
||||
|
@ -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))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
@ -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))
|
||||
)
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
)
|
||||
|
@ -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))
|
||||
|
@ -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)
|
||||
)
|
||||
|
@ -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))))
|
||||
|
@ -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))
|
||||
))
|
||||
)
|
||||
)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
14
test/decompiler/reference/jak2/engine/common_objs/collectables_REF.gc
generated
vendored
14
test/decompiler/reference/jak2/engine/common_objs/collectables_REF.gc
generated
vendored
@ -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
|
||||
|
4
test/decompiler/reference/jak2/engine/common_objs/crates_REF.gc
generated
vendored
4
test/decompiler/reference/jak2/engine/common_objs/crates_REF.gc
generated
vendored
@ -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))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
2
test/decompiler/reference/jak2/engine/entity/entity-h_REF.gc
generated
vendored
2
test/decompiler/reference/jak2/engine/entity/entity-h_REF.gc
generated
vendored
@ -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)
|
||||
)
|
||||
|
14
test/decompiler/reference/jak2/engine/entity/entity_REF.gc
generated
vendored
14
test/decompiler/reference/jak2/engine/entity/entity_REF.gc
generated
vendored
@ -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))
|
||||
)
|
||||
)
|
||||
|
2
test/decompiler/reference/jak2/engine/game/game-info_REF.gc
generated
vendored
2
test/decompiler/reference/jak2/engine/game/game-info_REF.gc
generated
vendored
@ -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))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
2
test/decompiler/reference/jak2/engine/game/task/game-task_REF.gc
generated
vendored
2
test/decompiler/reference/jak2/engine/game/task/game-task_REF.gc
generated
vendored
@ -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))
|
||||
)
|
||||
|
2
test/decompiler/reference/jak2/engine/nav/nav-control_REF.gc
generated
vendored
2
test/decompiler/reference/jak2/engine/nav/nav-control_REF.gc
generated
vendored
@ -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)
|
||||
|
2
test/decompiler/reference/jak2/engine/nav/nav-mesh_REF.gc
generated
vendored
2
test/decompiler/reference/jak2/engine/nav/nav-mesh_REF.gc
generated
vendored
@ -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
|
||||
)
|
||||
|
4
test/decompiler/reference/jak2/engine/process-drawable/process-drawable_REF.gc
generated
vendored
4
test/decompiler/reference/jak2/engine/process-drawable/process-drawable_REF.gc
generated
vendored
@ -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))
|
||||
|
6
test/decompiler/reference/jak2/levels/drill_platform/drill-obs2_REF.gc
generated
vendored
6
test/decompiler/reference/jak2/levels/drill_platform/drill-obs2_REF.gc
generated
vendored
@ -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))))
|
||||
|
2
test/decompiler/reference/jak2/levels/drill_platform/drill-obs_REF.gc
generated
vendored
2
test/decompiler/reference/jak2/levels/drill_platform/drill-obs_REF.gc
generated
vendored
@ -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)
|
||||
)
|
||||
|
2
test/decompiler/reference/jak2/levels/strip/strip-obs_REF.gc
generated
vendored
2
test/decompiler/reference/jak2/levels/strip/strip-obs_REF.gc
generated
vendored
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user