mirror of
https://github.com/open-goal/jak-project
synced 2026-08-18 05:48:28 -04:00
[decompiler] as-type and font method support (#3855)
Add support for `as-type` macro, and detecting inline font methods. This works in all three games but I've only updated jak 3's goal_src for now. Eventually I will go back and work through the others, but I want to get more decompiler features in first.  --------- Co-authored-by: water111 <awaterford1111445@gmail.com>
This commit is contained in:
+5
-20
@@ -326,12 +326,7 @@
|
||||
;; definition for method 106 of type ashelin
|
||||
(defmethod find-best-focus ((this ashelin))
|
||||
"Search for the best thing to focus on."
|
||||
(let* ((s5-0 (handle->process (-> this attacker-handle)))
|
||||
(v1-3 (if (type? s5-0 process-focusable)
|
||||
s5-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((v1-3 (as-type (handle->process (-> this attacker-handle)) process-focusable)))
|
||||
(when v1-3
|
||||
(cond
|
||||
((= (-> v1-3 type) target)
|
||||
@@ -341,13 +336,13 @@
|
||||
(if (logtest? (-> this bot-flags) (bot-flag attacked))
|
||||
(bot-method-199 this)
|
||||
)
|
||||
(set! v1-3 (the-as process #f))
|
||||
(set! v1-3 (the-as process-focusable #f))
|
||||
(set! (-> this attacker-handle) (the-as handle #f))
|
||||
)
|
||||
)
|
||||
(else
|
||||
(when (time-elapsed? (-> this attacker-time) (seconds 2.5))
|
||||
(set! v1-3 (the-as process #f))
|
||||
(set! v1-3 (the-as process-focusable #f))
|
||||
(set! (-> this attacker-handle) (the-as handle #f))
|
||||
)
|
||||
)
|
||||
@@ -366,12 +361,7 @@
|
||||
(empty)
|
||||
)
|
||||
(else
|
||||
(let ((s4-0 (handle->process (-> this poi-handle))))
|
||||
(set! s5-1 (if (type? s4-0 process-focusable)
|
||||
s4-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! s5-1 (as-type (handle->process (-> this poi-handle)) process-focusable))
|
||||
(if s5-1
|
||||
(empty)
|
||||
(set! s5-1 *target*)
|
||||
@@ -385,12 +375,7 @@
|
||||
(set! s5-1 v1-3)
|
||||
)
|
||||
(else
|
||||
(let ((s4-1 (handle->process (-> this poi-handle))))
|
||||
(set! s5-1 (if (type? s4-1 process-focusable)
|
||||
s4-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! s5-1 (as-type (handle->process (-> this poi-handle)) process-focusable))
|
||||
(cond
|
||||
(s5-1
|
||||
(empty)
|
||||
|
||||
+19
-73
@@ -120,12 +120,7 @@
|
||||
;; WARN: Return type mismatch symbol vs none.
|
||||
(defmethod bot-method-199 ((this bot))
|
||||
(logclear! (-> this bot-flags) (bot-flag attacked))
|
||||
(let* ((s5-0 (handle->process (-> this attacker-handle)))
|
||||
(v1-5 (if (type? s5-0 process-focusable)
|
||||
s5-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((v1-5 (as-type (handle->process (-> this attacker-handle)) process-focusable)))
|
||||
(if (and v1-5 (= (-> v1-5 type) target))
|
||||
(set! (-> this attacker-handle) (the-as handle #f))
|
||||
)
|
||||
@@ -274,12 +269,7 @@
|
||||
(dotimes (s3-0 *actor-list-length*)
|
||||
(let ((v1-26 (-> *actor-list* s3-0)))
|
||||
(when (logtest? (the-as int cspec) (-> v1-26 root-prim prim-core collide-as))
|
||||
(let* ((s2-0 (-> v1-26 process))
|
||||
(a1-26 (if (type? s2-0 process-focusable)
|
||||
s2-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a1-26 (as-type (-> v1-26 process) process-focusable)))
|
||||
(when a1-26
|
||||
(set-next-focus! this (the-as enemy a1-26) (the-as enemy-best-focus (&-> s5-0 next)))
|
||||
(if (-> s5-0 next)
|
||||
@@ -314,12 +304,7 @@
|
||||
(t9-0 this arg0 arg1 arg2 arg3 arg4)
|
||||
)
|
||||
(logclear! (-> this bot-flags) (bot-flag bf03 bf04))
|
||||
(let* ((s3-0 (handle->process (-> this incoming attacker-handle)))
|
||||
(s5-0 (if (type? s3-0 process-focusable)
|
||||
s3-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((s5-0 (as-type (handle->process (-> this incoming attacker-handle)) process-focusable)))
|
||||
(when s5-0
|
||||
(cond
|
||||
((= (-> s5-0 type) target)
|
||||
@@ -400,23 +385,12 @@
|
||||
|
||||
;; definition for method 192 of type bot
|
||||
(defmethod clear-poi ((this bot))
|
||||
(let* ((s4-0 (handle->process (-> this poi-handle)))
|
||||
(s5-0 (if (type? s4-0 process-focusable)
|
||||
s4-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((s5-0 (as-type (handle->process (-> this poi-handle)) process-focusable)))
|
||||
(when s5-0
|
||||
(set! (-> this poi-handle) (the-as handle #f))
|
||||
(let ((s4-1 (handle->process (-> this focus handle))))
|
||||
(if (= (if (type? s4-1 process-focusable)
|
||||
s4-1
|
||||
)
|
||||
s5-0
|
||||
)
|
||||
(clear-focused (-> this focus))
|
||||
)
|
||||
)
|
||||
(if (= (as-type (handle->process (-> this focus handle)) process-focusable) s5-0)
|
||||
(clear-focused (-> this focus))
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
@@ -483,12 +457,7 @@
|
||||
;; definition for method 106 of type bot
|
||||
(defmethod find-best-focus ((this bot))
|
||||
"Search for the best thing to focus on."
|
||||
(let* ((s5-0 (handle->process (-> this attacker-handle)))
|
||||
(v1-3 (if (type? s5-0 process-focusable)
|
||||
s5-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((v1-3 (as-type (handle->process (-> this attacker-handle)) process-focusable)))
|
||||
(when v1-3
|
||||
(cond
|
||||
((= (-> v1-3 type) target)
|
||||
@@ -498,13 +467,13 @@
|
||||
(if (logtest? (-> this bot-flags) (bot-flag attacked))
|
||||
(bot-method-199 this)
|
||||
)
|
||||
(set! v1-3 (the-as process #f))
|
||||
(set! v1-3 (the-as process-focusable #f))
|
||||
(set! (-> this attacker-handle) (the-as handle #f))
|
||||
)
|
||||
)
|
||||
(else
|
||||
(when (time-elapsed? (-> this attacker-time) (seconds 6))
|
||||
(set! v1-3 (the-as process #f))
|
||||
(set! v1-3 (the-as process-focusable #f))
|
||||
(set! (-> this attacker-handle) (the-as handle #f))
|
||||
)
|
||||
)
|
||||
@@ -523,12 +492,7 @@
|
||||
(empty)
|
||||
)
|
||||
(else
|
||||
(let ((s4-0 (handle->process (-> this poi-handle))))
|
||||
(set! s5-1 (if (type? s4-0 process-focusable)
|
||||
s4-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! s5-1 (as-type (handle->process (-> this poi-handle)) process-focusable))
|
||||
(if s5-1
|
||||
(empty)
|
||||
(set! s5-1 *target*)
|
||||
@@ -542,12 +506,7 @@
|
||||
(set! s5-1 v1-3)
|
||||
)
|
||||
(else
|
||||
(let ((s4-1 (handle->process (-> this poi-handle))))
|
||||
(set! s5-1 (if (type? s4-1 process-focusable)
|
||||
s4-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! s5-1 (as-type (handle->process (-> this poi-handle)) process-focusable))
|
||||
(cond
|
||||
(s5-1
|
||||
(empty)
|
||||
@@ -689,12 +648,7 @@
|
||||
(dotimes (s3-1 *actor-list-length*)
|
||||
(let ((v1-27 (-> *actor-list* s3-1)))
|
||||
(when (logtest? (the-as collide-spec s4-0) (-> v1-27 root-prim prim-core collide-as))
|
||||
(let* ((s2-0 (-> v1-27 process))
|
||||
(a1-26 (if (type? s2-0 process-focusable)
|
||||
s2-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a1-26 (as-type (-> v1-27 process) process-focusable)))
|
||||
(if (and a1-26
|
||||
a1-26
|
||||
(not (logtest? (-> (the-as process-focusable a1-26) focus-status) (focus-status disable dead)))
|
||||
@@ -853,13 +807,9 @@
|
||||
(('notify)
|
||||
(case (-> arg3 param 0)
|
||||
(('attack)
|
||||
(let ((s5-2 (-> arg3 param 1)))
|
||||
(when (if (type? s5-2 process-focusable)
|
||||
s5-2
|
||||
)
|
||||
(logior! (-> this enemy-flags) (enemy-flag victory))
|
||||
(set-time! (-> this hit-focus-time))
|
||||
)
|
||||
(when (as-type (-> arg3 param 1) process-focusable)
|
||||
(logior! (-> this enemy-flags) (enemy-flag victory))
|
||||
(set-time! (-> this hit-focus-time))
|
||||
)
|
||||
#t
|
||||
)
|
||||
@@ -995,13 +945,9 @@
|
||||
)
|
||||
(else
|
||||
(when (!= (-> arg0 type) target)
|
||||
(let* ((s3-0 (-> arg1 param 0))
|
||||
(s2-0 arg0)
|
||||
(v1-6 (if (type? s2-0 process-focusable)
|
||||
s2-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((s3-0 (-> arg1 param 0))
|
||||
(v1-6 (as-type arg0 process-focusable))
|
||||
)
|
||||
(cond
|
||||
((and (focus-test? this dangerous)
|
||||
(logtest? (process-mask enemy) (-> arg0 mask))
|
||||
|
||||
+1
-5
@@ -1063,11 +1063,7 @@
|
||||
|
||||
;; definition for method 30 of type battle
|
||||
(defmethod get-spawner-for-enemy ((this battle) (arg0 process))
|
||||
(let ((v1-0 (if (type? arg0 nav-enemy)
|
||||
(the-as nav-enemy arg0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((v1-0 (as-type arg0 nav-enemy)))
|
||||
(when v1-0
|
||||
(dotimes (a0-3 (-> this spawners length))
|
||||
(let* ((a1-5 (-> this spawners data a0-3))
|
||||
|
||||
Generated
Vendored
+1
-6
@@ -68,12 +68,7 @@
|
||||
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
|
||||
(case message
|
||||
(('touched)
|
||||
(let* ((s4-0 proc)
|
||||
(v1-1 (if (type? s4-0 process-drawable)
|
||||
s4-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((v1-1 (as-type proc process-drawable)))
|
||||
(when v1-1
|
||||
(let ((s4-1 (-> (the-as process-drawable v1-1) root))
|
||||
(a1-3 (new 'stack 'collide-query))
|
||||
|
||||
+1
-6
@@ -54,12 +54,7 @@
|
||||
(if (= (-> this shield-type) (shield-type shield-type-0))
|
||||
(seek! (-> this heat-info current-heat-value) 0.0 (* 0.2 (seconds-per-frame)))
|
||||
)
|
||||
(let* ((s4-0 (handle->process (-> this owner)))
|
||||
(s5-0 (if (type? s4-0 process-focusable)
|
||||
s4-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((s5-0 (as-type (handle->process (-> this owner)) process-focusable)))
|
||||
(cond
|
||||
(s5-0
|
||||
(quaternion-copy! (-> this root quat) (-> (the-as process-focusable s5-0) root quat))
|
||||
|
||||
+9
-29
@@ -867,12 +867,7 @@
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod flitter-method-192 ((this flitter))
|
||||
(let* ((s5-0 (handle->process (-> this focus handle)))
|
||||
(s3-0 (if (type? s5-0 process-focusable)
|
||||
s5-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((s3-0 (as-type (handle->process (-> this focus handle)) process-focusable)))
|
||||
(when s3-0
|
||||
(let* ((s5-1 (get-trans (the-as process-focusable s3-0) 0))
|
||||
(s4-1 (vector-! (new 'stack-no-clear 'vector) s5-1 (-> this root trans)))
|
||||
@@ -951,12 +946,8 @@
|
||||
(local-vars (v1-29 symbol))
|
||||
(stop-look-at! self)
|
||||
(set! (-> self skel root-channel 0 frame-group) arg0)
|
||||
(let ((s4-1 (get-knockback-dir! self (new 'stack-no-clear 'vector)))
|
||||
(s3-0 (-> self root))
|
||||
)
|
||||
(when (if (type? s3-0 collide-shape-moving)
|
||||
s3-0
|
||||
)
|
||||
(let ((s4-1 (get-knockback-dir! self (new 'stack-no-clear 'vector))))
|
||||
(when (as-type (-> self root) collide-shape-moving)
|
||||
(set! (-> self root transv y) 33775.48)
|
||||
(ja :num-func num-func-identity :frame-num 0.0)
|
||||
(set-time! (-> self state-time))
|
||||
@@ -1063,18 +1054,12 @@
|
||||
(cond
|
||||
((= v1-11 (enemy-aware hostile))
|
||||
(cond
|
||||
((when gp-0
|
||||
(let* ((gp-1 self)
|
||||
(s5-1 (method-of-object gp-1 flitter-method-194))
|
||||
(s4-0 (handle->process (-> self focus handle)))
|
||||
)
|
||||
(s5-1 gp-1 (the-as process-focusable (if (type? s4-0 process-focusable)
|
||||
s4-0
|
||||
)
|
||||
)
|
||||
)
|
||||
((if gp-0
|
||||
(flitter-method-194
|
||||
self
|
||||
(the-as process-focusable (as-type (handle->process (-> self focus handle)) process-focusable))
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (and (get-focus! self) (time-elapsed? (-> self off-screen-timer) (seconds 0.3)))
|
||||
(go-hostile self)
|
||||
)
|
||||
@@ -1209,12 +1194,7 @@
|
||||
)
|
||||
:trans (behavior ()
|
||||
(local-vars (s5-2 object))
|
||||
(let* ((s5-0 (handle->process (-> self focus handle)))
|
||||
(gp-0 (if (type? s5-0 process-focusable)
|
||||
s5-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((gp-0 (as-type (handle->process (-> self focus handle)) process-focusable)))
|
||||
(set! s5-2
|
||||
(cond
|
||||
((and gp-0
|
||||
|
||||
+1
-6
@@ -995,12 +995,7 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((gp-1 *target*)
|
||||
(a0-4 (if (type? gp-1 process-focusable)
|
||||
gp-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a0-4 (the-as target (as-type *target* process-focusable))))
|
||||
(when a0-4
|
||||
(let* ((gp-2 (-> self root))
|
||||
(s3-0 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) (get-trans a0-4 0) (-> gp-2 trans)) 1.0))
|
||||
|
||||
+14
-26
@@ -168,23 +168,15 @@
|
||||
(a0-2
|
||||
(hover-formation-method-15 a0-2 gp-0 (-> self offset))
|
||||
)
|
||||
(else
|
||||
(let ((s5-0 (handle->process (-> self focus handle))))
|
||||
(cond
|
||||
((if (type? s5-0 process-focusable)
|
||||
s5-0
|
||||
)
|
||||
(let* ((s5-1 (-> self focus-pos))
|
||||
(a0-8 (vector-! (new 'stack-no-clear 'vector) (-> self root trans) s5-1))
|
||||
)
|
||||
(vector+! gp-0 s5-1 (vector-rotate-y! (new 'stack-no-clear 'vector) (-> self offset) (vector-y-angle a0-8)))
|
||||
)
|
||||
)
|
||||
(else
|
||||
(vector-copy! gp-0 (-> self root trans))
|
||||
((as-type (handle->process (-> self focus handle)) process-focusable)
|
||||
(let* ((s5-1 (-> self focus-pos))
|
||||
(a0-8 (vector-! (new 'stack-no-clear 'vector) (-> self root trans) s5-1))
|
||||
)
|
||||
)
|
||||
)
|
||||
(vector+! gp-0 s5-1 (vector-rotate-y! (new 'stack-no-clear 'vector) (-> self offset) (vector-y-angle a0-8)))
|
||||
)
|
||||
)
|
||||
(else
|
||||
(vector-copy! gp-0 (-> self root trans))
|
||||
)
|
||||
)
|
||||
(hover-nav-control-method-12 (-> self hover) gp-0)
|
||||
@@ -505,16 +497,12 @@
|
||||
(go process-drawable-art-error "no path")
|
||||
)
|
||||
(set-time! (-> self scale-timer))
|
||||
(let* ((gp-0 *target*)
|
||||
(s1-0 (if (type? gp-0 process-focusable)
|
||||
gp-0
|
||||
)
|
||||
)
|
||||
(gp-1 (new 'stack-no-clear 'vector))
|
||||
(s2-0 (new 'stack-no-clear 'vector))
|
||||
(s4-0 (-> self root))
|
||||
(s5-0 (get-point-at-percent-along-path! (-> self path) (new 'stack-no-clear 'vector) 0.0 'interp))
|
||||
)
|
||||
(let ((s1-0 (the-as target (as-type *target* process-focusable)))
|
||||
(gp-1 (new 'stack-no-clear 'vector))
|
||||
(s2-0 (new 'stack-no-clear 'vector))
|
||||
(s4-0 (-> self root))
|
||||
(s5-0 (get-point-at-percent-along-path! (-> self path) (new 'stack-no-clear 'vector) 0.0 'interp))
|
||||
)
|
||||
(let ((s0-0 (get-point-at-percent-along-path! (-> self path) (new 'stack-no-clear 'vector) 1.0 'interp))
|
||||
(s3-1
|
||||
(-> (the-as collide-shape-prim-group (-> self root root-prim))
|
||||
|
||||
+7
-37
@@ -16,18 +16,10 @@
|
||||
;; definition for method 16 of type hover-formation-control
|
||||
(defmethod hover-formation-control-method-16 ((this hover-formation-control))
|
||||
(let ((gp-0 (hover-formation-control-method-13 this (new 'stack-no-clear 'vector)))
|
||||
(s4-0 (cond
|
||||
((-> this anchor-proc)
|
||||
(let ((s3-0 (handle->process (-> this anchor-proc))))
|
||||
(if (type? s3-0 process-focusable)
|
||||
s3-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(s4-0 (if (-> this anchor-proc)
|
||||
(as-type (handle->process (-> this anchor-proc)) process-focusable)
|
||||
*target*
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(and s4-0
|
||||
@@ -63,18 +55,10 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(s1-0 (cond
|
||||
((-> this anchor-proc)
|
||||
(let ((s3-0 (handle->process (-> this anchor-proc))))
|
||||
(if (type? s3-0 process-focusable)
|
||||
s3-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(s1-0 (if (-> this anchor-proc)
|
||||
(as-type (handle->process (-> this anchor-proc)) process-focusable)
|
||||
*target*
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
@@ -139,18 +123,10 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(a0-7 (cond
|
||||
((-> this anchor-proc)
|
||||
(let ((s4-0 (handle->process (-> this anchor-proc))))
|
||||
(if (type? s4-0 process-focusable)
|
||||
s4-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(a0-7 (if (-> this anchor-proc)
|
||||
(as-type (handle->process (-> this anchor-proc)) process-focusable)
|
||||
*target*
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
@@ -437,12 +413,7 @@
|
||||
(set! (-> s5-0 best-cost) -1.0)
|
||||
(set! (-> s5-0 count) 0)
|
||||
(dotimes (s4-0 16)
|
||||
(let* ((s3-0 (handle->process (-> this actor-table s4-0)))
|
||||
(a0-8 (if (type? s3-0 process-focusable)
|
||||
s3-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a0-8 (as-type (handle->process (-> this actor-table s4-0)) process-focusable)))
|
||||
(cond
|
||||
(a0-8
|
||||
(vector-copy! (-> s5-0 actor-position s4-0) (get-trans (the-as process-focusable a0-8) 3))
|
||||
@@ -833,7 +804,6 @@
|
||||
)
|
||||
|
||||
;; definition for method 3 of type flying-formation
|
||||
;; INFO: this function exists in multiple non-identical object files
|
||||
(defmethod inspect ((this flying-formation))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
|
||||
+1
-6
@@ -929,12 +929,7 @@
|
||||
)
|
||||
)
|
||||
(let ((gp-0 (-> self dest-pos)))
|
||||
(let* ((s5-0 (handle->process (-> self focus handle)))
|
||||
(a0-6 (if (type? s5-0 process-focusable)
|
||||
s5-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a0-6 (as-type (handle->process (-> self focus handle)) process-focusable)))
|
||||
(vector-copy! gp-0 (get-trans (the-as process-focusable a0-6) 0))
|
||||
)
|
||||
(+! (-> gp-0 y) -20480.0)
|
||||
|
||||
+1
-6
@@ -875,12 +875,7 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((gp-1 *target*)
|
||||
(a0-4 (if (type? gp-1 process-focusable)
|
||||
gp-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a0-4 (the-as target (as-type *target* process-focusable))))
|
||||
(when a0-4
|
||||
(let* ((gp-2 (-> self root))
|
||||
(s3-0 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) (get-trans a0-4 0) (-> gp-2 trans)) 1.0))
|
||||
|
||||
+1
-6
@@ -772,12 +772,7 @@
|
||||
(set! (-> v1-12 prim-core collide-with) (collide-spec))
|
||||
)
|
||||
0
|
||||
(let* ((gp-1 *target*)
|
||||
(a0-4 (if (type? gp-1 process-focusable)
|
||||
gp-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a0-4 (the-as target (as-type *target* process-focusable))))
|
||||
(when a0-4
|
||||
(let* ((gp-2 (-> self root))
|
||||
(s3-0 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) (get-trans a0-4 0) (-> gp-2 trans)) 1.0))
|
||||
|
||||
+1
-6
@@ -866,12 +866,7 @@
|
||||
(cond
|
||||
((logtest? (-> this flags) (spydroid-orig-flag sof0))
|
||||
(set! sv-144 (the-as vector (send-event (ppointer->process (-> this parent)) 'widow-get-center)))
|
||||
(let* ((s1-0 arg0)
|
||||
(s0-0 (if (type? s1-0 process-drawable)
|
||||
s1-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((s0-0 (as-type arg0 process-drawable)))
|
||||
(let ((v1-7 sv-144))
|
||||
(b! (not v1-7) cfg-16 :likely-delay (set! v1-8 sv-144))
|
||||
)
|
||||
|
||||
+5
-18
@@ -1513,28 +1513,15 @@
|
||||
(set! (-> this attacker-info next-update-target-time) (+ (current-time) (seconds 3)))
|
||||
(logclear! (-> this attacker-info flags) (city-attacker-info-flag cai2))
|
||||
)
|
||||
(let* ((s5-0 (handle->process (-> this current-enemy)))
|
||||
(a0-18 (if (type? s5-0 process-focusable)
|
||||
s5-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a0-18 (as-type (handle->process (-> this current-enemy)) process-focusable)))
|
||||
(cond
|
||||
((and a0-18
|
||||
(not (logtest? (-> (the-as process-focusable a0-18) focus-status) (focus-status disable dead inactive)))
|
||||
)
|
||||
(let* ((s5-1 this)
|
||||
(s4-0 (method-of-object s5-1 set-focus!))
|
||||
(s3-0 (handle->process (-> this current-enemy)))
|
||||
)
|
||||
(s4-0
|
||||
s5-1
|
||||
(the-as process-focusable (if (type? s3-0 process-focusable)
|
||||
s3-0
|
||||
)
|
||||
)
|
||||
(the-as enemy-aware #f)
|
||||
)
|
||||
(set-focus!
|
||||
this
|
||||
(the-as process-focusable (as-type (handle->process (-> this current-enemy)) process-focusable))
|
||||
(the-as enemy-aware #f)
|
||||
)
|
||||
(update-focus this)
|
||||
(let ((f0-0 (vector-vector-xz-distance-squared (-> this root trans) (-> this focus-pos)))
|
||||
|
||||
+7
-29
@@ -264,12 +264,7 @@
|
||||
(if (not (handle->process (-> this alert-state target-status handle)))
|
||||
(return 0)
|
||||
)
|
||||
(let* ((s5-0 (handle->process (-> this alert-state target-status handle)))
|
||||
(s4-0 (if (type? s5-0 process-focusable)
|
||||
s5-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((s4-0 (as-type (handle->process (-> this alert-state target-status handle)) process-focusable)))
|
||||
(when s4-0
|
||||
(let ((s5-1 (new 'stack-no-clear 'primary-target-pos-vel)))
|
||||
(vector-copy! (-> s5-1 position) (get-trans (the-as process-focusable s4-0) 3))
|
||||
@@ -334,12 +329,7 @@
|
||||
;; definition for method 26 of type squad-control
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod set-pos-vel ((this squad-control) (arg0 primary-target-pos-vel))
|
||||
(let* ((s4-0 (handle->process (-> this alert-state target-status handle)))
|
||||
(s5-0 (if (type? s4-0 process-focusable)
|
||||
s4-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((s5-0 (as-type (handle->process (-> this alert-state target-status handle)) process-focusable)))
|
||||
(when s5-0
|
||||
(vector-copy! (-> arg0 position) (get-trans (the-as process-focusable s5-0) 3))
|
||||
(vector-copy! (-> arg0 velocity) (get-transv (the-as process-focusable s5-0)))
|
||||
@@ -381,11 +371,9 @@
|
||||
;; definition for method 30 of type squad-control
|
||||
;; WARN: Return type mismatch process vs process-focusable.
|
||||
(defmethod get-target-focus ((this squad-control))
|
||||
(let ((gp-0 (handle->process (-> this alert-state target-status handle))))
|
||||
(the-as process-focusable (if (type? gp-0 process-focusable)
|
||||
gp-0
|
||||
)
|
||||
)
|
||||
(the-as
|
||||
process-focusable
|
||||
(as-type (handle->process (-> this alert-state target-status handle)) process-focusable)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -397,12 +385,7 @@
|
||||
(s4-0 (the-as process #f))
|
||||
)
|
||||
(dotimes (s3-0 3)
|
||||
(let* ((s1-0 (handle->process (-> this alert-state target-status-array s3-0 handle)))
|
||||
(s2-0 (if (type? s1-0 process-focusable)
|
||||
s1-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((s2-0 (as-type (handle->process (-> this alert-state target-status-array s3-0 handle)) process-focusable)))
|
||||
(when s2-0
|
||||
(let ((f0-2 (vector-vector-xz-distance-squared (-> arg0 root trans) (get-trans (the-as process-focusable s2-0) 0)))
|
||||
)
|
||||
@@ -534,12 +517,7 @@
|
||||
;; definition for method 32 of type squad-control
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod get-handle-pos ((this squad-control) (arg0 handle) (arg1 vector))
|
||||
(let* ((s5-0 (handle->process arg0))
|
||||
(a0-5 (if (type? s5-0 process-focusable)
|
||||
s5-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a0-5 (as-type (handle->process arg0) process-focusable)))
|
||||
(new 'stack-no-clear 'vector)
|
||||
(if a0-5
|
||||
(vector-copy! arg1 (get-trans (the-as process-focusable a0-5) 0))
|
||||
|
||||
+1
-6
@@ -435,12 +435,7 @@
|
||||
(vector+! (-> gp-0 vec-2) (-> s3-2 start-pos) (-> s3-2 move-dist))
|
||||
)
|
||||
(else
|
||||
(let* ((s4-1 (-> s3-2 best-other-tri collide-ptr))
|
||||
(a0-43 (if (type? s4-1 collide-shape-prim)
|
||||
s4-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a0-43 (as-type (-> s3-2 best-other-tri collide-ptr) collide-shape-prim)))
|
||||
(if (and a0-43 (logtest? (-> (the-as collide-shape-prim a0-43) prim-core collide-as) (collide-spec jak)))
|
||||
(set! s5-1 #t)
|
||||
)
|
||||
|
||||
+5
-13
@@ -316,12 +316,8 @@
|
||||
(set! (-> this strings 0 scale) 0.0)
|
||||
(set! (-> sv-112 origin x) 45.0)
|
||||
(set! (-> sv-112 origin y) 20.0)
|
||||
(let ((v1-11 sv-112))
|
||||
(set! (-> v1-11 width) (the float 422))
|
||||
)
|
||||
(let ((v1-12 sv-112))
|
||||
(set! (-> v1-12 height) (the float 80))
|
||||
)
|
||||
(set-width! sv-112 422)
|
||||
(set-height! sv-112 80)
|
||||
(let ((a0-6 sv-112))
|
||||
(set! (-> a0-6 color) (font-color red))
|
||||
)
|
||||
@@ -329,14 +325,10 @@
|
||||
(set! (-> a0-7 flags) (font-flags kerning middle middle-vert large))
|
||||
)
|
||||
(let ((s0-0 80))
|
||||
(let ((v1-15 sv-112))
|
||||
(set! (-> v1-15 scale) 1.6)
|
||||
)
|
||||
(when (= (-> *setting-control* user-default language) (language-enum german))
|
||||
(let ((v1-18 sv-112))
|
||||
(set! (-> v1-18 scale) 1.0)
|
||||
(set-scale! sv-112 1.6)
|
||||
(if (= (-> *setting-control* user-default language) (language-enum german))
|
||||
(set-scale! sv-112 1.0)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((-> s1-0 player-win?)
|
||||
(let ((s1-1 print-game-text)
|
||||
|
||||
+13
-38
@@ -391,13 +391,9 @@
|
||||
(defmethod get-racer-count ((this race-state))
|
||||
(let ((gp-0 0))
|
||||
(dotimes (s4-0 (-> this racer-count))
|
||||
(let ((s3-0 (handle->process (-> this racer-array s4-0 racer))))
|
||||
(if (if (type? s3-0 process-focusable)
|
||||
s3-0
|
||||
)
|
||||
(+! gp-0 1)
|
||||
)
|
||||
)
|
||||
(if (as-type (handle->process (-> this racer-array s4-0 racer)) process-focusable)
|
||||
(+! gp-0 1)
|
||||
)
|
||||
)
|
||||
gp-0
|
||||
)
|
||||
@@ -630,13 +626,9 @@
|
||||
)
|
||||
)
|
||||
(((race-state-enum rs1))
|
||||
(let* ((f30-0 (* 0.0033333334 (the float (- (-> this current-time) (-> this countdown-start-time)))))
|
||||
(s4-0 (handle->process (-> this racer-array (-> this i-player) racer)))
|
||||
(s5-1 (if (type? s4-0 process-focusable)
|
||||
s4-0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((f30-0 (* 0.0033333334 (the float (- (-> this current-time) (-> this countdown-start-time)))))
|
||||
(s5-1 (as-type (handle->process (-> this racer-array (-> this i-player) racer)) process-focusable))
|
||||
)
|
||||
(cond
|
||||
((< f30-0 1.0)
|
||||
(when s5-1
|
||||
@@ -656,12 +648,7 @@
|
||||
)
|
||||
)
|
||||
(((race-state-enum rs2))
|
||||
(let* ((s4-1 (handle->process (-> this racer-array (-> this i-player) racer)))
|
||||
(s5-2 (if (type? s4-1 process-focusable)
|
||||
s4-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((s5-2 (as-type (handle->process (-> this racer-array (-> this i-player) racer)) process-focusable)))
|
||||
(when s5-2
|
||||
(cubic-curve-method-10 (-> this player-intro-curve) (-> (the-as process-drawable s5-2) root trans) 1.0)
|
||||
(vector-reset! (-> (the-as process-drawable s5-2) root transv))
|
||||
@@ -1231,15 +1218,9 @@
|
||||
(new 'stack 'font-context *font-default-matrix* 70 20 0.0 (font-color orange) (font-flags shadow kerning))
|
||||
)
|
||||
)
|
||||
(let ((v1-10 gp-1))
|
||||
(set! (-> v1-10 scale) 0.7)
|
||||
)
|
||||
(let ((v1-11 gp-1))
|
||||
(set! (-> v1-11 width) (the float 225))
|
||||
)
|
||||
(let ((v1-12 gp-1))
|
||||
(set! (-> v1-12 height) (the float 70))
|
||||
)
|
||||
(set-scale! gp-1 0.7)
|
||||
(set-width! gp-1 225)
|
||||
(set-height! gp-1 70)
|
||||
(set! (-> gp-1 origin x) (the float (- 256 (the int (/ (-> gp-1 width) 2)))))
|
||||
(set! (-> gp-1 origin y) 320.0)
|
||||
(set! (-> gp-1 flags) (font-flags shadow kerning middle middle-vert large))
|
||||
@@ -1289,15 +1270,9 @@
|
||||
(new 'stack 'font-context *font-default-matrix* 70 20 0.0 (font-color orange) (font-flags shadow kerning))
|
||||
)
|
||||
)
|
||||
(let ((v1-10 gp-1))
|
||||
(set! (-> v1-10 scale) 0.7)
|
||||
)
|
||||
(let ((v1-11 gp-1))
|
||||
(set! (-> v1-11 width) (the float 240))
|
||||
)
|
||||
(let ((v1-12 gp-1))
|
||||
(set! (-> v1-12 height) (the float 35))
|
||||
)
|
||||
(set-scale! gp-1 0.7)
|
||||
(set-width! gp-1 240)
|
||||
(set-height! gp-1 35)
|
||||
(set! (-> gp-1 origin x) (the float (- 256 (the int (/ (-> gp-1 width) 2)))))
|
||||
(set! (-> gp-1 origin y) 320.0)
|
||||
(set! (-> gp-1 flags) (font-flags shadow kerning middle middle-vert large))
|
||||
|
||||
Reference in New Issue
Block a user