clean up casts around conds with elses (#904)

This commit is contained in:
water111 2021-10-16 12:02:49 -04:00 committed by GitHub
parent 7e91fc1f3c
commit 9225d28444
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 712 additions and 1079 deletions

View file

@ -3345,6 +3345,9 @@ void CondNoElseElement::push_to_stack(const Env& env, FormPool& pool, FormStack&
stack.push_value_to_reg(write_as_value, as_ppointer_to_process, true,
env.get_variable_type(final_destination, false));
} else {
// fmt::print("func {} final destination {} type {}\n", env.func->name(),
// final_destination.to_string(env),
// env.get_variable_type(final_destination, false).print());
stack.push_value_to_reg(write_as_value, pool.alloc_single_form(nullptr, this), true,
env.get_variable_type(final_destination, false));
}
@ -3437,7 +3440,9 @@ void CondWithElseElement::push_to_stack(const Env& env, FormPool& pool, FormStac
rewrite_as_set = false;
break;
}
source_types.push_back(last_in_body->src_type());
// note: we use the dest type here because the rewrite will leave behind a cast to this.
auto type = env.get_variable_type(last_in_body->dst(), true);
source_types.push_back(type);
}
last_var = last_in_body->dst();
}
@ -3507,10 +3512,12 @@ void CondWithElseElement::push_to_stack(const Env& env, FormPool& pool, FormStac
// (set! x (if y z (expr))) and z requires a cast, but the move from z to x is
// eliminated by GOAL's register allocator.
// fmt::print("checking:\n");
// for (auto& t : source_types) {
// fmt::print(" {}\n", t.print());
// }
// fmt::print("func: {}\n", env.func->name());
// fmt::print("checking:\n");
// for (auto& t : source_types) {
// fmt::print(" {}\n", t.print());
// }
auto expected_type = env.get_variable_type(*last_var, true);
// fmt::print("The expected type is {}\n", expected_type.print());

View file

@ -12,54 +12,31 @@
(let ((v1-0 arg2))
(the-as object (cond
((= v1-0 'point-of-interest)
(the-as none (cond
((-> arg3 param 0)
(set!
(->
(the-as camera-slave self)
unknown-symbol
)
#t
)
(set!
(->
(the-as camera-slave self)
view-off
quad
)
(-> (the-as vector (-> arg3 param 0)) quad)
)
(let ((f0-0 1.0))
(set!
(->
(the-as camera-slave self)
min-z-override
)
f0-0
)
f0-0
)
)
(else
(set!
(->
(the-as camera-slave self)
unknown-symbol
)
#f
)
(let ((f0-1 0.0))
(set!
(->
(the-as camera-slave self)
min-z-override
)
f0-1
)
f0-1
)
)
)
(cond
((-> arg3 param 0)
(set! (-> (the-as camera-slave self) unknown-symbol) #t)
(set!
(-> (the-as camera-slave self) view-off quad)
(-> (the-as vector (-> arg3 param 0)) quad)
)
(let ((f0-0 1.0))
(set!
(-> (the-as camera-slave self) min-z-override)
f0-0
)
f0-0
)
)
(else
(set! (-> (the-as camera-slave self) unknown-symbol) #f)
(let ((f0-1 0.0))
(set!
(-> (the-as camera-slave self) min-z-override)
f0-1
)
f0-1
)
)
)
)
((= v1-0 'set-interpolation)

View file

@ -1319,48 +1319,31 @@
)
)
((= v1-0 'point-of-interest)
(the-as none (cond
((-> arg3 param 0)
(set!
(-> self tracking use-point-of-interest)
#t
)
(set!
(-> self tracking point-of-interest quad)
(-> (the-as vector (-> arg3 param 0)) quad)
)
(let ((f0-0 1.0))
(set!
(->
self
tracking
point-of-interest-blend
target
)
f0-0
)
f0-0
)
)
(else
(set!
(-> self tracking use-point-of-interest)
#f
)
(let ((f0-1 0.0))
(set!
(->
self
tracking
point-of-interest-blend
target
)
f0-1
)
f0-1
)
)
)
(cond
((-> arg3 param 0)
(set! (-> self tracking use-point-of-interest) #t)
(set!
(-> self tracking point-of-interest quad)
(-> (the-as vector (-> arg3 param 0)) quad)
)
(let ((f0-0 1.0))
(set!
(-> self tracking point-of-interest-blend target)
f0-0
)
f0-0
)
)
(else
(set! (-> self tracking use-point-of-interest) #f)
(let ((f0-1 0.0))
(set!
(-> self tracking point-of-interest-blend target)
f0-1
)
f0-1
)
)
)
)
((= v1-0 'teleport)

View file

@ -468,6 +468,7 @@
:flag-assert #x1401300198
)
(defun anim-tester-num-print ((arg0 basic) (arg1 float))
(cond
((= arg1 (-> (new 'static 'array float 1 -2.0) 0))
@ -3146,78 +3147,78 @@
(s3-0 "saving object ~s to ~s~%")
(s2-0 (-> arg0 privname))
)
(format (clear *temp-string*) "data/~s.obinf" (-> arg0 privname))
(gp-0 s4-0 s3-0 s2-0 *temp-string*)
)
;; TODO - manually fixed
(format (clear *temp-string*) "data/~s.obinf" (-> arg0 privname))
(gp-0 s4-0 s3-0 s2-0 *temp-string*)
)
(format (clear *temp-string*) "data/~s.obinf" (-> arg0 privname))
(let ((gp-2 (new 'stack 'file-stream *temp-string* 'write)))
;; TODO: manually fixed
(let ((gp-2 (new 'stack 'file-stream *temp-string* 'write)))
(format gp-2 "major-version 0~%")
(format gp-2 "minor-version 0~%")
(format gp-2 "Object \"~S\" ~d~%" (-> arg0 privname) 0)
(let ((v1-5 (-> arg0 seq-list)))
"return the start of the list"
(let ((s5-1 (-> v1-5 head)))
(while (let ((v1-30 (the-as anim-test-sequence s5-1)))
"is this node the end of the list. #t = end"
(not (not (-> v1-30 next)))
)
(set!
(-> (the-as anim-test-sequence s5-1) flags)
(logand -5 (-> (the-as anim-test-sequence s5-1) flags))
)
(format
gp-2
" ~S \"~S\" ~d~%"
(if (logtest? (-> (the-as anim-test-sequence s5-1) flags) 1)
"Sequence"
"Anim"
)
(-> (the-as anim-test-sequence s5-1) privname)
0
)
(let ((v1-11 (-> (the-as anim-test-sequence s5-1) item-list)))
"return the start of the list"
(let ((s4-2 (the-as anim-test-seq-item (-> v1-11 head))))
(while (let ((v1-21 s4-2))
"return the start of the list"
(let ((s5-1 (-> v1-5 head)))
(while (let ((v1-30 (the-as anim-test-sequence s5-1)))
"is this node the end of the list. #t = end"
(not (not (-> v1-21 next)))
(not (not (-> v1-30 next)))
)
(when (zero? (logand (-> s4-2 flags) 5))
(format
(set!
(-> (the-as anim-test-sequence s5-1) flags)
(logand -5 (-> (the-as anim-test-sequence s5-1) flags))
)
(format
gp-2
" Item \"~S\" ~d ~d "
(-> s4-2 privname)
(-> s4-2 speed)
(-> s4-2 blend)
" ~S \"~S\" ~d~%"
(if (logtest? (-> (the-as anim-test-sequence s5-1) flags) 1)
"Sequence"
"Anim"
)
(-> (the-as anim-test-sequence s5-1) privname)
0
)
(anim-tester-num-print gp-2 (-> s4-2 first-frame))
(format gp-2 " ")
(anim-tester-num-print gp-2 (-> s4-2 last-frame))
(format gp-2 " ~S~%" (if (logtest? (-> s4-2 flags) 2)
"B"
"-"
)
(let ((v1-11 (-> (the-as anim-test-sequence s5-1) item-list)))
"return the start of the list"
(let ((s4-2 (the-as anim-test-seq-item (-> v1-11 head))))
(while (let ((v1-21 s4-2))
"is this node the end of the list. #t = end"
(not (not (-> v1-21 next)))
)
(when (zero? (logand (-> s4-2 flags) 5))
(format
gp-2
" Item \"~S\" ~d ~d "
(-> s4-2 privname)
(-> s4-2 speed)
(-> s4-2 blend)
)
(anim-tester-num-print gp-2 (-> s4-2 first-frame))
(format gp-2 " ")
(anim-tester-num-print gp-2 (-> s4-2 last-frame))
(format gp-2 " ~S~%" (if (logtest? (-> s4-2 flags) 2)
"B"
"-"
)
)
)
"return the next node in the list"
(set! s4-2 (the-as anim-test-seq-item (-> s4-2 next)))
)
)
)
(format
gp-2
" ~S~%"
(if (logtest? (-> (the-as anim-test-sequence s5-1) flags) 1)
"EndSequence"
"EndAnim"
)
)
)
"return the next node in the list"
(set! s4-2 (the-as anim-test-seq-item (-> s4-2 next)))
(set! s5-1 (-> (the-as anim-test-sequence s5-1) next))
)
)
)
(format
gp-2
" ~S~%"
(if (logtest? (-> (the-as anim-test-sequence s5-1) flags) 1)
"EndSequence"
"EndAnim"
)
)
"return the next node in the list"
(set! s5-1 (-> (the-as anim-test-sequence s5-1) next))
)
)
)
(format gp-2 "EndObject~%")
(file-stream-close gp-2)
)
@ -3652,6 +3653,8 @@
)
(defmethod inspect anim-tester ((obj anim-tester))
(format #t "--anim-tester--~%")
(let ((v1-0 (-> obj obj-list)))

View file

@ -129,14 +129,10 @@
(defmethod TODO-RENAME-9 effect-control ((obj effect-control))
(let* ((a0-1 (-> obj process skel))
(v1-3
(the-as
joint-control-channel
(if (< (-> obj channel-offset) (-> a0-1 active-channels))
(-> a0-1 root-channel (-> obj channel-offset))
(the-as joint-control-channel #f)
)
)
(v1-3 (if (< (-> obj channel-offset) (-> a0-1 active-channels))
(-> a0-1 root-channel (-> obj channel-offset))
(the-as joint-control-channel #f)
)
)
)
(cond
@ -166,13 +162,10 @@
)
)
)
(set!
(-> obj name)
(the-as (pointer res-tag) (if (>= (the-as int v1-6) 0)
(&-> (-> s5-0 extra tag) v1-6)
(the-as (pointer res-tag) #f)
)
)
(set! (-> obj name) (if (>= (the-as int v1-6) 0)
(&-> (-> s5-0 extra tag) v1-6)
(the-as (pointer res-tag) #f)
)
)
)
(if (and (-> obj name) (= (-> obj name 0 key-frame) -1000000000.0))
@ -335,10 +328,9 @@
)
)
)
(the-as int (if (zero? v0-0)
0
(the-as int (+ v0-0 1))
)
(if (zero? v0-0)
0
(the-as int (+ v0-0 1))
)
)
)
@ -469,7 +461,10 @@
)
)
)
(s2-1
((the-as
(function object object object object object object object object none)
s2-1
)
s1-0
s0-0
(the-as sparticle-launch-group s3-0)
@ -570,7 +565,19 @@
)
)
)
(s2-3 s1-2 s0-2 s3-0 sv-224 sv-240 sv-256 sv-272 t3-1)
((the-as
(function object object object object object object object object none)
s2-3
)
s1-2
s0-2
s3-0
sv-224
sv-240
sv-256
sv-272
t3-1
)
)
)
(-> s4-3 ppointer)

View file

@ -25,12 +25,10 @@
(defmethod login-adgifs merc-fragment ((obj merc-fragment))
"Set up a merc-fragment. Does adgifs and eye stuff"
(let* ((fp-data (merc-fragment-fp-data obj))
(eye-ctrl
(the-as merc-eye-ctrl (if (nonzero? (-> *merc-ctrl-header* eye-ctrl))
(-> *merc-ctrl-header* eye-ctrl)
(the-as merc-eye-ctrl #f)
)
)
(eye-ctrl (if (nonzero? (-> *merc-ctrl-header* eye-ctrl))
(-> *merc-ctrl-header* eye-ctrl)
(the-as merc-eye-ctrl #f)
)
)
(shader (the-as adgif-shader (&+ fp-data 16)))
)

View file

@ -9,7 +9,8 @@
(declare-type lurkercrab nav-enemy)
(define-extern lurkercrab-pushed (state lurkercrab))
;; failed to figure out what this is:
;; DECOMP BEGINS
(set!
(-> *part-group-id-table* 159)
(new 'static 'sparticle-launch-group
@ -27,7 +28,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 663)
(new 'static 'sparticle-launcher
@ -53,7 +53,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 664)
(new 'static 'sparticle-launcher
@ -81,7 +80,6 @@
)
)
;; definition of type lurkercrab
(deftype lurkercrab (nav-enemy)
((orient basic :offset-assert 400)
)
@ -91,16 +89,7 @@
:flag-assert #x4c01300194
)
;; definition for method 3 of type lurkercrab
(defmethod inspect lurkercrab ((obj lurkercrab))
(let ((t9-0 (method-of-type nav-enemy inspect)))
(t9-0 obj)
)
(format #t "~T~Torient: ~A~%" (-> obj orient))
obj
)
;; failed to figure out what this is:
(let
((v1-4
(new 'static 'skeleton-group
@ -122,8 +111,6 @@
(set! *lurkercrab-sg* v1-4)
)
;; definition for method 44 of type lurkercrab
;; INFO: Return type mismatch none vs object.
(defmethod
dummy-44
lurkercrab
@ -150,13 +137,10 @@
)
)
;; definition for method 43 of type lurkercrab
;; INFO: Return type mismatch none vs object.
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code?
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code?
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code?
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code?
;; Used lq/sq
(defmethod
dummy-43
lurkercrab
@ -170,87 +154,57 @@
(go (method-of-object obj nav-enemy-die))
)
((= v1-1 'punch)
(the-as none (cond
((logtest? (-> obj nav-enemy-flags) 32)
(logclear!
(-> obj mask)
(process-mask actor-pause)
)
(go (method-of-object obj nav-enemy-die))
)
((begin
(let ((s4-0 (new 'stack-no-clear 'vector)))
(let
((f30-0
(quaternion-xz-angle (target-rot))
)
)
(set-vector!
s4-0
(* 24576.0 (sin f30-0))
0.0
(* 24576.0 (cos f30-0))
1.0
)
)
(vector+!
s4-0
(-> obj collide-info trans)
s4-0
)
(set!
(-> obj nav target-pos quad)
(-> s4-0 quad)
)
)
(go lurkercrab-pushed)
(= s5-0 (-> obj incomming-attack-id))
)
'push
)
(else
#t
)
)
(cond
((logtest? (-> obj nav-enemy-flags) 32)
(logclear! (-> obj mask) (process-mask actor-pause))
(go (method-of-object obj nav-enemy-die))
)
((begin
(let ((s4-0 (new 'stack-no-clear 'vector)))
(let ((f30-0 (quaternion-xz-angle (target-rot))))
(set-vector!
s4-0
(* 24576.0 (sin f30-0))
0.0
(* 24576.0 (cos f30-0))
1.0
)
)
(vector+! s4-0 (-> obj collide-info trans) s4-0)
(set! (-> obj nav target-pos quad) (-> s4-0 quad))
)
(go lurkercrab-pushed)
(= s5-0 (-> obj incomming-attack-id))
)
'push
)
(else
#t
)
)
)
(else
(the-as none (cond
((logtest? (-> obj nav-enemy-flags) 32)
(logclear!
(-> obj mask)
(process-mask actor-pause)
)
(go (method-of-object obj nav-enemy-die))
)
((begin
(let ((s4-1 (new 'stack-no-clear 'vector)))
(vector-!
s4-1
(-> obj collide-info trans)
(target-pos 0)
)
(vector-normalize! s4-1 24576.0)
(vector+!
s4-1
(-> obj collide-info trans)
s4-1
)
(set!
(-> obj nav target-pos quad)
(-> s4-1 quad)
)
)
(go lurkercrab-pushed)
(= s5-0 (-> obj incomming-attack-id))
)
'push
)
(else
#t
)
)
((logtest? (-> obj nav-enemy-flags) 32)
(logclear! (-> obj mask) (process-mask actor-pause))
(go (method-of-object obj nav-enemy-die))
)
((begin
(let ((s4-1 (new 'stack-no-clear 'vector)))
(vector-!
s4-1
(-> obj collide-info trans)
(target-pos 0)
)
(vector-normalize! s4-1 24576.0)
(vector+! s4-1 (-> obj collide-info trans) s4-1)
(set! (-> obj nav target-pos quad) (-> s4-1 quad))
)
(go lurkercrab-pushed)
(= s5-0 (-> obj incomming-attack-id))
)
'push
)
(else
#t
)
)
)
@ -258,11 +212,8 @@
)
)
;; failed to figure out what this is:
nav-enemy-default-event-handler
;; definition for method 37 of type lurkercrab
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-37 lurkercrab ((obj lurkercrab))
(when (-> obj orient)
(if (logtest? (nav-control-flags bit19) (-> obj nav flags))
@ -291,8 +242,6 @@ nav-enemy-default-event-handler
(none)
)
;; definition for method 38 of type lurkercrab
;; INFO: Return type mismatch int vs none.
(defmethod TODO-RENAME-38 lurkercrab ((obj lurkercrab))
(dummy-59
(-> obj collide-info)
@ -307,7 +256,6 @@ nav-enemy-default-event-handler
(none)
)
;; failed to figure out what this is:
(defstate nav-enemy-idle (lurkercrab)
:virtual #t
:event
@ -405,7 +353,6 @@ nav-enemy-default-event-handler
)
)
;; definition for function lurkercrab-invulnerable
(defbehavior lurkercrab-invulnerable lurkercrab ()
(set! (-> self nav-enemy-flags) (logand -33 (-> self nav-enemy-flags)))
(let ((v1-3 (dummy-34 (-> self collide-info) (the-as uint 2))))
@ -418,7 +365,6 @@ nav-enemy-default-event-handler
)
)
;; definition for function lurkercrab-vulnerable
(defbehavior lurkercrab-vulnerable lurkercrab ()
(logior! (-> self nav-enemy-flags) 32)
(let ((v1-3 (dummy-34 (-> self collide-info) (the-as uint 2))))
@ -431,7 +377,6 @@ nav-enemy-default-event-handler
)
)
;; failed to figure out what this is:
(defstate nav-enemy-patrol (lurkercrab)
:virtual #t
:event
@ -705,7 +650,6 @@ nav-enemy-default-event-handler
)
)
;; failed to figure out what this is:
(defstate nav-enemy-notice (lurkercrab)
:virtual #t
:event
@ -720,7 +664,6 @@ nav-enemy-default-event-handler
)
)
;; failed to figure out what this is:
(defstate nav-enemy-chase (lurkercrab)
:virtual #t
:event
@ -1017,7 +960,6 @@ nav-enemy-default-event-handler
)
)
;; failed to figure out what this is:
(defstate nav-enemy-stop-chase (lurkercrab)
:virtual #t
:event
@ -1032,7 +974,6 @@ nav-enemy-default-event-handler
)
)
;; failed to figure out what this is:
(defstate nav-enemy-stare (lurkercrab)
:virtual #t
:event
@ -1047,7 +988,6 @@ nav-enemy-default-event-handler
)
)
;; failed to figure out what this is:
(defstate nav-enemy-victory (lurkercrab)
:virtual #t
:event
@ -1057,10 +997,7 @@ nav-enemy-default-event-handler
)
:code
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(ja-channel-push! 1 22)
(let ((v1-4 (-> self skel root-channel 0)))
(set!
@ -1087,7 +1024,6 @@ nav-enemy-default-event-handler
)
)
;; failed to figure out what this is:
(defstate lurkercrab-pushed (lurkercrab)
:event
(the-as
@ -1155,7 +1091,6 @@ nav-enemy-default-event-handler
)
)
;; definition for symbol *lurkercrab-nav-enemy-info*, type nav-enemy-info
(define
*lurkercrab-nav-enemy-info*
(new 'static 'nav-enemy-info
@ -1211,7 +1146,6 @@ nav-enemy-default-event-handler
)
)
;; definition for method 11 of type lurkercrab
(defmethod copy-defaults! lurkercrab ((obj lurkercrab) (arg0 res-lump))
(let
((s4-0

View file

@ -100,26 +100,20 @@
(-> self final-pickup-spawn-point quad)
(-> v1-4 root trans quad)
)
(let ((a0-2 (-> self final-pickup-type)))
(the-as none (cond
((= a0-2 (pickup-type fuel-cell))
#f
)
(else
(set!
(-> v1-4 fact pickup-type)
(-> self final-pickup-type)
)
(set! (-> v1-4 fact pickup-amount) 1.0)
(let ((f0-1 0.0))
(set!
(-> v1-4 fact pickup-spawn-amount)
f0-1
)
f0-1
)
)
)
(case (-> self final-pickup-type)
(((pickup-type fuel-cell))
#f
)
(else
(set!
(-> v1-4 fact pickup-type)
(-> self final-pickup-type)
)
(set! (-> v1-4 fact pickup-amount) 1.0)
(let ((f0-1 0.0))
(set! (-> v1-4 fact pickup-spawn-amount) f0-1)
f0-1
)
)
)
)
@ -512,10 +506,7 @@ battlecontroller-default-event-handler
)
:code
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(if (-> self prespawn)
(battlecontroller-fill-all-spawners)
)
@ -525,10 +516,7 @@ battlecontroller-default-event-handler
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
30
)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(when
(and
*target*
@ -615,10 +603,7 @@ battlecontroller-default-event-handler
)
:code
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(battlecontroller-camera-on)
(while #t
(when
@ -626,10 +611,7 @@ battlecontroller-default-event-handler
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
30
)
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(let ((gp-0 0))
(let ((v1-8 (-> self child)))
(while v1-8

View file

@ -349,42 +349,6 @@
:flag-assert #x900000068
)
(defmethod
inspect
rigid-body-platform-constants
((obj rigid-body-platform-constants))
(format #t "[~8x] ~A~%" obj 'rigid-body-platform-constants)
(format #t "~Tdrag-factor: ~f~%" (-> obj drag-factor))
(format #t "~Tbuoyancy-factor: ~f~%" (-> obj buoyancy-factor))
(format #t "~Tmax-buoyancy-depth: (meters ~m)~%" (-> obj max-buoyancy-depth))
(format #t "~Tgravity-factor: ~f~%" (-> obj gravity-factor))
(format #t "~Tgravity: (meters ~m)~%" (-> obj gravity))
(format #t "~Tplayer-weight: (meters ~m)~%" (-> obj player-weight))
(format #t "~Tplayer-bonk-factor: ~f~%" (-> obj player-bonk-factor))
(format #t "~Tplayer-dive-factor: ~f~%" (-> obj player-dive-factor))
(format
#t
"~Tplayer-force-distance: (meters ~m)~%"
(-> obj player-force-distance)
)
(format #t "~Tplayer-force-clamp: (meters ~m)~%" (-> obj player-force-clamp))
(format #t "~Tplayer-force-timeout: ~D~%" (-> obj player-force-timeout))
(format #t "~Texplosion-force: (meters ~m)~%" (-> obj explosion-force))
(format #t "~Tlinear-damping: ~f~%" (-> obj linear-damping))
(format #t "~Tangular-damping: ~f~%" (-> obj angular-damping))
(format #t "~Tcontrol-point-count: ~D~%" (-> obj control-point-count))
(format #t "~Tmass: ~f~%" (-> obj mass))
(format #t "~Tinertial-tensor-x: (meters ~m)~%" (-> obj inertial-tensor-x))
(format #t "~Tinertial-tensor-y: (meters ~m)~%" (-> obj inertial-tensor-y))
(format #t "~Tinertial-tensor-z: (meters ~m)~%" (-> obj inertial-tensor-z))
(format #t "~Tcm-joint-x: (meters ~m)~%" (-> obj cm-joint-x))
(format #t "~Tcm-joint-y: (meters ~m)~%" (-> obj cm-joint-y))
(format #t "~Tcm-joint-z: (meters ~m)~%" (-> obj cm-joint-z))
(format #t "~Tidle-distance: (meters ~m)~%" (-> obj idle-distance))
(format #t "~Tplatform: ~A~%" (-> obj platform))
(format #t "~Tsound-name: ~A~%" (-> obj sound-name))
obj
)
(deftype rigid-body-control-point-inline-array (inline-array-class)
((data rigid-body-control-point :inline :dynamic :offset 16)
@ -394,16 +358,6 @@
:flag-assert #x900000010
)
(defmethod
inspect
rigid-body-control-point-inline-array
((obj rigid-body-control-point-inline-array))
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~Tlength: ~D~%" (-> obj length))
(format #t "~Tallocated-length: ~D~%" (-> obj allocated-length))
(format #t "~Tdata[0] @ #x~X~%" (-> obj data))
obj
)
(set! (-> rigid-body-control-point-inline-array heap-base) (the-as uint 48))
@ -696,99 +650,82 @@
(let ((v1-16 (-> arg3 param 2)))
(when (!= v1-16 (-> self player-attack-id))
(set! (-> self player-attack-id) (the-as int v1-16))
(the-as vector (cond
((= (-> arg3 param 1) 'flop)
(when
(>=
(-
(-> *display* base-frame-counter)
(-> self player-bonk-timeout)
)
(the-as int (-> self info player-force-timeout))
)
(set!
(-> self player-bonk-timeout)
(-> *display* base-frame-counter)
)
(let* ((gp-1 arg0)
(v1-24
(if
(and
(nonzero? gp-1)
(type-type? (-> gp-1 type) process-drawable)
)
gp-1
)
)
)
(when v1-24
(set!
(-> self player-impulse)
(the-as collide-shape-prim-mesh #t)
)
(set!
(-> self player-force-position quad)
(-> (the-as process-drawable v1-24) root trans quad)
)
(let
((f0-9
(fmin
(*
16.0
(-> self info player-weight)
(-> self info player-dive-factor)
)
(-> self info player-force-clamp)
)
)
)
(vector-float*!
(-> self player-force)
*y-vector*
(- f0-9)
)
)
)
)
)
)
((= (-> arg3 param 1) 'explode)
(let* ((gp-2 arg0)
(v1-34
(if
(and
(nonzero? gp-2)
(type-type? (-> gp-2 type) process-drawable)
)
gp-2
)
)
)
(when v1-34
(set!
(-> self player-impulse)
(the-as collide-shape-prim-mesh #t)
)
(set!
(-> self player-force-position quad)
(-> (the-as process-drawable v1-34) root trans quad)
)
(vector-!
(-> self player-force)
(-> self rbody position)
(-> (the-as process-drawable v1-34) root trans)
)
(vector-normalize!
(-> self player-force)
(-> self info explosion-force)
)
)
)
)
(else
(the-as vector #f)
)
)
(cond
((= (-> arg3 param 1) 'flop)
(when
(>=
(- (-> *display* base-frame-counter) (-> self player-bonk-timeout))
(the-as int (-> self info player-force-timeout))
)
(set! (-> self player-bonk-timeout) (-> *display* base-frame-counter))
(let* ((gp-1 arg0)
(v1-24
(if
(and
(nonzero? gp-1)
(type-type? (-> gp-1 type) process-drawable)
)
gp-1
)
)
)
(when v1-24
(set! (-> self player-impulse) (the-as collide-shape-prim-mesh #t))
(set!
(-> self player-force-position quad)
(-> (the-as process-drawable v1-24) root trans quad)
)
(let
((f0-9
(fmin
(*
16.0
(-> self info player-weight)
(-> self info player-dive-factor)
)
(-> self info player-force-clamp)
)
)
)
(vector-float*! (-> self player-force) *y-vector* (- f0-9))
)
)
)
)
)
((= (-> arg3 param 1) 'explode)
(let* ((gp-2 arg0)
(v1-34
(if
(and
(nonzero? gp-2)
(type-type? (-> gp-2 type) process-drawable)
)
gp-2
)
)
)
(when v1-34
(set! (-> self player-impulse) (the-as collide-shape-prim-mesh #t))
(set!
(-> self player-force-position quad)
(-> (the-as process-drawable v1-34) root trans quad)
)
(vector-!
(-> self player-force)
(-> self rbody position)
(-> (the-as process-drawable v1-34) root trans)
)
(vector-normalize!
(-> self player-force)
(-> self info explosion-force)
)
)
)
)
(else
(the-as vector #f)
)
)
)
)

View file

@ -226,20 +226,16 @@
)
((= v1-0 'attack)
(let ((v1-9 (-> arg3 param 2)))
(the-as none (cond
((!= v1-9 (-> self player-attack-id))
(set!
(-> self player-attack-id)
(the-as int v1-9)
)
(if (-> self vulnerable)
(go yakow-kicked)
)
)
(else
'push
)
)
(cond
((!= v1-9 (-> self player-attack-id))
(set! (-> self player-attack-id) (the-as int v1-9))
(if (-> self vulnerable)
(go yakow-kicked)
)
)
(else
'push
)
)
)
)
@ -701,10 +697,7 @@ yakow-default-event-handler
yakow-default-event-handler
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self travel-speed) 0.0)
(none)
)
@ -848,10 +841,7 @@ yakow-default-event-handler
yakow-default-event-handler
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self travel-speed) 0.0)
(none)
)
@ -869,10 +859,7 @@ yakow-default-event-handler
yakow-default-event-handler
:enter
(behavior ((arg0 vector))
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(logior! (-> self nav flags) (nav-control-flags bit10))
(set! (-> self nav destination-pos quad) (-> arg0 quad))
(set! (-> self rotate-speed) (-> *YAKOW-bank* walk-rotate-speed))
@ -958,10 +945,7 @@ yakow-default-event-handler
yakow-default-event-handler
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self travel-speed) 0.0)
(set! (-> self grazing) #t)
(let ((v1-3 (entity-actor-lookup (-> self entity) 'alt-actor 0))
@ -1175,10 +1159,7 @@ yakow-default-event-handler
yakow-default-event-handler
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(logior! (-> self nav flags) (nav-control-flags bit10))
(set! (-> self rotate-speed) (-> *YAKOW-bank* run-rotate-speed))
(set! (-> self turn-time) (-> *YAKOW-bank* run-turn-time))
@ -1251,10 +1232,7 @@ yakow-default-event-handler
)
:enter
(behavior ()
(set!
(-> self state-time)
(the-as seconds (-> *display* base-frame-counter))
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(if (-> self grazing)
(go yakow-graze-kicked)
)

View file

@ -8,54 +8,31 @@
(let ((v1-0 arg2))
(the-as object (cond
((= v1-0 'point-of-interest)
(the-as none (cond
((-> arg3 param 0)
(set!
(->
(the-as camera-slave self)
unknown-symbol
)
#t
)
(set!
(->
(the-as camera-slave self)
view-off
quad
)
(-> (the-as vector (-> arg3 param 0)) quad)
)
(let ((f0-0 1.0))
(set!
(->
(the-as camera-slave self)
min-z-override
)
f0-0
)
f0-0
)
)
(else
(set!
(->
(the-as camera-slave self)
unknown-symbol
)
#f
)
(let ((f0-1 0.0))
(set!
(->
(the-as camera-slave self)
min-z-override
)
f0-1
)
f0-1
)
)
)
(cond
((-> arg3 param 0)
(set! (-> (the-as camera-slave self) unknown-symbol) #t)
(set!
(-> (the-as camera-slave self) view-off quad)
(-> (the-as vector (-> arg3 param 0)) quad)
)
(let ((f0-0 1.0))
(set!
(-> (the-as camera-slave self) min-z-override)
f0-0
)
f0-0
)
)
(else
(set! (-> (the-as camera-slave self) unknown-symbol) #f)
(let ((f0-1 0.0))
(set!
(-> (the-as camera-slave self) min-z-override)
f0-1
)
f0-1
)
)
)
)
((= v1-0 'set-interpolation)

View file

@ -1314,48 +1314,31 @@
)
)
((= v1-0 'point-of-interest)
(the-as none (cond
((-> arg3 param 0)
(set!
(-> self tracking use-point-of-interest)
#t
)
(set!
(-> self tracking point-of-interest quad)
(-> (the-as vector (-> arg3 param 0)) quad)
)
(let ((f0-0 1.0))
(set!
(->
self
tracking
point-of-interest-blend
target
)
f0-0
)
f0-0
)
)
(else
(set!
(-> self tracking use-point-of-interest)
#f
)
(let ((f0-1 0.0))
(set!
(->
self
tracking
point-of-interest-blend
target
)
f0-1
)
f0-1
)
)
)
(cond
((-> arg3 param 0)
(set! (-> self tracking use-point-of-interest) #t)
(set!
(-> self tracking point-of-interest quad)
(-> (the-as vector (-> arg3 param 0)) quad)
)
(let ((f0-0 1.0))
(set!
(-> self tracking point-of-interest-blend target)
f0-0
)
f0-0
)
)
(else
(set! (-> self tracking use-point-of-interest) #f)
(let ((f0-1 0.0))
(set!
(-> self tracking point-of-interest-blend target)
f0-1
)
f0-1
)
)
)
)
((= v1-0 'teleport)

View file

@ -2641,46 +2641,37 @@
(else
(when
(zero? (logand (-> (the-as anim-test-seq-item gp-0) flags) 4))
(let ((v1-334 (-> *anim-tester* 0 item-field)))
(the-as int (cond
((= v1-334 5)
(anim-test-seq-mark-as-edited
(the-as anim-test-sequence s4-0)
)
(let
((v1-331
(logxor
(-> (the-as anim-test-seq-item gp-0) flags)
2
)
)
)
(set!
(-> (the-as anim-test-seq-item gp-0) flags)
v1-331
)
v1-331
)
)
((= v1-334 6)
(the-as int #f)
)
((= v1-334 7)
(the-as int #f)
)
((= v1-334 8)
(the-as int #f)
)
(else
(logior! (-> *anim-tester* 0 flags) 8)
(set!
(-> *anim-tester* 0 inc-delay)
(-> *DISP_LIST-bank* INC_DELAY)
)
(set! (-> *anim-tester* 0 inc-timer) 0)
0
)
)
(case (-> *anim-tester* 0 item-field)
((5)
(anim-test-seq-mark-as-edited
(the-as anim-test-sequence s4-0)
)
(let
((v1-331
(logxor (-> (the-as anim-test-seq-item gp-0) flags) 2)
)
)
(set! (-> (the-as anim-test-seq-item gp-0) flags) v1-331)
v1-331
)
)
((6)
(the-as int #f)
)
((7)
(the-as int #f)
)
((8)
(the-as int #f)
)
(else
(logior! (-> *anim-tester* 0 flags) 8)
(set!
(-> *anim-tester* 0 inc-delay)
(-> *DISP_LIST-bank* INC_DELAY)
)
(set! (-> *anim-tester* 0 inc-timer) 0)
0
)
)
)
@ -2735,69 +2726,48 @@
)
)
)
(the-as none (cond
(s2-0
(display-list-control (-> *anim-tester* 0 pick-con))
)
(else
(let*
((s4-2
(->
*display*
frames
(-> *display* on-screen)
frame
debug-buf
)
)
(gp-3 (-> s4-2 base))
)
(draw-string-xy
"-spd-blnd-1st-lst-flgs-mov-"
s4-2
(+
(-> arg1 xpos)
(*
(-> *ANIM_TESTER-bank* EDIT_STATS_X)
(-> *DISP_LIST-bank* CHAR_WIDTH)
)
)
(-> arg1 ypos)
(font-color dim-white)
(font-flags shadow kerning)
)
(let ((a3-21 (-> s4-2 base)))
(let ((v1-367 (the-as object (-> s4-2 base))))
(set!
(-> (the-as dma-packet v1-367) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set!
(-> (the-as dma-packet v1-367) vif0)
(new 'static 'vif-tag)
)
(set!
(-> (the-as dma-packet v1-367) vif1)
(new 'static 'vif-tag)
)
(set! (-> s4-2 base) (&+ (the-as pointer v1-367) 16))
)
(dma-bucket-insert-tag
(->
*display*
frames
(-> *display* on-screen)
frame
bucket-group
)
(bucket-id debug-draw0)
gp-3
(the-as (pointer dma-tag) a3-21)
)
)
)
)
)
(cond
(s2-0
(display-list-control (-> *anim-tester* 0 pick-con))
)
(else
(let*
((s4-2 (-> *display* frames (-> *display* on-screen) frame debug-buf))
(gp-3 (-> s4-2 base))
)
(draw-string-xy
"-spd-blnd-1st-lst-flgs-mov-"
s4-2
(+
(-> arg1 xpos)
(*
(-> *ANIM_TESTER-bank* EDIT_STATS_X)
(-> *DISP_LIST-bank* CHAR_WIDTH)
)
)
(-> arg1 ypos)
(font-color dim-white)
(font-flags shadow kerning)
)
(let ((a3-21 (-> s4-2 base)))
(let ((v1-367 (the-as object (-> s4-2 base))))
(set!
(-> (the-as dma-packet v1-367) dma)
(new 'static 'dma-tag :id (dma-tag-id next))
)
(set! (-> (the-as dma-packet v1-367) vif0) (new 'static 'vif-tag))
(set! (-> (the-as dma-packet v1-367) vif1) (new 'static 'vif-tag))
(set! (-> s4-2 base) (&+ (the-as pointer v1-367) 16))
)
(dma-bucket-insert-tag
(-> *display* frames (-> *display* on-screen) frame bucket-group)
(bucket-id debug-draw0)
gp-3
(the-as (pointer dma-tag) a3-21)
)
)
)
)
)
)
)
@ -3950,6 +3920,3 @@
)
)

View file

@ -743,38 +743,30 @@
)
;; definition (debug) for function get-debug-line
(defun-debug get-debug-line ()
(the-as debug-line (cond
((<
(-> *debug-lines-trk* length)
(-> *debug-lines-trk* allocated-length)
)
(+! (-> *debug-lines-trk* length) 1)
(-> *debug-lines* (+ (-> *debug-lines-trk* length) -1))
)
(else
(the-as debug-line #f)
)
)
(cond
((< (-> *debug-lines-trk* length) (-> *debug-lines-trk* allocated-length))
(+! (-> *debug-lines-trk* length) 1)
(-> *debug-lines* (+ (-> *debug-lines-trk* length) -1))
)
(else
(the-as debug-line #f)
)
)
)
;; definition (debug) for function get-debug-text-3d
(defun-debug get-debug-text-3d ()
(the-as debug-text-3d (cond
((<
(-> *debug-text-3d-trk* length)
(-> *debug-text-3d-trk* allocated-length)
)
(+! (-> *debug-text-3d-trk* length) 1)
(->
*debug-text-3ds*
(+ (-> *debug-text-3d-trk* length) -1)
)
)
(else
(the-as debug-text-3d #f)
)
)
(cond
((<
(-> *debug-text-3d-trk* length)
(-> *debug-text-3d-trk* allocated-length)
)
(+! (-> *debug-text-3d-trk* length) 1)
(-> *debug-text-3ds* (+ (-> *debug-text-3d-trk* length) -1))
)
(else
(the-as debug-text-3d #f)
)
)
)

View file

@ -130,14 +130,10 @@
;; Used lq/sq
(defmethod TODO-RENAME-9 effect-control ((obj effect-control))
(let* ((a0-1 (-> obj process skel))
(v1-3
(the-as
joint-control-channel
(if (< (-> obj channel-offset) (-> a0-1 active-channels))
(-> a0-1 root-channel (-> obj channel-offset))
(the-as joint-control-channel #f)
)
)
(v1-3 (if (< (-> obj channel-offset) (-> a0-1 active-channels))
(-> a0-1 root-channel (-> obj channel-offset))
(the-as joint-control-channel #f)
)
)
)
(cond
@ -167,13 +163,10 @@
)
)
)
(set!
(-> obj name)
(the-as (pointer res-tag) (if (>= (the-as int v1-6) 0)
(&-> (-> s5-0 extra tag) v1-6)
(the-as (pointer res-tag) #f)
)
)
(set! (-> obj name) (if (>= (the-as int v1-6) 0)
(&-> (-> s5-0 extra tag) v1-6)
(the-as (pointer res-tag) #f)
)
)
)
(if (and (-> obj name) (= (-> obj name 0 key-frame) -1000000000.0))
@ -342,10 +335,9 @@
)
)
)
(the-as int (if (zero? v0-0)
0
(the-as int (+ v0-0 1))
)
(if (zero? v0-0)
0
(the-as int (+ v0-0 1))
)
)
)

View file

@ -117,41 +117,36 @@
;; definition for method 9 of type task-control
(defmethod current-task task-control ((obj task-control))
(the-as int (cond
((= obj *null-task-control*)
(format
0
"ERROR<GMJ>: current-task received *null-task-control*~%"
)
0
)
((= (-> obj current-stage) -1)
0
)
(else
(the-as int (-> obj stage (-> obj current-stage) game-task))
)
)
(cond
((= obj *null-task-control*)
(format 0 "ERROR<GMJ>: current-task received *null-task-control*~%")
0
)
((= (-> obj current-stage) -1)
0
)
(else
(the-as int (-> obj stage (-> obj current-stage) game-task))
)
)
)
;; definition for method 10 of type task-control
(defmethod current-status task-control ((obj task-control))
(the-as int (cond
((= obj *null-task-control*)
(format
0
"ERROR<GMJ>: current-status received self of *null-task-control*~%~%"
)
0
)
((= (-> obj current-stage) -1)
0
)
(else
(the-as int (-> obj stage (-> obj current-stage) status))
)
)
(cond
((= obj *null-task-control*)
(format
0
"ERROR<GMJ>: current-status received self of *null-task-control*~%~%"
)
0
)
((= (-> obj current-stage) -1)
0
)
(else
(the-as int (-> obj stage (-> obj current-stage) status))
)
)
)

View file

@ -14,12 +14,10 @@
;; INFO: Return type mismatch merc-fragment vs none.
(defmethod login-adgifs merc-fragment ((obj merc-fragment))
(let* ((fp-data (merc-fragment-fp-data obj))
(eye-ctrl
(the-as merc-eye-ctrl (if (nonzero? (-> *merc-ctrl-header* eye-ctrl))
(-> *merc-ctrl-header* eye-ctrl)
(the-as merc-eye-ctrl #f)
)
)
(eye-ctrl (if (nonzero? (-> *merc-ctrl-header* eye-ctrl))
(-> *merc-ctrl-header* eye-ctrl)
(the-as merc-eye-ctrl #f)
)
)
(shader (the-as adgif-shader (&+ fp-data 16)))
)

View file

@ -2231,26 +2231,22 @@
((obj texture-page) (dma-buff dma-buffer) (mode int))
(local-vars (total-size int))
(let ((v1-0 mode))
(set! total-size (the-as int (cond
((= v1-0 -3)
0
)
((= v1-0 -2)
(the-as
int
(+
(-> obj segment 0 size)
(-> obj segment 1 size)
)
)
)
((= v1-0 -1)
(the-as int (-> obj size))
)
(else
(the-as int (-> obj segment mode size))
)
)
(set! total-size (cond
((= v1-0 -3)
0
)
((= v1-0 -2)
(the-as
int
(+ (-> obj segment 0 size) (-> obj segment 1 size))
)
)
((= v1-0 -1)
(the-as int (-> obj size))
)
(else
(the-as int (-> obj segment mode size))
)
)
)
)

View file

@ -144,10 +144,9 @@
(&+ *kernel-sp* -1024)
)
(let ((s5-0 (loado arg0 arg1)))
(the-as art (if (type-type? (-> (the-as art s5-0) type) art)
(login (the-as art s5-0))
(the-as art #f)
)
(if (type-type? (-> (the-as art s5-0) type) art)
(login (the-as art s5-0))
(the-as art #f)
)
)
)
@ -168,36 +167,23 @@
)
)
)
(the-as art-group (cond
((not s3-1)
(format
0
"ERROR: art-group ~A is not a valid file.~%"
arg0
)
(the-as art-group #f)
)
((not (type-type? (-> s3-1 type) art-group))
(format
0
"ERROR: art-group ~A is not a art-group.~%"
arg0
)
(the-as art-group #f)
)
((not
(file-info-correct-version?
(-> s3-1 info)
(file-kind art-group)
arg2
)
)
(the-as art-group #f)
)
(else
(login s3-1)
)
)
(cond
((not s3-1)
(format 0 "ERROR: art-group ~A is not a valid file.~%" arg0)
(the-as art-group #f)
)
((not (type-type? (-> s3-1 type) art-group))
(format 0 "ERROR: art-group ~A is not a art-group.~%" arg0)
(the-as art-group #f)
)
((not
(file-info-correct-version? (-> s3-1 info) (file-kind art-group) arg2)
)
(the-as art-group #f)
)
(else
(login s3-1)
)
)
)
)

View file

@ -523,22 +523,21 @@
)
)
)
(the-as process (cond
(s4-0
(set! (-> (the-as (pointer process) s4-0) 0 type) arg0)
(-> (the-as (pointer process) s4-0) 0)
)
(else
(format
0
"WARNING: ~A ~A could not be allocated, because ~A was empty.~%"
arg0
(ppointer->process (the-as (pointer process) s4-0))
(-> obj name)
)
(the-as process #f)
)
)
(cond
(s4-0
(set! (-> (the-as (pointer process) s4-0) 0 type) arg0)
(-> (the-as (pointer process) s4-0) 0)
)
(else
(format
0
"WARNING: ~A ~A could not be allocated, because ~A was empty.~%"
arg0
(ppointer->process (the-as (pointer process) s4-0))
(-> obj name)
)
(the-as process #f)
)
)
)
)

View file

@ -162,87 +162,57 @@
(go (method-of-object obj nav-enemy-die))
)
((= v1-1 'punch)
(the-as none (cond
((logtest? (-> obj nav-enemy-flags) 32)
(logclear!
(-> obj mask)
(process-mask actor-pause)
)
(go (method-of-object obj nav-enemy-die))
)
((begin
(let ((s4-0 (new 'stack-no-clear 'vector)))
(let
((f30-0
(quaternion-xz-angle (target-rot))
)
)
(set-vector!
s4-0
(* 24576.0 (sin f30-0))
0.0
(* 24576.0 (cos f30-0))
1.0
)
)
(vector+!
s4-0
(-> obj collide-info trans)
s4-0
)
(set!
(-> obj nav target-pos quad)
(-> s4-0 quad)
)
)
(go lurkercrab-pushed)
(= s5-0 (-> obj incomming-attack-id))
)
'push
)
(else
#t
)
)
(cond
((logtest? (-> obj nav-enemy-flags) 32)
(logclear! (-> obj mask) (process-mask actor-pause))
(go (method-of-object obj nav-enemy-die))
)
((begin
(let ((s4-0 (new 'stack-no-clear 'vector)))
(let ((f30-0 (quaternion-xz-angle (target-rot))))
(set-vector!
s4-0
(* 24576.0 (sin f30-0))
0.0
(* 24576.0 (cos f30-0))
1.0
)
)
(vector+! s4-0 (-> obj collide-info trans) s4-0)
(set! (-> obj nav target-pos quad) (-> s4-0 quad))
)
(go lurkercrab-pushed)
(= s5-0 (-> obj incomming-attack-id))
)
'push
)
(else
#t
)
)
)
(else
(the-as none (cond
((logtest? (-> obj nav-enemy-flags) 32)
(logclear!
(-> obj mask)
(process-mask actor-pause)
)
(go (method-of-object obj nav-enemy-die))
)
((begin
(let ((s4-1 (new 'stack-no-clear 'vector)))
(vector-!
s4-1
(-> obj collide-info trans)
(target-pos 0)
)
(vector-normalize! s4-1 24576.0)
(vector+!
s4-1
(-> obj collide-info trans)
s4-1
)
(set!
(-> obj nav target-pos quad)
(-> s4-1 quad)
)
)
(go lurkercrab-pushed)
(= s5-0 (-> obj incomming-attack-id))
)
'push
)
(else
#t
)
)
((logtest? (-> obj nav-enemy-flags) 32)
(logclear! (-> obj mask) (process-mask actor-pause))
(go (method-of-object obj nav-enemy-die))
)
((begin
(let ((s4-1 (new 'stack-no-clear 'vector)))
(vector-!
s4-1
(-> obj collide-info trans)
(target-pos 0)
)
(vector-normalize! s4-1 24576.0)
(vector+! s4-1 (-> obj collide-info trans) s4-1)
(set! (-> obj nav target-pos quad) (-> s4-1 quad))
)
(go lurkercrab-pushed)
(= s5-0 (-> obj incomming-attack-id))
)
'push
)
(else
#t
)
)
)

View file

@ -161,26 +161,20 @@
(-> self final-pickup-spawn-point quad)
(-> v1-4 root trans quad)
)
(let ((a0-2 (-> self final-pickup-type)))
(the-as none (cond
((= a0-2 (pickup-type fuel-cell))
#f
)
(else
(set!
(-> v1-4 fact pickup-type)
(-> self final-pickup-type)
)
(set! (-> v1-4 fact pickup-amount) 1.0)
(let ((f0-1 0.0))
(set!
(-> v1-4 fact pickup-spawn-amount)
f0-1
)
f0-1
)
)
)
(case (-> self final-pickup-type)
(((pickup-type fuel-cell))
#f
)
(else
(set!
(-> v1-4 fact pickup-type)
(-> self final-pickup-type)
)
(set! (-> v1-4 fact pickup-amount) 1.0)
(let ((f0-1 0.0))
(set! (-> v1-4 fact pickup-spawn-amount) f0-1)
f0-1
)
)
)
)

View file

@ -778,99 +778,82 @@
(let ((v1-16 (-> arg3 param 2)))
(when (!= v1-16 (-> self player-attack-id))
(set! (-> self player-attack-id) (the-as int v1-16))
(the-as vector (cond
((= (-> arg3 param 1) 'flop)
(when
(>=
(-
(-> *display* base-frame-counter)
(-> self player-bonk-timeout)
)
(the-as int (-> self info player-force-timeout))
)
(set!
(-> self player-bonk-timeout)
(-> *display* base-frame-counter)
)
(let* ((gp-1 arg0)
(v1-24
(if
(and
(nonzero? gp-1)
(type-type? (-> gp-1 type) process-drawable)
)
gp-1
)
)
)
(when v1-24
(set!
(-> self player-impulse)
(the-as collide-shape-prim-mesh #t)
)
(set!
(-> self player-force-position quad)
(-> (the-as process-drawable v1-24) root trans quad)
)
(let
((f0-9
(fmin
(*
16.0
(-> self info player-weight)
(-> self info player-dive-factor)
)
(-> self info player-force-clamp)
)
)
)
(vector-float*!
(-> self player-force)
*y-vector*
(- f0-9)
)
)
)
)
)
)
((= (-> arg3 param 1) 'explode)
(let* ((gp-2 arg0)
(v1-34
(if
(and
(nonzero? gp-2)
(type-type? (-> gp-2 type) process-drawable)
)
gp-2
)
)
)
(when v1-34
(set!
(-> self player-impulse)
(the-as collide-shape-prim-mesh #t)
)
(set!
(-> self player-force-position quad)
(-> (the-as process-drawable v1-34) root trans quad)
)
(vector-!
(-> self player-force)
(-> self rbody position)
(-> (the-as process-drawable v1-34) root trans)
)
(vector-normalize!
(-> self player-force)
(-> self info explosion-force)
)
)
)
)
(else
(the-as vector #f)
)
)
(cond
((= (-> arg3 param 1) 'flop)
(when
(>=
(- (-> *display* base-frame-counter) (-> self player-bonk-timeout))
(the-as int (-> self info player-force-timeout))
)
(set! (-> self player-bonk-timeout) (-> *display* base-frame-counter))
(let* ((gp-1 arg0)
(v1-24
(if
(and
(nonzero? gp-1)
(type-type? (-> gp-1 type) process-drawable)
)
gp-1
)
)
)
(when v1-24
(set! (-> self player-impulse) (the-as collide-shape-prim-mesh #t))
(set!
(-> self player-force-position quad)
(-> (the-as process-drawable v1-24) root trans quad)
)
(let
((f0-9
(fmin
(*
16.0
(-> self info player-weight)
(-> self info player-dive-factor)
)
(-> self info player-force-clamp)
)
)
)
(vector-float*! (-> self player-force) *y-vector* (- f0-9))
)
)
)
)
)
((= (-> arg3 param 1) 'explode)
(let* ((gp-2 arg0)
(v1-34
(if
(and
(nonzero? gp-2)
(type-type? (-> gp-2 type) process-drawable)
)
gp-2
)
)
)
(when v1-34
(set! (-> self player-impulse) (the-as collide-shape-prim-mesh #t))
(set!
(-> self player-force-position quad)
(-> (the-as process-drawable v1-34) root trans quad)
)
(vector-!
(-> self player-force)
(-> self rbody position)
(-> (the-as process-drawable v1-34) root trans)
)
(vector-normalize!
(-> self player-force)
(-> self info explosion-force)
)
)
)
)
(else
(the-as vector #f)
)
)
)
)

View file

@ -278,20 +278,16 @@
)
((= v1-0 'attack)
(let ((v1-9 (-> arg3 param 2)))
(the-as none (cond
((!= v1-9 (-> self player-attack-id))
(set!
(-> self player-attack-id)
(the-as int v1-9)
)
(if (-> self vulnerable)
(go yakow-kicked)
)
)
(else
'push
)
)
(cond
((!= v1-9 (-> self player-attack-id))
(set! (-> self player-attack-id) (the-as int v1-9))
(if (-> self vulnerable)
(go yakow-kicked)
)
)
(else
'push
)
)
)
)

View file

@ -1064,22 +1064,21 @@ TEST_F(FormRegressionTest, ExprMethod14DeadPool) {
" )\n"
" )\n"
" )\n"
" (the-as process (cond\n"
" (s4-0\n"
" (set! (-> (the-as (pointer process) s4-0) 0 type) arg1)\n"
" (-> (the-as (pointer process) s4-0) 0)\n"
" )\n"
" (else\n"
" (format\n"
" 0\n"
" \"WARNING: ~A ~A could not be allocated, because ~A was empty.~%\"\n"
" arg1\n"
" (ppointer->process (the-as (pointer process) s4-0))\n"
" (-> arg0 name)\n"
" )\n"
" (the-as process #f)\n"
" )\n"
" )\n"
" (cond\n"
" (s4-0\n"
" (set! (-> (the-as (pointer process) s4-0) 0 type) arg1)\n"
" (-> (the-as (pointer process) s4-0) 0)\n"
" )\n"
" (else\n"
" (format\n"
" 0\n"
" \"WARNING: ~A ~A could not be allocated, because ~A was empty.~%\"\n"
" arg1\n"
" (ppointer->process (the-as (pointer process) s4-0))\n"
" (-> arg0 name)\n"
" )\n"
" (the-as process #f)\n"
" )\n"
" )\n"
" )";