mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 11:26:18 -04:00
fix missing bitfield (#811)
This commit is contained in:
parent
9b0480c50d
commit
4616f436f1
|
@ -1588,12 +1588,21 @@ FormElement* SimpleExpressionElement::update_from_stack_logor_or_logand_helper(
|
||||||
bool arg1_int_like = env.dts->ts.tc(TypeSpec("integer"), arg1_type);
|
bool arg1_int_like = env.dts->ts.tc(TypeSpec("integer"), arg1_type);
|
||||||
|
|
||||||
if ((arg0_int_like) && (arg1_int_like)) {
|
if ((arg0_int_like) && (arg1_int_like)) {
|
||||||
auto new_form = pool.alloc_element<GenericElement>(GenericOperator::make_fixed(kind),
|
// we might have a bitfield in arg1.
|
||||||
args.at(0), args.at(1));
|
auto arg1_bitfield = dynamic_cast<BitFieldType*>(env.dts->ts.lookup_type(arg1_type));
|
||||||
return new_form;
|
auto arg1_enum = dynamic_cast<EnumType*>(env.dts->ts.lookup_type(arg1_type));
|
||||||
// types bad, insert cast.
|
if ((arg1_bitfield || arg1_enum) && arg0_type != arg1_type) {
|
||||||
|
auto new_form = pool.alloc_element<GenericElement>(
|
||||||
|
GenericOperator::make_fixed(kind), cast_form(args.at(0), arg1_type, pool, env),
|
||||||
|
args.at(1));
|
||||||
|
return new_form;
|
||||||
|
} else {
|
||||||
|
auto new_form = pool.alloc_element<GenericElement>(GenericOperator::make_fixed(kind),
|
||||||
|
args.at(0), args.at(1));
|
||||||
|
return new_form;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
// types bad, insert cast.
|
||||||
auto cast = pool.alloc_single_element_form<CastElement>(
|
auto cast = pool.alloc_single_element_form<CastElement>(
|
||||||
nullptr, TypeSpec(arg0_i ? "int" : "uint"), args.at(1));
|
nullptr, TypeSpec(arg0_i ? "int" : "uint"), args.at(1));
|
||||||
auto new_form =
|
auto new_form =
|
||||||
|
|
|
@ -651,7 +651,9 @@
|
||||||
(bit8 8)
|
(bit8 8)
|
||||||
(bit10 10) ;; TODO - nav-enemy::nav-enemy-patrol-post
|
(bit10 10) ;; TODO - nav-enemy::nav-enemy-patrol-post
|
||||||
(bit13 13)
|
(bit13 13)
|
||||||
|
(bit17 17)
|
||||||
(bit19 19) ;; TODO - nav-enemy::lambda::17
|
(bit19 19) ;; TODO - nav-enemy::lambda::17
|
||||||
|
(bit21 21)
|
||||||
)
|
)
|
||||||
|
|
||||||
(defenum task-status
|
(defenum task-status
|
||||||
|
@ -32632,7 +32634,7 @@
|
||||||
|
|
||||||
;; - Functions
|
;; - Functions
|
||||||
|
|
||||||
(define-extern misty-camera-view (function int :behavior silostep))
|
(define-extern misty-camera-view (function handle :behavior silostep))
|
||||||
|
|
||||||
;; - Unknowns
|
;; - Unknowns
|
||||||
|
|
||||||
|
|
|
@ -1886,10 +1886,6 @@
|
||||||
[50, "v1", "vector"]
|
[50, "v1", "vector"]
|
||||||
],
|
],
|
||||||
|
|
||||||
"(method 11 rigid-body-platform)": [
|
|
||||||
[5, "v1", "process-mask"]
|
|
||||||
],
|
|
||||||
|
|
||||||
"(method 22 mud)": [
|
"(method 22 mud)": [
|
||||||
[35, "v0", "(pointer float)"]
|
[35, "v0", "(pointer float)"]
|
||||||
],
|
],
|
||||||
|
|
|
@ -19,7 +19,9 @@
|
||||||
(bit8 8)
|
(bit8 8)
|
||||||
(bit10 10) ;; TODO - nav-enemy::nav-enemy-patrol-post
|
(bit10 10) ;; TODO - nav-enemy::nav-enemy-patrol-post
|
||||||
(bit13 13)
|
(bit13 13)
|
||||||
|
(bit17 17)
|
||||||
(bit19 19) ;; TODO - nav-enemy::lambda::17
|
(bit19 19) ;; TODO - nav-enemy::lambda::17
|
||||||
|
(bit21 21)
|
||||||
)
|
)
|
||||||
|
|
||||||
(deftype nav-poly (structure)
|
(deftype nav-poly (structure)
|
||||||
|
|
|
@ -51,7 +51,7 @@
|
||||||
(-> obj initial-velocity)
|
(-> obj initial-velocity)
|
||||||
time
|
time
|
||||||
)
|
)
|
||||||
(+! (-> result y) (* (* (* 0.5 time) time) (-> obj gravity)))
|
(+! (-> result y) (* 0.5 time time (-> obj gravity)))
|
||||||
result
|
result
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -454,7 +454,7 @@ nav-enemy-default-event-handler
|
||||||
(if
|
(if
|
||||||
(or
|
(or
|
||||||
(logtest? (-> obj nav-enemy-flags) 128)
|
(logtest? (-> obj nav-enemy-flags) 128)
|
||||||
(logtest? #x80000 (-> obj nav flags))
|
(logtest? (nav-control-flags bit19) (-> obj nav flags))
|
||||||
)
|
)
|
||||||
(seek-to-point-toward-point!
|
(seek-to-point-toward-point!
|
||||||
(-> obj collide-info)
|
(-> obj collide-info)
|
||||||
|
@ -531,7 +531,10 @@ nav-enemy-default-event-handler
|
||||||
;; INFO: Return type mismatch int vs none.
|
;; INFO: Return type mismatch int vs none.
|
||||||
(defbehavior nav-enemy-patrol-post nav-enemy ()
|
(defbehavior nav-enemy-patrol-post nav-enemy ()
|
||||||
(when
|
(when
|
||||||
(or (logtest? #x80000 (-> self nav flags)) (< 2.0 (-> self nav block-count)))
|
(or
|
||||||
|
(logtest? (nav-control-flags bit19) (-> self nav flags))
|
||||||
|
(< 2.0 (-> self nav block-count))
|
||||||
|
)
|
||||||
(set! (-> self nav block-count) 2.0)
|
(set! (-> self nav block-count) 2.0)
|
||||||
(logior! (-> self nav flags) (nav-control-flags bit10))
|
(logior! (-> self nav flags) (nav-control-flags bit10))
|
||||||
(nav-enemy-get-new-patrol-point)
|
(nav-enemy-get-new-patrol-point)
|
||||||
|
@ -543,7 +546,7 @@ nav-enemy-default-event-handler
|
||||||
(-> self nav destination-pos)
|
(-> self nav destination-pos)
|
||||||
(-> self rotate-speed)
|
(-> self rotate-speed)
|
||||||
)
|
)
|
||||||
(if (logtest? #x200000 (-> self nav flags))
|
(if (logtest? (nav-control-flags bit21) (-> self nav flags))
|
||||||
(logclear! (-> self nav flags) (nav-control-flags bit10))
|
(logclear! (-> self nav flags) (nav-control-flags bit10))
|
||||||
)
|
)
|
||||||
(nav-enemy-travel-post)
|
(nav-enemy-travel-post)
|
||||||
|
@ -1194,7 +1197,10 @@ nav-enemy-default-event-handler
|
||||||
)
|
)
|
||||||
(set!
|
(set!
|
||||||
(-> self nav flags)
|
(-> self nav flags)
|
||||||
(the-as nav-control-flags (the-as int (logior #x80000 (-> self nav flags))))
|
(the-as
|
||||||
|
nav-control-flags
|
||||||
|
(the-as int (logior (nav-control-flags bit19) (-> self nav flags)))
|
||||||
|
)
|
||||||
)
|
)
|
||||||
(set! (-> self nav-enemy-flags) (logand -5 (-> self nav-enemy-flags)))
|
(set! (-> self nav-enemy-flags) (logand -5 (-> self nav-enemy-flags)))
|
||||||
(logior! (-> self nav-enemy-flags) 8)
|
(logior! (-> self nav-enemy-flags) 8)
|
||||||
|
@ -1890,7 +1896,7 @@ nav-enemy-default-event-handler
|
||||||
(go-virtual nav-enemy-stop-chase)
|
(go-virtual nav-enemy-stop-chase)
|
||||||
)
|
)
|
||||||
(cond
|
(cond
|
||||||
((logtest? #x20000 (-> self nav flags))
|
((logtest? (nav-control-flags bit17) (-> self nav flags))
|
||||||
(if (>= (- (-> *display* base-frame-counter) (-> self free-time)) 300)
|
(if (>= (- (-> *display* base-frame-counter) (-> self free-time)) 300)
|
||||||
(go-virtual nav-enemy-patrol)
|
(go-virtual nav-enemy-patrol)
|
||||||
)
|
)
|
||||||
|
@ -2005,7 +2011,7 @@ nav-enemy-default-event-handler
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(logtest? #x20000 (-> self nav flags))
|
(logtest? (nav-control-flags bit17) (-> self nav flags))
|
||||||
(>=
|
(>=
|
||||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||||
(-> self state-timeout)
|
(-> self state-timeout)
|
||||||
|
@ -2164,7 +2170,7 @@ nav-enemy-default-event-handler
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(logtest? #x20000 (-> self nav flags))
|
(logtest? (nav-control-flags bit17) (-> self nav flags))
|
||||||
)
|
)
|
||||||
(go-virtual nav-enemy-give-up)
|
(go-virtual nav-enemy-give-up)
|
||||||
)
|
)
|
||||||
|
@ -2815,7 +2821,7 @@ nav-enemy-default-event-handler
|
||||||
(if
|
(if
|
||||||
(or
|
(or
|
||||||
(logtest? (-> self nav-enemy-flags) 128)
|
(logtest? (-> self nav-enemy-flags) 128)
|
||||||
(logtest? #x80000 (-> self nav flags))
|
(logtest? (nav-control-flags bit19) (-> self nav flags))
|
||||||
)
|
)
|
||||||
(seek-to-point-toward-point!
|
(seek-to-point-toward-point!
|
||||||
(-> self collide-info)
|
(-> self collide-info)
|
||||||
|
@ -2880,7 +2886,7 @@ nav-enemy-default-event-handler
|
||||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||||
150
|
150
|
||||||
)
|
)
|
||||||
(logtest? #x80000 (-> self nav flags))
|
(logtest? (nav-control-flags bit19) (-> self nav flags))
|
||||||
)
|
)
|
||||||
(go-virtual nav-enemy-chase)
|
(go-virtual nav-enemy-chase)
|
||||||
)
|
)
|
||||||
|
@ -3105,7 +3111,10 @@ nav-enemy-default-event-handler
|
||||||
(defmethod TODO-RENAME-45 nav-enemy ((obj nav-enemy) (arg0 nav-enemy-info))
|
(defmethod TODO-RENAME-45 nav-enemy ((obj nav-enemy) (arg0 nav-enemy-info))
|
||||||
(set! (-> obj rand-gen) (new 'process 'random-generator))
|
(set! (-> obj rand-gen) (new 'process 'random-generator))
|
||||||
(set! (-> obj rand-gen seed) (the-as uint #x666edd1e))
|
(set! (-> obj rand-gen seed) (the-as uint #x666edd1e))
|
||||||
(set! (-> obj mask) (the-as process-mask (logior #x20000 (-> obj mask))))
|
(set!
|
||||||
|
(-> obj mask)
|
||||||
|
(the-as process-mask (logior (process-mask enemy) (-> obj mask)))
|
||||||
|
)
|
||||||
(TODO-RENAME-49 obj arg0)
|
(TODO-RENAME-49 obj arg0)
|
||||||
(if (-> obj draw shadow)
|
(if (-> obj draw shadow)
|
||||||
(set!
|
(set!
|
||||||
|
@ -3273,4 +3282,4 @@ nav-enemy-default-event-handler
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
#f
|
#f
|
||||||
)
|
)
|
||||||
|
|
|
@ -1196,7 +1196,7 @@
|
||||||
copy-defaults!
|
copy-defaults!
|
||||||
rigid-body-platform
|
rigid-body-platform
|
||||||
((obj rigid-body-platform) (arg0 res-lump))
|
((obj rigid-body-platform) (arg0 res-lump))
|
||||||
(set! (-> obj mask) (the-as process-mask (logior #x80000 (-> obj mask))))
|
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
|
||||||
(TODO-RENAME-30 obj)
|
(TODO-RENAME-30 obj)
|
||||||
(process-drawable-from-entity! obj arg0)
|
(process-drawable-from-entity! obj arg0)
|
||||||
(TODO-RENAME-31 obj)
|
(TODO-RENAME-31 obj)
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
(define-extern silostep-idle (state silostep))
|
(define-extern silostep-idle (state silostep))
|
||||||
(define-extern silostep-camera (state silostep))
|
(define-extern silostep-camera (state silostep))
|
||||||
|
|
||||||
|
|
||||||
;; failed to figure out what this is:
|
;; failed to figure out what this is:
|
||||||
(let
|
(let
|
||||||
((v1-1
|
((v1-1
|
||||||
|
@ -80,6 +79,7 @@
|
||||||
)
|
)
|
||||||
|
|
||||||
;; definition for function misty-camera-view
|
;; definition for function misty-camera-view
|
||||||
|
;; INFO: Return type mismatch int vs handle.
|
||||||
(defbehavior misty-camera-view silostep ()
|
(defbehavior misty-camera-view silostep ()
|
||||||
(let* ((gp-0 (get-process *default-dead-pool* camera-tracker #x4000))
|
(let* ((gp-0 (get-process *default-dead-pool* camera-tracker #x4000))
|
||||||
(v1-1 (when gp-0
|
(v1-1 (when gp-0
|
||||||
|
@ -119,11 +119,14 @@
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(v0-3
|
(v0-3
|
||||||
(logior (shl (-> v1-1 0 pid) 32) (new 'static 'handle :process v1-1))
|
(logior
|
||||||
|
(new 'static 'handle :pid (-> v1-1 0 pid))
|
||||||
|
(new 'static 'handle :process v1-1)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(set! (-> self cam-tracker) (the-as uint v0-3))
|
(set! (-> self cam-tracker) (the-as uint v0-3))
|
||||||
v0-3
|
(the-as handle v0-3)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -680,7 +680,7 @@
|
||||||
(format stream-2 "ERROR: dma-list data pointer invalid~%")
|
(format stream-2 "ERROR: dma-list data pointer invalid~%")
|
||||||
(set! end-condition 'error)
|
(set! end-condition 'error)
|
||||||
)
|
)
|
||||||
(when (logtest? #x3ff0000 current-tag)
|
(when (logtest? (the-as dma-tag #x3ff0000) current-tag)
|
||||||
(format stream-2 "ERROR: dma tag has data in reserved bits ~X~%")
|
(format stream-2 "ERROR: dma tag has data in reserved bits ~X~%")
|
||||||
(set! end-condition 'error)
|
(set! end-condition 'error)
|
||||||
)
|
)
|
||||||
|
|
|
@ -25,7 +25,10 @@
|
||||||
)
|
)
|
||||||
(dotimes (s2-0 (the-as int (-> fp-data shader-cnt)))
|
(dotimes (s2-0 (the-as int (-> fp-data shader-cnt)))
|
||||||
(cond
|
(cond
|
||||||
((and eye-ctrl (= (logand -256 (-> shader texture-id)) #x1cf06f00))
|
((and
|
||||||
|
eye-ctrl
|
||||||
|
(= (logand (the-as texture-id -256) (-> shader texture-id)) #x1cf06f00)
|
||||||
|
)
|
||||||
(adgif-shader-login shader)
|
(adgif-shader-login shader)
|
||||||
(let ((eye-tex-block (get-eye-block (-> eye-ctrl eye-slot) 0)))
|
(let ((eye-tex-block (get-eye-block (-> eye-ctrl eye-slot) 0)))
|
||||||
(set! (-> shader tex0 tbp0) eye-tex-block)
|
(set! (-> shader tex0 tbp0) eye-tex-block)
|
||||||
|
@ -46,7 +49,10 @@
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
((and eye-ctrl (= (logand -256 (-> shader texture-id)) #x1cf07000))
|
((and
|
||||||
|
eye-ctrl
|
||||||
|
(= (logand (the-as texture-id -256) (-> shader texture-id)) #x1cf07000)
|
||||||
|
)
|
||||||
(adgif-shader-login shader)
|
(adgif-shader-login shader)
|
||||||
(let ((eye-tex-block-2 (get-eye-block (-> eye-ctrl eye-slot) 1)))
|
(let ((eye-tex-block-2 (get-eye-block (-> eye-ctrl eye-slot) 1)))
|
||||||
(set! (-> shader tex0 tbp0) eye-tex-block-2)
|
(set! (-> shader tex0 tbp0) eye-tex-block-2)
|
||||||
|
|
|
@ -589,7 +589,9 @@
|
||||||
(table-data-start (-> bsp-hdr texture-remap-table))
|
(table-data-start (-> bsp-hdr texture-remap-table))
|
||||||
(table-data-ptr table-data-start)
|
(table-data-ptr table-data-start)
|
||||||
(mask1 (the-as uint #xfffffff8))
|
(mask1 (the-as uint #xfffffff8))
|
||||||
(masked-tex-id (logand (the-as uint #xffffff00) tex-id))
|
(masked-tex-id
|
||||||
|
(logand (new 'static 'texture-id :index #xfff :page #xfff) tex-id)
|
||||||
|
)
|
||||||
(table-data-end (&+ table-data-ptr (* table-size 8)))
|
(table-data-end (&+ table-data-ptr (* table-size 8)))
|
||||||
)
|
)
|
||||||
(label cfg-2)
|
(label cfg-2)
|
||||||
|
|
18
test/decompiler/reference/kernel/gkernel_REF.gc
vendored
18
test/decompiler/reference/kernel/gkernel_REF.gc
vendored
|
@ -203,31 +203,31 @@
|
||||||
;; definition (debug) for function stream<-process-mask
|
;; definition (debug) for function stream<-process-mask
|
||||||
(defun-debug stream<-process-mask ((arg0 object) (arg1 process-mask))
|
(defun-debug stream<-process-mask ((arg0 object) (arg1 process-mask))
|
||||||
(let ((s4-0 arg1))
|
(let ((s4-0 arg1))
|
||||||
(if (= (logand #x1000000 s4-0) (process-mask death))
|
(if (= (logand (process-mask death) s4-0) (process-mask death))
|
||||||
(format arg0 "death ")
|
(format arg0 "death ")
|
||||||
)
|
)
|
||||||
(if (= (logand #x800000 s4-0) (process-mask attackable))
|
(if (= (logand (process-mask attackable) s4-0) (process-mask attackable))
|
||||||
(format arg0 "attackable ")
|
(format arg0 "attackable ")
|
||||||
)
|
)
|
||||||
(if (= (logand #x400000 s4-0) (process-mask projectile))
|
(if (= (logand (process-mask projectile) s4-0) (process-mask projectile))
|
||||||
(format arg0 "projectile ")
|
(format arg0 "projectile ")
|
||||||
)
|
)
|
||||||
(if (= (logand #x200000 s4-0) (process-mask entity))
|
(if (= (logand (process-mask entity) s4-0) (process-mask entity))
|
||||||
(format arg0 "entity ")
|
(format arg0 "entity ")
|
||||||
)
|
)
|
||||||
(if (= (logand #x100000 s4-0) (process-mask ambient))
|
(if (= (logand (process-mask ambient) s4-0) (process-mask ambient))
|
||||||
(format arg0 "ambient ")
|
(format arg0 "ambient ")
|
||||||
)
|
)
|
||||||
(if (= (logand #x80000 s4-0) (process-mask platform))
|
(if (= (logand (process-mask platform) s4-0) (process-mask platform))
|
||||||
(format arg0 "platform ")
|
(format arg0 "platform ")
|
||||||
)
|
)
|
||||||
(if (= (logand #x40000 s4-0) (process-mask camera))
|
(if (= (logand (process-mask camera) s4-0) (process-mask camera))
|
||||||
(format arg0 "camera ")
|
(format arg0 "camera ")
|
||||||
)
|
)
|
||||||
(if (= (logand #x20000 s4-0) (process-mask enemy))
|
(if (= (logand (process-mask enemy) s4-0) (process-mask enemy))
|
||||||
(format arg0 "enemy ")
|
(format arg0 "enemy ")
|
||||||
)
|
)
|
||||||
(if (= (logand #x10000 s4-0) (process-mask collectable))
|
(if (= (logand (process-mask collectable) s4-0) (process-mask collectable))
|
||||||
(format arg0 "collectable ")
|
(format arg0 "collectable ")
|
||||||
)
|
)
|
||||||
(if (= (logand s4-0 (process-mask crate)) (process-mask crate))
|
(if (= (logand s4-0 (process-mask crate)) (process-mask crate))
|
||||||
|
|
|
@ -450,7 +450,7 @@ nav-enemy-default-event-handler
|
||||||
(if
|
(if
|
||||||
(or
|
(or
|
||||||
(logtest? (-> obj nav-enemy-flags) 128)
|
(logtest? (-> obj nav-enemy-flags) 128)
|
||||||
(logtest? #x80000 (-> obj nav flags))
|
(logtest? (nav-control-flags bit19) (-> obj nav flags))
|
||||||
)
|
)
|
||||||
(seek-to-point-toward-point!
|
(seek-to-point-toward-point!
|
||||||
(-> obj collide-info)
|
(-> obj collide-info)
|
||||||
|
@ -527,7 +527,10 @@ nav-enemy-default-event-handler
|
||||||
;; INFO: Return type mismatch int vs none.
|
;; INFO: Return type mismatch int vs none.
|
||||||
(defbehavior nav-enemy-patrol-post nav-enemy ()
|
(defbehavior nav-enemy-patrol-post nav-enemy ()
|
||||||
(when
|
(when
|
||||||
(or (logtest? #x80000 (-> self nav flags)) (< 2.0 (-> self nav block-count)))
|
(or
|
||||||
|
(logtest? (nav-control-flags bit19) (-> self nav flags))
|
||||||
|
(< 2.0 (-> self nav block-count))
|
||||||
|
)
|
||||||
(set! (-> self nav block-count) 2.0)
|
(set! (-> self nav block-count) 2.0)
|
||||||
(logior! (-> self nav flags) (nav-control-flags bit10))
|
(logior! (-> self nav flags) (nav-control-flags bit10))
|
||||||
(nav-enemy-get-new-patrol-point)
|
(nav-enemy-get-new-patrol-point)
|
||||||
|
@ -539,7 +542,7 @@ nav-enemy-default-event-handler
|
||||||
(-> self nav destination-pos)
|
(-> self nav destination-pos)
|
||||||
(-> self rotate-speed)
|
(-> self rotate-speed)
|
||||||
)
|
)
|
||||||
(if (logtest? #x200000 (-> self nav flags))
|
(if (logtest? (nav-control-flags bit21) (-> self nav flags))
|
||||||
(logclear! (-> self nav flags) (nav-control-flags bit10))
|
(logclear! (-> self nav flags) (nav-control-flags bit10))
|
||||||
)
|
)
|
||||||
(nav-enemy-travel-post)
|
(nav-enemy-travel-post)
|
||||||
|
@ -1190,7 +1193,10 @@ nav-enemy-default-event-handler
|
||||||
)
|
)
|
||||||
(set!
|
(set!
|
||||||
(-> self nav flags)
|
(-> self nav flags)
|
||||||
(the-as nav-control-flags (the-as int (logior #x80000 (-> self nav flags))))
|
(the-as
|
||||||
|
nav-control-flags
|
||||||
|
(the-as int (logior (nav-control-flags bit19) (-> self nav flags)))
|
||||||
|
)
|
||||||
)
|
)
|
||||||
(set! (-> self nav-enemy-flags) (logand -5 (-> self nav-enemy-flags)))
|
(set! (-> self nav-enemy-flags) (logand -5 (-> self nav-enemy-flags)))
|
||||||
(logior! (-> self nav-enemy-flags) 8)
|
(logior! (-> self nav-enemy-flags) 8)
|
||||||
|
@ -1886,7 +1892,7 @@ nav-enemy-default-event-handler
|
||||||
(go-virtual nav-enemy-stop-chase)
|
(go-virtual nav-enemy-stop-chase)
|
||||||
)
|
)
|
||||||
(cond
|
(cond
|
||||||
((logtest? #x20000 (-> self nav flags))
|
((logtest? (nav-control-flags bit17) (-> self nav flags))
|
||||||
(if (>= (- (-> *display* base-frame-counter) (-> self free-time)) 300)
|
(if (>= (- (-> *display* base-frame-counter) (-> self free-time)) 300)
|
||||||
(go-virtual nav-enemy-patrol)
|
(go-virtual nav-enemy-patrol)
|
||||||
)
|
)
|
||||||
|
@ -2001,7 +2007,7 @@ nav-enemy-default-event-handler
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(logtest? #x20000 (-> self nav flags))
|
(logtest? (nav-control-flags bit17) (-> self nav flags))
|
||||||
(>=
|
(>=
|
||||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||||
(-> self state-timeout)
|
(-> self state-timeout)
|
||||||
|
@ -2160,7 +2166,7 @@ nav-enemy-default-event-handler
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(logtest? #x20000 (-> self nav flags))
|
(logtest? (nav-control-flags bit17) (-> self nav flags))
|
||||||
)
|
)
|
||||||
(go-virtual nav-enemy-give-up)
|
(go-virtual nav-enemy-give-up)
|
||||||
)
|
)
|
||||||
|
@ -2811,7 +2817,7 @@ nav-enemy-default-event-handler
|
||||||
(if
|
(if
|
||||||
(or
|
(or
|
||||||
(logtest? (-> self nav-enemy-flags) 128)
|
(logtest? (-> self nav-enemy-flags) 128)
|
||||||
(logtest? #x80000 (-> self nav flags))
|
(logtest? (nav-control-flags bit19) (-> self nav flags))
|
||||||
)
|
)
|
||||||
(seek-to-point-toward-point!
|
(seek-to-point-toward-point!
|
||||||
(-> self collide-info)
|
(-> self collide-info)
|
||||||
|
@ -2876,7 +2882,7 @@ nav-enemy-default-event-handler
|
||||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||||
150
|
150
|
||||||
)
|
)
|
||||||
(logtest? #x80000 (-> self nav flags))
|
(logtest? (nav-control-flags bit19) (-> self nav flags))
|
||||||
)
|
)
|
||||||
(go-virtual nav-enemy-chase)
|
(go-virtual nav-enemy-chase)
|
||||||
)
|
)
|
||||||
|
@ -3101,7 +3107,10 @@ nav-enemy-default-event-handler
|
||||||
(defmethod TODO-RENAME-45 nav-enemy ((obj nav-enemy) (arg0 nav-enemy-info))
|
(defmethod TODO-RENAME-45 nav-enemy ((obj nav-enemy) (arg0 nav-enemy-info))
|
||||||
(set! (-> obj rand-gen) (new 'process 'random-generator))
|
(set! (-> obj rand-gen) (new 'process 'random-generator))
|
||||||
(set! (-> obj rand-gen seed) (the-as uint #x666edd1e))
|
(set! (-> obj rand-gen seed) (the-as uint #x666edd1e))
|
||||||
(set! (-> obj mask) (the-as process-mask (logior #x20000 (-> obj mask))))
|
(set!
|
||||||
|
(-> obj mask)
|
||||||
|
(the-as process-mask (logior (process-mask enemy) (-> obj mask)))
|
||||||
|
)
|
||||||
(TODO-RENAME-49 obj arg0)
|
(TODO-RENAME-49 obj arg0)
|
||||||
(if (-> obj draw shadow)
|
(if (-> obj draw shadow)
|
||||||
(set!
|
(set!
|
||||||
|
|
|
@ -1191,7 +1191,7 @@
|
||||||
copy-defaults!
|
copy-defaults!
|
||||||
rigid-body-platform
|
rigid-body-platform
|
||||||
((obj rigid-body-platform) (arg0 res-lump))
|
((obj rigid-body-platform) (arg0 res-lump))
|
||||||
(set! (-> obj mask) (the-as process-mask (logior #x80000 (-> obj mask))))
|
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
|
||||||
(TODO-RENAME-30 obj)
|
(TODO-RENAME-30 obj)
|
||||||
(process-drawable-from-entity! obj arg0)
|
(process-drawable-from-entity! obj arg0)
|
||||||
(TODO-RENAME-31 obj)
|
(TODO-RENAME-31 obj)
|
||||||
|
|
|
@ -77,6 +77,7 @@
|
||||||
)
|
)
|
||||||
|
|
||||||
;; definition for function misty-camera-view
|
;; definition for function misty-camera-view
|
||||||
|
;; INFO: Return type mismatch int vs handle.
|
||||||
(defbehavior misty-camera-view silostep ()
|
(defbehavior misty-camera-view silostep ()
|
||||||
(let* ((gp-0 (get-process *default-dead-pool* camera-tracker #x4000))
|
(let* ((gp-0 (get-process *default-dead-pool* camera-tracker #x4000))
|
||||||
(v1-1 (when gp-0
|
(v1-1 (when gp-0
|
||||||
|
@ -116,11 +117,14 @@
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(v0-3
|
(v0-3
|
||||||
(logior (shl (-> v1-1 0 pid) 32) (new 'static 'handle :process v1-1))
|
(logior
|
||||||
|
(new 'static 'handle :pid (-> v1-1 0 pid))
|
||||||
|
(new 'static 'handle :process v1-1)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
(set! (-> self cam-tracker) (the-as uint v0-3))
|
(set! (-> self cam-tracker) (the-as uint v0-3))
|
||||||
v0-3
|
(the-as handle v0-3)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue