[decompiler] fix in-place ops not getting detected sometimes (#2810)

This commit is contained in:
ManDude
2023-07-08 07:34:38 +01:00
committed by GitHub
parent 31cc69d7f6
commit da3caf7b28
680 changed files with 3795 additions and 4211 deletions
+18 -12
View File
@@ -2670,16 +2670,16 @@ void SetFormFormElement::push_to_stack(const Env& env, FormPool& pool, FormStack
typedef struct {
FixedOperatorKind kind;
FixedOperatorKind inplace_kind;
int inplace_arg;
std::vector<int> inplace_arg;
} InplaceOpInfo;
const static InplaceOpInfo in_place_ops[] = {
{FixedOperatorKind::ADDITION, FixedOperatorKind::ADDITION_IN_PLACE, 0},
{FixedOperatorKind::ADDITION_PTR, FixedOperatorKind::ADDITION_PTR_IN_PLACE, 0},
{FixedOperatorKind::LOGAND, FixedOperatorKind::LOGAND_IN_PLACE, 0},
{FixedOperatorKind::LOGIOR, FixedOperatorKind::LOGIOR_IN_PLACE, 0},
{FixedOperatorKind::LOGCLEAR, FixedOperatorKind::LOGCLEAR_IN_PLACE, 0},
{FixedOperatorKind::LOGXOR, FixedOperatorKind::LOGXOR_IN_PLACE, 0}};
{FixedOperatorKind::ADDITION, FixedOperatorKind::ADDITION_IN_PLACE, {0, 1}},
{FixedOperatorKind::ADDITION_PTR, FixedOperatorKind::ADDITION_PTR_IN_PLACE, {0, 1}},
{FixedOperatorKind::LOGAND, FixedOperatorKind::LOGAND_IN_PLACE, {0, 1}},
{FixedOperatorKind::LOGIOR, FixedOperatorKind::LOGIOR_IN_PLACE, {0, 1}},
{FixedOperatorKind::LOGCLEAR, FixedOperatorKind::LOGCLEAR_IN_PLACE, {0, 1}},
{FixedOperatorKind::LOGXOR, FixedOperatorKind::LOGXOR_IN_PLACE, {0, 1}}};
typedef struct {
std::string orig_name;
@@ -2724,12 +2724,18 @@ void SetFormFormElement::push_to_stack(const Env& env, FormPool& pool, FormStack
for (const auto& op_info : in_place_ops) {
if (src_as_generic->op().is_fixed(op_info.kind)) {
auto dst_form = m_dst->to_form(env);
auto add_form_0 = src_as_generic->elts().at(op_info.inplace_arg)->to_form(env);
if (dst_form == add_form_0) {
src_as_generic->op() = GenericOperator::make_fixed(op_info.inplace_kind);
stack.push_form_element(src_as_generic, true);
return;
for (int inplace_arg : op_info.inplace_arg) {
auto add_form_0 = src_as_generic->elts().at(inplace_arg)->to_form(env);
if (dst_form == add_form_0) {
if (inplace_arg != 0) {
std::swap(src_as_generic->elts().at(0), src_as_generic->elts().at(1));
}
src_as_generic->op() = GenericOperator::make_fixed(op_info.inplace_kind);
stack.push_form_element(src_as_generic, true);
return;
}
}
}
}
+8
View File
@@ -6747,6 +6747,13 @@
(progress-on #x10e)
(progress-off #x10f)
(progress-move-dpad #x110)
(text-x111 #x111)
(text-x112 #x112)
(text-x113 #x113)
(text-x114 #x114)
(text-x115 #x115)
(text-x116 #x116)
(text-x117 #x117)
(progress-aspect-ratio #x118)
(progress-progressive-scan #x119)
(progress-video-mode #x11a)
@@ -7219,6 +7226,7 @@
(scene-nest-boss-intro #x306)
(scene-intro #x307)
(scene-outro #x308)
(text-x30b #x30b)
(scene-subtitles-hint #x30c)
(scene-subtitles-enabled #x30d)
(scene-subtitles-disabled #x30e)
@@ -387,6 +387,15 @@
["L1025", "uint64", true],
["L1041", "uint64", true]
],
"progress-static": [
["L343", "(array text-id)"],
["L344", "(array text-id)"]
],
"demo-obs": [
["L296", "(array text-id)"],
["L297", "(array text-id)"],
["L298", "(array text-id)"]
],
"crates": [
["L213", "attack-info"],
["L214", "attack-info"],
+2 -2
View File
@@ -45,8 +45,8 @@
["loader-h", "loader-h", 3, ["GAME", "ENGINE"], "engine/load"],
["texture-h", "texture-h", 3, ["GAME", "ENGINE"], "engine/gfx"],
["level-h", "level-h", 3, ["GAME", "ENGINE"], "engine/level"],
["math-camera-h", "math-camera-h", 3, ["GAME", "ENGINE"], "engine/camera"],
["math-camera", "math-camera", 3, ["GAME", "ENGINE"], "engine/camera"],
["math-camera-h", "math-camera-h", 3, ["GAME", "ENGINE"], "engine/gfx"],
["math-camera", "math-camera", 3, ["GAME", "ENGINE"], "engine/gfx"],
["font-h", "font-h", 3, ["GAME", "ENGINE"], "engine/gfx"],
["decomp-h", "decomp-h", 3, ["GAME", "ENGINE"], "engine/gfx"],
["display", "display", 3, ["GAME", "ENGINE"], "engine/gfx/hw"],
+1 -1
View File
@@ -294,7 +294,7 @@
(let ((f28-1 (acos (vector-dot (the-as vector (-> s1-0 vector)) (-> s1-0 vector 1)))))
(cond
((logtest? (-> *camera* master-options) 8)
(set! (-> *camera* master-options) (logand -25 (-> *camera* master-options)))
(logand! (-> *camera* master-options) -25)
(when (and (< 8192.0 f28-1) (logtest? (-> *camera* master-options) 2))
(vector-! (the-as vector (-> s1-0 vector)) (-> *camera* tpos-curr) s2-0)
(vector-! (-> s1-0 vector 1) s0-0 s2-0)
+211 -245
View File
@@ -203,7 +203,7 @@
(!= (-> self drawable-target) #f)
(not (handle->process (-> self drawable-target)))
)
(set! (-> self master-options) (logand -3 (-> self master-options)))
(logand! (-> self master-options) -3)
(set! (-> self drawable-target) (the-as handle #f))
)
((and (logtest? (-> self master-options) 2) (handle->process (-> self drawable-target)))
@@ -343,7 +343,7 @@
(-> self ease-to)
(parameter-ease-sin-clamp (-> self ease-t))
)
(set! (-> self master-options) (logand -33 (-> self master-options)))
(logand! (-> self master-options) -33)
)
(else
(vector-lerp!
@@ -561,7 +561,7 @@
(defbehavior master-unset-region camera-master ()
(when (-> self cam-entity)
(set! (-> self cam-entity) #f)
(set! (-> self master-options) (logand -65 (-> self master-options)))
(logand! (-> self master-options) -65)
(set! (-> self stringMinHeight) (-> *CAMERA-bank* default-string-min-y))
(set! (-> self stringMaxHeight) (-> *CAMERA-bank* default-string-max-y))
(set! (-> self stringMinLength) (-> *CAMERA-bank* default-string-min-z))
@@ -830,49 +830,44 @@
)
(defstate cam-master-active (camera-master)
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(local-vars (v0-0 object))
(rlet ((vf0 :class vf))
(init-vf0-vector)
(let ((v1-0 arg2))
(let ((v1-0 event-type))
(cond
((= v1-0 'dist-from-interp-src)
(set! v0-0 (the-as object (cond
((not *camera-combiner*)
409600.0
)
((= (-> *camera-combiner* interp-val) 0.0)
0.0
)
(else
(-> *camera-combiner* dist-from-src)
)
)
)
(set! v0-0 (cond
((not *camera-combiner*)
409600.0
)
((= (-> *camera-combiner* interp-val) 0.0)
0.0
)
(else
(-> *camera-combiner* dist-from-src)
)
)
)
)
((= v1-0 'dist-from-interp-dest)
(set! v0-0 (the-as object (cond
((not *camera-combiner*)
0.0
)
((= (-> *camera-combiner* interp-val) 0.0)
409600.0
)
(else
(-> *camera-combiner* dist-from-dest)
)
)
)
(set! v0-0 (cond
((not *camera-combiner*)
0.0
)
((= (-> *camera-combiner* interp-val) 0.0)
409600.0
)
(else
(-> *camera-combiner* dist-from-dest)
)
)
)
)
((= v1-0 'level-deactivate)
(set! v0-0 (the-as
object
(if (and (-> self cam-entity) (= (-> (get-level (-> self cam-entity)) name) (-> arg3 param 0)))
(master-unset-region)
)
)
(set! v0-0 (if (and (-> self cam-entity) (= (-> (get-level (-> self cam-entity)) name) (-> event param 0)))
(master-unset-region)
)
)
)
((= v1-0 'clear-entity)
@@ -884,25 +879,23 @@
)
((= v1-0 'force-blend)
(set! (-> self force-blend) (the-as uint 3))
(set! v0-0 (-> arg3 param 0))
(set! v0-0 (-> event param 0))
(set! (-> self force-blend-time) (the-as uint v0-0))
)
((= v1-0 'teleport-to-transformq)
(set! v0-0
(the-as object (when (> arg1 0)
(let ((gp-1 (the-as object (-> arg3 param 0))))
(send-event self 'change-state cam-free-floating 0)
(dotimes (s5-1 (-> self num-slaves))
(set! (-> self slave s5-1 0 trans quad) (-> (the-as matrix gp-1) vector 0 quad))
(quaternion->matrix
(the-as matrix (-> self slave s5-1 0 tracking))
(the-as quaternion (+ (the-as uint gp-1) 16))
)
)
)
(send-event self 'teleport)
)
)
(set! v0-0 (when (> arg1 0)
(let ((gp-1 (the-as object (-> event param 0))))
(send-event self 'change-state cam-free-floating 0)
(dotimes (s5-1 (-> self num-slaves))
(set! (-> self slave s5-1 0 trans quad) (-> (the-as matrix gp-1) vector 0 quad))
(quaternion->matrix
(the-as matrix (-> self slave s5-1 0 tracking))
(the-as quaternion (+ (the-as uint gp-1) 16))
)
)
)
(send-event self 'teleport)
)
)
)
((= v1-0 'teleport-to-other-start-string)
@@ -925,68 +918,64 @@
)
((= v1-0 'teleport-to-vector-start-string)
(set! v0-0
(the-as
object
(when (> arg1 0)
(let ((v1-43 (the-as object (-> arg3 param 0)))
(gp-3 (new 'stack-no-clear 'vector))
)
(set! (-> *camera-combiner* trans quad) (-> (the-as vector v1-43) quad))
(vector-! gp-3 (-> self tpos-curr-adj) (the-as vector v1-43))
(vector-normalize! gp-3 1.0)
(forward-down->inv-matrix (-> *camera-combiner* inv-camera-rot) gp-3 (new 'static 'vector :y -1.0))
)
(send-event self 'change-state cam-free-floating 0)
(send-event self 'change-state *camera-base-mode* 0)
(when (> arg1 0)
(let ((v1-43 (the-as object (-> event param 0)))
(gp-3 (new 'stack-no-clear 'vector))
)
(set! (-> *camera-combiner* trans quad) (-> (the-as vector v1-43) quad))
(vector-! gp-3 (-> self tpos-curr-adj) (the-as vector v1-43))
(vector-normalize! gp-3 1.0)
(forward-down->inv-matrix (-> *camera-combiner* inv-camera-rot) gp-3 (new 'static 'vector :y -1.0))
)
(send-event self 'change-state cam-free-floating 0)
(send-event self 'change-state *camera-base-mode* 0)
)
)
)
((= v1-0 'change-pov)
(let ((v1-52 (the-as object (-> arg3 param 0))))
(let ((v1-52 (the-as object (-> event param 0))))
(cond
((< arg1 2)
(set! (-> self pov-bone) 0)
0
)
(else
(set! (-> self pov-bone) (the-as int (-> arg3 param 1)))
(set! (-> self pov-bone) (the-as int (-> event param 1)))
)
)
(set! v0-0 (the-as object (cond
((not (the-as process v1-52))
(set! (-> self pov-handle) (the-as handle #f))
#f
)
(else
(set! v0-0 (process->handle (the-as process v1-52)))
(set! (-> self pov-handle) (the-as handle v0-0))
v0-0
)
)
)
(set! v0-0 (cond
((not (the-as process v1-52))
(set! (-> self pov-handle) (the-as handle #f))
#f
)
(else
(set! v0-0 (process->handle (the-as process v1-52)))
(set! (-> self pov-handle) (the-as handle v0-0))
v0-0
)
)
)
)
)
((= v1-0 'change-target-bone)
(set! v0-0 (-> arg3 param 0))
(set! v0-0 (-> event param 0))
(set! (-> self which-bone) (the-as int v0-0))
)
((= v1-0 'change-target)
(let ((v1-56 (the-as object (-> arg3 param 0))))
(let ((v1-56 (the-as object (-> event param 0))))
(cond
((< arg1 2)
(set! (-> self which-bone) 0)
0
)
(else
(set! (-> self which-bone) (the-as int (-> arg3 param 1)))
(set! (-> self which-bone) (the-as int (-> event param 1)))
)
)
(cond
((not (the-as process v1-56))
(set! (-> self drawable-target) (the-as handle #f))
(set! (-> self master-options) (logand -3 (-> self master-options)))
(logand! (-> self master-options) -3)
)
((= (the-as process v1-56) *target*)
(set! (-> self drawable-target) (the-as handle #f))
@@ -1012,18 +1001,17 @@
(set! v0-0 (matrix-identity! (the-as matrix (-> *camera-combiner* tracking))))
)
((= v1-0 'set-fov)
(set! (-> *camera-combiner* fov) (the-as float (-> arg3 param 0)))
(set! (-> *camera-combiner* fov) (the-as float (-> event param 0)))
(dotimes (v1-86 (-> self num-slaves))
(set! (-> self slave v1-86 0 fov) (the-as float (-> arg3 param 0)))
(set! (-> self slave v1-86 0 fov) (the-as float (-> event param 0)))
)
(set! v0-0 #f)
)
((= v1-0 'query-fov)
(set! v0-0 (the-as object (if (> (-> self num-slaves) 0)
(-> self slave 0 0 fov)
11650.845
)
)
(set! v0-0 (if (> (-> self num-slaves) 0)
(-> self slave 0 0 fov)
11650.845
)
)
)
((= v1-0 'intro-done?)
@@ -1036,22 +1024,19 @@
)
((= v1-0 'query-state)
(let ((v1-95 (+ (-> self num-slaves) -1)))
(while (not (or (< v1-95 0) (= (-> self slave v1-95 0 next-state) (-> arg3 param 0))))
(while (not (or (< v1-95 0) (= (-> self slave v1-95 0 next-state) (-> event param 0))))
(+! v1-95 -1)
)
(set! v0-0 (the-as object (and (>= v1-95 0) (= (-> self slave v1-95 0 next-state) (-> arg3 param 0)))))
(set! v0-0 (and (>= v1-95 0) (= (-> self slave v1-95 0 next-state) (-> event param 0))))
)
)
((= v1-0 'change-to-entity-by-name)
(let ((a0-75 (entity-by-name (the-as string (-> arg3 param 0)))))
(let ((a0-75 (entity-by-name (the-as string (-> event param 0)))))
(set! v0-0
(the-as
object
(if a0-75
(master-switch-to-entity a0-75)
(format 0 "ERROR <GMJ>: camera entity '~S' not found for change-to-entity-by-name~%" (-> arg3 param 0))
)
)
(if a0-75
(master-switch-to-entity a0-75)
(format 0 "ERROR <GMJ>: camera entity '~S' not found for change-to-entity-by-name~%" (-> event param 0))
)
)
)
)
@@ -1064,24 +1049,24 @@
(s4-1 (the-as (pointer camera-slave) #f))
)
(let ((t9-22 type-type?)
(v1-101 (-> arg3 param 0))
(v1-101 (-> event param 0))
)
(cond
((t9-22 (rtype-of v1-101) state)
(set! s1-0 (-> arg3 param 0))
(set! s1-0 (-> event param 0))
)
((let ((t9-23 type-type?)
(v1-103 (-> arg3 param 0))
(v1-103 (-> event param 0))
)
(t9-23 (rtype-of v1-103) camera-slave)
)
(set! s2-0 (process->ppointer (the-as process (-> arg3 param 0))))
(set! s2-0 (process->ppointer (the-as process (-> event param 0))))
)
(else
(let ((t9-24 format)
(a0-82 0)
(a1-25 "ERROR <GMJ>: invalid type '~A' to *camera* change-state~%")
(v1-106 (-> arg3 param 0))
(v1-106 (-> event param 0))
)
(t9-24 a0-82 a1-25 (rtype-of v1-106))
)
@@ -1093,7 +1078,7 @@
)
(set! (-> self view-off-param-save) (-> self slave 0 0 view-off-param))
)
(set! (-> self changer) (the-as uint (process->ppointer arg0)))
(set! (-> self changer) (the-as uint (process->ppointer proc)))
(cond
((<= (-> self num-slaves) 0)
(cond
@@ -1142,7 +1127,7 @@
)
)
)
((zero? (-> arg3 param 1))
((zero? (-> event param 1))
(if *math-camera*
(set! (-> *math-camera* reset) 1)
)
@@ -1214,7 +1199,7 @@
)
(when (< 0.0 (-> self slave 0 0 intro-t-step))
(set! (-> self outro-t) (-> self slave 0 0 intro-t))
(set! (-> self outro-t-step) (/ -5.0 (the float (-> arg3 param 1))))
(set! (-> self outro-t-step) (/ -5.0 (the float (-> event param 1))))
(set! (-> self outro-exit-value) (-> self slave 0 0 outro-exit-value))
(curve-copy! (-> self outro-curve) (-> self slave 0 0 intro-curve))
)
@@ -1259,7 +1244,7 @@
)
)
(when s2-0
(send-event *camera-combiner* 'set-interpolation (-> arg3 param 1))
(send-event *camera-combiner* 'set-interpolation (-> event param 1))
(set! s4-1 (-> self slave 0))
(cond
((zero? (-> self slave 0 0 blend-from-type))
@@ -1361,45 +1346,40 @@
(set! v0-0 #t)
)
((= v1-0 'slave-activated)
(set! v0-0 (the-as
object
(cond
((< (-> self num-slaves) 2)
(set! (-> self slave (-> self num-slaves))
(the-as (pointer camera-slave) (process->ppointer (the-as process (-> arg3 param 0))))
)
(+! (-> self num-slaves) 1)
(logior! (-> self master-options) 8)
(let ((f0-15 (-> (the-as projectile (-> arg3 param 0)) max-turn)))
(set! (-> *camera-combiner* tracking tilt-adjust target) f0-15)
f0-15
)
)
(else
(format 0 "ERROR: ERROR <GMJ>: Exceeded maximum number of camera slaves!~%")
(the-as object (deactivate (the-as camera-slave (-> arg3 param 0))))
)
(set! v0-0
(cond
((< (-> self num-slaves) 2)
(set! (-> self slave (-> self num-slaves))
(the-as (pointer camera-slave) (process->ppointer (the-as process (-> event param 0))))
)
)
(+! (-> self num-slaves) 1)
(logior! (-> self master-options) 8)
(set! (-> *camera-combiner* tracking tilt-adjust target) (-> (the-as projectile (-> event param 0)) max-turn))
)
(else
(format 0 "ERROR: ERROR <GMJ>: Exceeded maximum number of camera slaves!~%")
(the-as object (deactivate (the-as camera-slave (-> event param 0))))
)
)
)
)
((= v1-0 'ease-in)
(cond
((< arg1 1)
(set! (-> self ease-t) 0.0)
(set! (-> self master-options) (logand -33 (-> self master-options)))
(logand! (-> self master-options) -33)
)
((< arg1 2)
(if (< (the-as float (-> arg3 param 0)) (-> self ease-t))
(set! (-> self ease-t) (the-as float (-> arg3 param 0)))
(if (< (the-as float (-> event param 0)) (-> self ease-t))
(set! (-> self ease-t) (the-as float (-> event param 0)))
)
(set! (-> self master-options) (logand -33 (-> self master-options)))
(logand! (-> self master-options) -33)
)
(else
(if (< (the-as float (-> arg3 param 0)) (-> self ease-t))
(set! (-> self ease-t) (the-as float (-> arg3 param 0)))
(if (< (the-as float (-> event param 0)) (-> self ease-t))
(set! (-> self ease-t) (the-as float (-> event param 0)))
)
(set! (-> self ease-to quad) (-> (the-as vector (-> arg3 param 1)) quad))
(set! (-> self ease-to quad) (-> (the-as vector (-> event param 1)) quad))
(logior! (-> self master-options) 32)
)
)
@@ -1414,11 +1394,10 @@
)
)
((= v1-0 'reset-follow)
(set! v0-0 (the-as object (if (handle->process (-> self drawable-target))
(reset-drawable-follow)
(reset-follow)
)
)
(set! v0-0 (if (handle->process (-> self drawable-target))
(reset-drawable-follow)
(reset-follow)
)
)
)
((= v1-0 'teleport)
@@ -1431,141 +1410,128 @@
)
)
(countdown (gp-6 (-> self num-slaves))
(send-event (ppointer->process (-> self slave gp-6)) arg2)
(send-event (ppointer->process (-> self slave gp-6)) event-type)
)
(let ((a1-54 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-54 from) self)
(set! (-> a1-54 num-params) 0)
(set! (-> a1-54 message) arg2)
(set! (-> a1-54 message) event-type)
(set! v0-0 (send-event-function *camera-combiner* a1-54))
)
)
((= v1-0 'toggle-slave-option)
(logxor! (-> self slave-options) (-> arg3 param 0))
(logxor! (-> self slave-options) (-> event param 0))
(let ((a0-193 (-> self slave 0))
(v1-360 (-> self slave 1))
)
(if a0-193
(logxor! (-> a0-193 0 options) (-> arg3 param 0))
(logxor! (-> a0-193 0 options) (-> event param 0))
)
(set! v0-0 (the-as object (when v1-360
(set! v0-0 (logxor (-> v1-360 0 options) (-> arg3 param 0)))
(set! (-> v1-360 0 options) (the-as uint v0-0))
v0-0
)
)
(set! v0-0 (when v1-360
(set! v0-0 (logxor (-> v1-360 0 options) (-> event param 0)))
(set! (-> v1-360 0 options) (the-as uint v0-0))
v0-0
)
)
)
)
(else
(set! v0-0
(the-as
object
(cond
((= v1-0 'slave-option?)
(the-as object (if (nonzero? (-> self num-slaves))
(logtest? (-> self slave (+ (-> self num-slaves) -1) 0 options) (-> arg3 param 0))
)
)
)
((= v1-0 'set-slave-option)
(the-as object (when (nonzero? (-> self num-slaves))
(set! v0-0 (logior (-> self slave (+ (-> self num-slaves) -1) 0 options) (-> arg3 param 0)))
(set! (-> self slave (+ (-> self num-slaves) -1) 0 options) (the-as uint v0-0))
v0-0
)
)
)
((= v1-0 'clear-slave-option)
(the-as
object
(when (nonzero? (-> self num-slaves))
(set! v0-0 (logclear (-> self slave (+ (-> self num-slaves) -1) 0 options) (-> arg3 param 0)))
(set! (-> self slave (+ (-> self num-slaves) -1) 0 options) (the-as uint v0-0))
v0-0
)
(cond
((= v1-0 'slave-option?)
(if (nonzero? (-> self num-slaves))
(logtest? (-> self slave (+ (-> self num-slaves) -1) 0 options) (-> event param 0))
)
)
((= v1-0 'no-follow)
(when (nonzero? (-> self num-slaves))
(set! (-> self slave (+ (-> self num-slaves) -1) 0 tracking no-follow) #t)
(vector-reset! (-> self slave (+ (-> self num-slaves) -1) 0 tracking follow-off))
)
(set! (-> *camera-combiner* tracking no-follow) #t)
(set! v0-0 (-> *camera-combiner* tracking follow-off))
(.svf (&-> (the-as vector v0-0) quad) vf0)
)
((= v1-0 'set-slave-option)
(when (nonzero? (-> self num-slaves))
(set! v0-0 (logior (-> self slave (+ (-> self num-slaves) -1) 0 options) (-> event param 0)))
(set! (-> self slave (+ (-> self num-slaves) -1) 0 options) (the-as uint v0-0))
v0-0
)
((= v1-0 'yes-follow)
(if (nonzero? (-> self num-slaves))
(set! (-> self slave (+ (-> self num-slaves) -1) 0 tracking no-follow) #f)
)
(set! (-> *camera-combiner* tracking no-follow) #f)
#f
)
((= v1-0 'clear-slave-option)
(when (nonzero? (-> self num-slaves))
(set! v0-0 (logclear (-> self slave (+ (-> self num-slaves) -1) 0 options) (-> event param 0)))
(set! (-> self slave (+ (-> self num-slaves) -1) 0 options) (the-as uint v0-0))
v0-0
)
((= v1-0 'blend-from-as-fixed)
(the-as object (when (nonzero? (-> self num-slaves))
(set! (-> self slave (+ (-> self num-slaves) -1) 0 blend-from-type) (the-as uint 0))
0
)
)
)
((= v1-0 'no-follow)
(when (nonzero? (-> self num-slaves))
(set! (-> self slave (+ (-> self num-slaves) -1) 0 tracking no-follow) #t)
(vector-reset! (-> self slave (+ (-> self num-slaves) -1) 0 tracking follow-off))
)
((= v1-0 'point-of-interest)
(when (nonzero? (-> self num-slaves))
(let ((a1-60 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-60 from) arg0)
(set! (-> a1-60 num-params) arg1)
(set! (-> a1-60 message) arg2)
(set! (-> a1-60 param 0) (-> arg3 param 0))
(set! (-> a1-60 param 1) (-> arg3 param 1))
(set! (-> a1-60 param 2) (-> arg3 param 2))
(set! (-> a1-60 param 3) (-> arg3 param 3))
(set! (-> a1-60 param 4) (-> arg3 param 4))
(set! (-> a1-60 param 5) (-> arg3 param 5))
(set! (-> a1-60 param 6) (-> arg3 param 6))
(send-event-function (ppointer->process (-> self slave (+ (-> self num-slaves) -1))) a1-60)
)
(set! (-> *camera-combiner* tracking no-follow) #t)
(set! v0-0 (-> *camera-combiner* tracking follow-off))
(.svf (&-> (the-as vector v0-0) quad) vf0)
v0-0
)
((= v1-0 'yes-follow)
(if (nonzero? (-> self num-slaves))
(set! (-> self slave (+ (-> self num-slaves) -1) 0 tracking no-follow) #f)
)
(let ((a1-61 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-61 from) arg0)
(set! (-> a1-61 num-params) arg1)
(set! (-> a1-61 message) arg2)
(set! (-> a1-61 param 0) (-> arg3 param 0))
(set! (-> a1-61 param 1) (-> arg3 param 1))
(set! (-> a1-61 param 2) (-> arg3 param 2))
(set! (-> a1-61 param 3) (-> arg3 param 3))
(set! (-> a1-61 param 4) (-> arg3 param 4))
(set! (-> a1-61 param 5) (-> arg3 param 5))
(set! (-> a1-61 param 6) (-> arg3 param 6))
(send-event-function *camera-combiner* a1-61)
(set! (-> *camera-combiner* tracking no-follow) #f)
#f
)
((= v1-0 'blend-from-as-fixed)
(when (nonzero? (-> self num-slaves))
(set! (-> self slave (+ (-> self num-slaves) -1) 0 blend-from-type) (the-as uint 0))
0
)
)
((= v1-0 'point-of-interest)
(when (nonzero? (-> self num-slaves))
(let ((a1-60 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-60 from) proc)
(set! (-> a1-60 num-params) arg1)
(set! (-> a1-60 message) event-type)
(set! (-> a1-60 param 0) (-> event param 0))
(set! (-> a1-60 param 1) (-> event param 1))
(set! (-> a1-60 param 2) (-> event param 2))
(set! (-> a1-60 param 3) (-> event param 3))
(set! (-> a1-60 param 4) (-> event param 4))
(set! (-> a1-60 param 5) (-> event param 5))
(set! (-> a1-60 param 6) (-> event param 6))
(send-event-function (ppointer->process (-> self slave (+ (-> self num-slaves) -1))) a1-60)
)
)
((= v1-0 'part-water-drip)
(set! (-> self water-drip-time) (-> *display* base-frame-counter))
(set! (-> self water-drip-mult) (the-as float (-> arg3 param 0)))
(let ((f0-24 (the-as float (-> arg3 param 1))))
(set! (-> self water-drip-speed) f0-24)
f0-24
)
(let ((a1-61 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-61 from) proc)
(set! (-> a1-61 num-params) arg1)
(set! (-> a1-61 message) event-type)
(set! (-> a1-61 param 0) (-> event param 0))
(set! (-> a1-61 param 1) (-> event param 1))
(set! (-> a1-61 param 2) (-> event param 2))
(set! (-> a1-61 param 3) (-> event param 3))
(set! (-> a1-61 param 4) (-> event param 4))
(set! (-> a1-61 param 5) (-> event param 5))
(set! (-> a1-61 param 6) (-> event param 6))
(send-event-function *camera-combiner* a1-61)
)
(else
(countdown (s3-1 (-> self num-slaves))
(let ((a1-62 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-62 from) arg0)
(set! (-> a1-62 num-params) arg1)
(set! (-> a1-62 message) arg2)
(set! (-> a1-62 param 0) (-> arg3 param 0))
(set! (-> a1-62 param 1) (-> arg3 param 1))
(set! (-> a1-62 param 2) (-> arg3 param 2))
(set! (-> a1-62 param 3) (-> arg3 param 3))
(set! (-> a1-62 param 4) (-> arg3 param 4))
(set! (-> a1-62 param 5) (-> arg3 param 5))
(set! (-> a1-62 param 6) (-> arg3 param 6))
(send-event-function (ppointer->process (-> self slave s3-1)) a1-62)
)
)
((= v1-0 'part-water-drip)
(set! (-> self water-drip-time) (-> *display* base-frame-counter))
(set! (-> self water-drip-mult) (the-as float (-> event param 0)))
(set! (-> self water-drip-speed) (the-as float (-> event param 1)))
)
(else
(countdown (s3-1 (-> self num-slaves))
(let ((a1-62 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-62 from) proc)
(set! (-> a1-62 num-params) arg1)
(set! (-> a1-62 message) event-type)
(set! (-> a1-62 param 0) (-> event param 0))
(set! (-> a1-62 param 1) (-> event param 1))
(set! (-> a1-62 param 2) (-> event param 2))
(set! (-> a1-62 param 3) (-> event param 3))
(set! (-> a1-62 param 4) (-> event param 4))
(set! (-> a1-62 param 5) (-> event param 5))
(set! (-> a1-62 param 6) (-> event param 6))
(send-event-function (ppointer->process (-> self slave s3-1)) a1-62)
)
#f
)
#f
)
)
)
+3 -3
View File
@@ -2285,7 +2285,7 @@
;; main third-person camera
(defbehavior cam-string-joystick camera-slave ()
(set! (-> self options) (logand -257 (-> self options)))
(logand! (-> self options) -257)
(let ((f28-0 (cam-dist-analog-input (the-as int (-> *cpad-list* cpads 0 righty)) (the-as float 0.05)))
(f0-2 (/ (- (vector-length (-> self view-flat)) (-> self string-min-val z))
(- (-> self string-max-val z) (-> self string-min-val z))
@@ -2604,7 +2604,7 @@
)
(cond
((zero? gp-2)
(set! (-> self options) (logand -1025 (-> self options)))
(logand! (-> self options) -1025)
(if *display-cam-los-debug*
(format *stdcon* "not blocked~%")
)
@@ -2674,7 +2674,7 @@
(cam-collision-record-save (-> self string-trans) a1-1 -2 'jump self)
)
)
(set! (-> self options) (logand -4097 (-> self options)))
(logand! (-> self options) -4097)
(set! (-> self desired-pos quad) (-> self good-point quad))
(cam-string-move)
(vector-! (-> self view-flat) (-> self string-trans) (-> *camera* tpos-curr-adj))
@@ -570,7 +570,7 @@
(set! (-> self control unknown-surface00) *warp-jump-mods*)
(set! (-> self control unknown-vector102 quad) (-> arg0 quad))
(set! (-> self control unknown-vector103 quad) (-> arg1 quad))
(set! (-> self control unknown-vector102 y) (+ -4096.0 (-> self control unknown-vector102 y)))
(+! (-> self control unknown-vector102 y) -4096.0)
(set! (-> self control unknown-uint20) (the-as uint #f))
(vector-reset! (-> self control transv))
(logior! (-> self state-flags) (state-flags use-alt-cam-pos))
+130 -164
View File
@@ -60,7 +60,7 @@
(defmethod initialize-params collectable ((obj collectable) (arg0 time-frame) (arg1 float))
(logclear! (-> obj mask) (process-mask crate enemy platform ambient))
(set! (-> obj mask) (logior (process-mask collectable) (-> obj mask)))
(logior! (-> obj mask) (process-mask collectable))
(set! (-> obj flags) (collectable-flags can-collect ignore-blue))
(set! (-> obj bob-amount) arg1)
(set! (-> obj bob-offset) (+ (the-as int (-> obj root-override trans x))
@@ -371,7 +371,7 @@
)
)
((and arg2 (and (< (+ 4096.0 (-> *FACT-bank* suck-bounce-dist)) f0-0)
(zero? (logand (-> self flags) (collectable-flags suck)))
(not (logtest? (-> self flags) (collectable-flags suck)))
)
)
(go-virtual wait)
@@ -445,65 +445,65 @@
(defstate wait (eco-collectable)
:virtual #t
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(local-vars (v0-3 none))
(when (and (or (= arg2 'touch) (= arg2 'attack))
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(local-vars (v0-3 object))
(when (and (or (= event-type 'touch) (= event-type 'attack))
(and (logtest? (-> self flags) (collectable-flags can-collect))
(>= (- (-> *display* base-frame-counter) (-> self birth-time)) (-> self collect-timeout))
(!= (-> self next-state name) 'pickup)
(send-event arg0 'get-pickup (-> self fact pickup-type) (-> self fact pickup-amount))
(send-event proc 'get-pickup (-> self fact pickup-type) (-> self fact pickup-amount))
)
)
(logclear! (-> self mask) (process-mask actor-pause))
(go-virtual pickup #f (process->handle arg0))
(go-virtual pickup #f (process->handle proc))
)
(the-as
object
(cond
((= arg2 'eco-blue)
(when (and (zero? (logand (-> self flags) (collectable-flags fading ignore-blue)))
((= event-type 'eco-blue)
(when (and (not (logtest? (-> self flags) (collectable-flags fading ignore-blue)))
(!= (-> self next-state name) 'pickup)
(begin (check-blue-suck (the-as process-drawable arg0)) #t)
(begin (check-blue-suck (the-as process-drawable proc)) #t)
(logtest? (-> self flags) (collectable-flags can-collect))
(>= (- (-> *display* base-frame-counter) (-> self birth-time)) (-> self collect-timeout))
)
(logclear! (-> self mask) (process-mask actor-pause))
(go-virtual notice-blue (process->handle arg0))
(go-virtual notice-blue (process->handle proc))
)
)
((= arg2 'trans)
(set! (-> self root-override trans quad) (-> (the-as vector (-> arg3 param 0)) quad))
((= event-type 'trans)
(set! (-> self root-override trans quad) (-> (the-as vector (-> event param 0)) quad))
(update-transforms! (-> self root-override))
(ja-post)
(the-as object (ja-post))
)
((= arg2 'jump)
((= event-type 'jump)
(logclear! (-> self mask) (process-mask actor-pause))
(set! (-> self jump-pos quad) (-> (the-as vector (-> arg3 param 0)) quad))
(set! (-> self jump-pos quad) (-> (the-as vector (-> event param 0)) quad))
(go-virtual jump)
)
((= arg2 'pickup)
((= event-type 'pickup)
(when (!= (-> self next-state name) 'pickup)
(if (and (> arg1 0) (-> arg3 param 0))
(move-to-point! (-> self root-override) (the-as vector (-> arg3 param 0)))
(if (and (> arg1 0) (-> event param 0))
(move-to-point! (-> self root-override) (the-as vector (-> event param 0)))
)
(logclear! (-> self mask) (process-mask actor-pause))
(go-virtual pickup #f (the-as handle #f))
)
)
((= arg2 'die)
((= event-type 'die)
(logclear! (-> self mask) (process-mask actor-pause))
(go-virtual die)
)
((= arg2 'movie-pos)
(set! v0-3 (the-as none (-> arg3 param 0)))
((= event-type 'movie-pos)
(set! v0-3 (-> event param 0))
(set! (-> self movie-pos-index) (the-as int v0-3))
v0-3
)
((= arg2 'actor-pause)
((= event-type 'actor-pause)
(cond
((-> arg3 param 0)
((-> event param 0)
(logior! (-> self mask) (process-mask actor-pause))
(set! v0-3 (the-as none #t))
(set! v0-3 #t)
(set! (-> self actor-pause) (the-as symbol v0-3))
v0-3
)
@@ -514,10 +514,10 @@
)
)
)
((= arg2 'fade)
((= event-type 'fade)
(logior! (-> self flags) (collectable-flags fade))
(set! (-> self fadeout-timeout) (seconds 0.1))
(set! v0-3 (the-as none (-> *display* base-frame-counter)))
(set! v0-3 (-> *display* base-frame-counter))
(set! (-> self birth-time) (the-as time-frame v0-3))
v0-3
)
@@ -557,7 +557,7 @@
)
(set! (-> self base quad) (-> self root-override trans quad))
(if (and (logtest? (-> self fact options) (fact-options can-collect))
(zero? (logand (-> self flags) (collectable-flags ignore-blue)))
(not (logtest? (-> self flags) (collectable-flags ignore-blue)))
)
(go-virtual notice-blue (process->handle *target*))
)
@@ -618,16 +618,16 @@
(defstate notice-blue (eco-collectable)
:virtual #t
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(when (and (or (= arg2 'touch) (= arg2 'attack))
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(when (and (or (= event-type 'touch) (= event-type 'attack))
(and (logtest? (-> self flags) (collectable-flags can-collect))
(>= (- (-> *display* base-frame-counter) (-> self birth-time)) (-> self collect-timeout))
(!= (-> self next-state name) 'pickup)
(send-event arg0 'get-pickup (-> self fact pickup-type) (-> self fact pickup-amount))
(send-event proc 'get-pickup (-> self fact pickup-type) (-> self fact pickup-amount))
)
)
(logclear! (-> self mask) (process-mask actor-pause))
(go-virtual pickup #f (process->handle arg0))
(go-virtual pickup #f (process->handle proc))
)
)
:enter (behavior ((arg0 handle))
@@ -656,7 +656,7 @@
(set! (-> a1-0 message) 'query)
(set! (-> a1-0 param 0) (the-as uint 'powerup))
(set! (-> a1-0 param 1) (the-as uint 3))
(if (and (not (send-event-function *target* a1-0)) (zero? (logand (-> self flags) (collectable-flags suck))))
(if (and (not (send-event-function *target* a1-0)) (not (logtest? (-> self flags) (collectable-flags suck))))
(go-virtual wait)
)
)
@@ -688,42 +688,40 @@
(defstate pickup (eco-collectable)
:virtual #t
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as
object
(cond
((= v1-0 'set-movie-pos)
(let ((v1-3 (res-lump-struct (-> self entity) 'movie-pos vector :time (the-as float -1000000000.0))))
(the-as symbol (when v1-3
(set! (-> v1-3 quad) (-> (the-as vector (-> arg3 param 0)) quad))
(the-as symbol v1-3)
)
)
)
)
((= v1-0 'actor-pause)
(the-as symbol (cond
((-> arg3 param 0)
(logior! (-> self mask) (process-mask actor-pause))
(let ((v0-1 #t))
(set! (-> self actor-pause) v0-1)
v0-1
)
)
(else
(logclear! (-> self mask) (process-mask actor-pause))
(set! (-> self actor-pause) #f)
#f
)
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(the-as
object
(case event-type
(('set-movie-pos)
(let ((v1-3 (res-lump-struct (-> self entity) 'movie-pos vector :time (the-as float -1000000000.0))))
(the-as symbol (when v1-3
(set! (-> v1-3 quad) (-> (the-as vector (-> event param 0)) quad))
(the-as symbol v1-3)
)
)
)
((= v1-0 'fade)
(process-entity-status! self (entity-perm-status dead) #t)
(the-as symbol (deactivate self))
)
)
)
(('actor-pause)
(the-as symbol (cond
((-> event param 0)
(logior! (-> self mask) (process-mask actor-pause))
(let ((v0-1 #t))
(set! (-> self actor-pause) v0-1)
v0-1
)
)
(else
(logclear! (-> self mask) (process-mask actor-pause))
(set! (-> self actor-pause) #f)
#f
)
)
)
)
(('fade)
(process-entity-status! self (entity-perm-status dead) #t)
(the-as symbol (deactivate self))
)
)
)
)
@@ -888,19 +886,17 @@
(defstate die (eco)
:virtual #t
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (cond
((= v1-0 'fade)
(process-entity-status! self (entity-perm-status dead) #t)
(deactivate self)
)
((= v1-0 'die)
(go-virtual die)
)
)
)
)
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(the-as object (case event-type
(('fade)
(process-entity-status! self (entity-perm-status dead) #t)
(the-as object (deactivate self))
)
(('die)
(go-virtual die)
)
)
)
)
:exit (behavior ()
(process-entity-status! self (entity-perm-status bit-3) #f)
@@ -1090,7 +1086,7 @@
(defmethod run-logic? money ((obj money))
(or (zero? (logand (-> obj mask) (process-mask actor-pause)))
(or (not (logtest? (-> obj mask) (process-mask actor-pause)))
(or (and (nonzero? (-> obj draw))
(logtest? (-> obj draw status) (draw-status was-drawn))
(>= (+ (-> *ACTOR-bank* pause-dist) (-> obj root-override pause-adjust-distance))
@@ -1433,58 +1429,58 @@
(defstate wait (fuel-cell)
:virtual #t
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(local-vars (v0-3 none))
(when (and (or (= arg2 'touch) (= arg2 'attack))
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(local-vars (v0-3 object))
(when (and (or (= event-type 'touch) (= event-type 'attack))
(and (logtest? (-> self flags) (collectable-flags can-collect))
(>= (- (-> *display* base-frame-counter) (-> self birth-time)) (-> self collect-timeout))
(and (not (handle->process (-> *game-info* other-camera-handle)))
(not *progress-process*)
(!= (-> self next-state name) 'pickup)
*target*
(zero? (logand (-> *target* state-flags) (state-flags grabbed dying)))
(not (logtest? (-> *target* state-flags) (state-flags grabbed dying)))
)
)
)
(add-setting! 'allow-progress #f 0.0 0)
(apply-settings *setting-control*)
(logclear! (-> self mask) (process-mask actor-pause))
(go-virtual pickup #f (process->handle arg0))
(go-virtual pickup #f (process->handle proc))
)
(the-as object (cond
((= arg2 'trans)
(set! (-> self root-override trans quad) (-> (the-as vector (-> arg3 param 0)) quad))
((= event-type 'trans)
(set! (-> self root-override trans quad) (-> (the-as vector (-> event param 0)) quad))
(set! (-> self base quad) (-> self root-override trans quad))
(update-transforms! (-> self root-override))
)
((= arg2 'pickup)
((= event-type 'pickup)
(when (!= (-> self next-state name) 'pickup)
(if (and (> arg1 0) (-> arg3 param 0))
(move-to-point! (-> self root-override) (the-as vector (-> arg3 param 0)))
(if (and (> arg1 0) (-> event param 0))
(move-to-point! (-> self root-override) (the-as vector (-> event param 0)))
)
(logclear! (-> self mask) (process-mask actor-pause))
(go-virtual pickup #f (process->handle *target*))
)
)
((= arg2 'collide-shape)
(if (-> arg3 param 0)
(restore-collide-with-as (-> self root-override))
(clear-collide-with-as (-> self root-override))
((= event-type 'collide-shape)
(if (-> event param 0)
(the-as object (restore-collide-with-as (-> self root-override)))
(the-as object (clear-collide-with-as (-> self root-override)))
)
)
((= arg2 'movie-pos)
(set! v0-3 (the-as none (-> arg3 param 0)))
((= event-type 'movie-pos)
(set! v0-3 (-> event param 0))
(set! (-> self movie-pos-index) (the-as int v0-3))
v0-3
)
((= arg2 'anim)
((= event-type 'anim)
(cond
((-> arg3 param 0)
(set! v0-3 (the-as none (logclear (-> self flags) (collectable-flags anim))))
((-> event param 0)
(set! v0-3 (logclear (-> self flags) (collectable-flags anim)))
(set! (-> self flags) (the-as collectable-flags v0-3))
)
(else
(set! v0-3 (the-as none (logior (-> self flags) (collectable-flags anim))))
(set! v0-3 (logior (-> self flags) (collectable-flags anim)))
(set! (-> self flags) (the-as collectable-flags v0-3))
)
)
@@ -1500,7 +1496,7 @@
(loop
(let ((f30-0 (vector-vector-distance (-> self base) (target-pos 0))))
(set! f28-0
(if (and (< f30-0 (-> *FACT-bank* suck-suck-dist)) (zero? (logand (-> self flags) (collectable-flags anim))))
(if (and (< f30-0 (-> *FACT-bank* suck-suck-dist)) (not (logtest? (-> self flags) (collectable-flags anim))))
(seek f28-0 (the-as float 16384.0) (* 3072.0 (-> *display* seconds-per-frame)))
(seek f28-0 (the-as float 0.0) (* 3072.0 (-> *display* seconds-per-frame)))
)
@@ -1775,22 +1771,10 @@
)
)
((= arg0 (game-task ogre-boss))
(level-hint-spawn
(text-id ogre-boss-resolution)
"asstvb23"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn (text-id ogre-boss-resolution) "asstvb23" (the-as entity #f) *entity-pool* (game-task none))
)
((= arg0 (game-task ogre-end))
(level-hint-spawn
(text-id ogre-race-resolution)
"asstvb25"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn (text-id ogre-race-resolution) "asstvb25" (the-as entity #f) *entity-pool* (game-task none))
)
((= arg0 (game-task beach-buzzer))
(level-hint-spawn
@@ -2032,18 +2016,18 @@
(cond
((and *debug-segment* (< (-> *fuel-cell-tune-pos* w) 1000000000.0))
(set! (-> self jump-pos quad) (-> *fuel-cell-tune-pos* quad))
(set! (-> self jump-pos y) (+ 4096.0 (-> self jump-pos y)))
(+! (-> self jump-pos y) 4096.0)
(go-virtual jump)
)
((and gp-1
(zero? (logand (res-lump-value (-> self entity) 'options fact-options :time (the-as float -1000000000.0))
(not (logtest? (res-lump-value (-> self entity) 'options fact-options :time (the-as float -1000000000.0))
(fact-options skip-jump-anim)
)
)
(zero? (logand (-> self fact options) (fact-options skip-jump-anim)))
)
(not (logtest? (-> self fact options) (fact-options skip-jump-anim)))
)
(set! (-> self jump-pos quad) (-> (the-as vector gp-1) quad))
(set! (-> self jump-pos y) (+ 4096.0 (-> self jump-pos y)))
(+! (-> self jump-pos y) 4096.0)
(go-virtual jump)
)
)
@@ -2054,19 +2038,19 @@
)
(defstate fuel-cell-clone-anim (fuel-cell)
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(case event-type
(('pickup)
(when (!= (-> self next-state name) 'pickup)
(if (and (> arg1 0) (-> arg3 param 0))
(move-to-point! (-> self root-override) (the-as vector (-> arg3 param 0)))
(if (and (> arg1 0) (-> event param 0))
(move-to-point! (-> self root-override) (the-as vector (-> event param 0)))
)
(logclear! (-> self mask) (process-mask actor-pause))
(go-virtual pickup #f (the-as handle #f))
)
)
(('trans)
(set! (-> self root-override trans quad) (-> (the-as vector (-> arg3 param 0)) quad))
(set! (-> self root-override trans quad) (-> (the-as vector (-> event param 0)) quad))
(set! (-> self base quad) (-> self root-override trans quad))
(update-transforms! (-> self root-override))
)
@@ -2174,13 +2158,13 @@
(defstate pickup (buzzer)
:virtual #t
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (if (= v1-0 'notify)
(process-entity-status! self (entity-perm-status dead) #t)
)
)
)
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(the-as object (case event-type
(('notify)
(process-entity-status! self (entity-perm-status dead) #t)
)
)
)
)
:enter (behavior ((arg0 object) (arg1 handle))
(set! (-> self pickup-handle) arg1)
@@ -2193,13 +2177,7 @@
(sound-play "buzzer-pickup")
(case (-> (level-get-target-inside *level*) name)
(('training)
(level-hint-spawn
(text-id training-buzzer-hint)
"asstvb44"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn (text-id training-buzzer-hint) "asstvb44" (the-as entity #f) *entity-pool* (game-task none))
)
(('firecanyon)
(level-hint-spawn
@@ -2240,9 +2218,7 @@
(and (-> self entity) (not (task-complete? *game-info* (the-as game-task s5-2))))
)
(if (and *target*
(logtest? (-> *target* control root-prim prim-core action)
(collide-action racer snowball tube flut)
)
(logtest? (-> *target* control root-prim prim-core action) (collide-action racer snowball tube flut))
(not arg0)
)
(logior! (-> self fact options) (fact-options instant-collect skip-jump-anim))
@@ -2502,13 +2478,7 @@
v1-34
)
)
(level-hint-spawn
(text-id misty-eco-red-hint)
"sksp0071"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn (text-id misty-eco-red-hint) "sksp0071" (the-as entity #f) *entity-pool* (game-task none))
)
((= v1-25 (pickup-type eco-blue))
(set! sv-96 (get-process *pickup-dead-pool* eco-blue #x4000))
@@ -2654,7 +2624,7 @@
)
(let ((s2-1 (new 'stack-no-clear 'vector)))
(set! (-> s2-1 quad) (-> obj process root trans quad))
(set! (-> s2-1 y) (+ 12288.0 (-> s2-1 y)))
(+! (-> s2-1 y) 12288.0)
(let ((s1-1 (new 'stack-no-clear 'collide-tri-result)))
(if (>= (fill-and-probe-using-y-probe
*collide-cache*
@@ -2672,7 +2642,7 @@
)
)
(if (= s3-0 (pickup-type fuel-cell))
(set! (-> s2-1 y) (+ 6144.0 (-> s2-1 y)))
(+! (-> s2-1 y) 6144.0)
)
(birth-pickup-at-point s2-1 s3-0 f30-0 arg0 arg1 obj)
)
@@ -2842,7 +2812,7 @@
(when (-> obj blocker)
(logior! (-> obj fact options) (fact-options vent-blocked))
(set! (-> obj block-func)
(lambda ((arg0 vent)) (zero? (logand (-> arg0 blocker extra perm status) (entity-perm-status complete))))
(lambda ((arg0 vent)) (not (logtest? (-> arg0 blocker extra perm status) (entity-perm-status complete))))
)
)
(set! (-> obj show-particles) #t)
@@ -2891,22 +2861,22 @@
)
(defstate vent-wait-for-touch (vent)
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(if (and (or (= arg2 'touch) (= arg2 'attack))
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(if (and (or (= event-type 'touch) (= event-type 'attack))
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-1 from) self)
(set! (-> a1-1 num-params) 2)
(set! (-> a1-1 message) 'get-pickup)
(set! (-> a1-1 param 0) (the-as uint (-> self fact pickup-type)))
(set! (-> a1-1 param 1) (the-as uint (-> self fact pickup-amount)))
(and (= (send-event-function arg0 a1-1) #t)
(or (logtest? (-> self fact options) (fact-options powerup)) (send-event arg0 'powerup))
(and (= (send-event-function proc a1-1) #t)
(or (logtest? (-> self fact options) (fact-options powerup)) (send-event proc 'powerup))
)
)
)
(go vent-pickup (process->handle arg0))
(go vent-pickup (process->handle proc))
)
(vent-standard-event-handler arg0 arg1 arg2 arg3)
(vent-standard-event-handler proc arg1 event-type event)
)
:code (behavior ()
(loop
@@ -2928,8 +2898,8 @@
)
(defstate vent-blocked (vent)
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(case event-type
(('show)
(go vent-wait-for-touch)
)
@@ -3053,7 +3023,3 @@
(initialize obj arg0 (pickup-type eco-blue))
(none)
)
@@ -89,7 +89,7 @@
(t9-0 obj)
)
(logclear! (-> obj flags) (water-flags wt23))
(set! (-> obj flags) (logior (water-flags wt24) (-> obj flags)))
(logior! (-> obj flags) (water-flags wt24))
(set! (-> obj attack-event)
(the-as symbol ((the-as
(function res-lump symbol symbol float structure (pointer res-tag) pointer object)
+10 -7
View File
@@ -927,12 +927,15 @@
(('while)
(let ((s3-0 (car s4-0)))
(while (eval obj (the-as pair s3-0))
(let* ((s2-0 (cdr s4-0)) (a1-3 (car s2-0))) (while (not (null? s2-0))
(set! gp-0 (eval obj (the-as pair a1-3)))
(set! s2-0 (cdr s2-0))
(set! a1-3 (car s2-0))
)
)
(let* ((s2-0 (cdr s4-0))
(a1-3 (car s2-0))
)
(while (not (null? s2-0))
(set! gp-0 (eval obj (the-as pair a1-3)))
(set! s2-0 (cdr s2-0))
(set! a1-3 (car s2-0))
)
)
)
)
)
@@ -1366,7 +1369,7 @@
(defmethod init-from-entity! part-spawner ((obj part-spawner) (arg0 entity-actor))
(local-vars (sv-16 res-tag))
(stack-size-set! (-> obj main-thread) 128)
(set! (-> obj mask) (logior (process-mask ambient) (-> obj mask)))
(logior! (-> obj mask) (process-mask ambient))
(set! (-> obj root) (new 'process 'trsqv))
(process-drawable-from-entity! obj arg0)
(logclear! (-> obj mask) (process-mask actor-pause))
+1 -1
View File
@@ -258,7 +258,7 @@
)
(defmethod init-from-entity! plat-eco ((obj plat-eco) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(set! (-> obj notice-dist) (res-lump-float arg0 'notice-dist :default -1.0))
(set! (-> obj link) (new 'process 'actor-link-info obj))
(baseplat-method-24 obj)
+1 -1
View File
@@ -249,7 +249,7 @@
)
(defmethod init-from-entity! plat ((obj plat) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(baseplat-method-24 obj)
(process-drawable-from-entity! obj arg0)
(initialize-skeleton obj (get-unlit-skel obj) '())
@@ -769,7 +769,7 @@
)
(defmethod init-from-entity! rigid-body-platform ((obj rigid-body-platform) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(rigid-body-platform-method-30 obj)
(process-drawable-from-entity! obj arg0)
(rigid-body-platform-method-31 obj)
+17 -17
View File
@@ -15,22 +15,22 @@
:linger-duration (seconds 2.6)
:flags (use-local-clock)
:bounds (static-bspherem 0 -12 0 14)
:parts ((sp-item 124 :flags (is-3d) :period 900 :length 63)
(sp-item 125 :period 900 :length 15)
(sp-item 126 :flags (is-3d) :period 900 :length 15)
(sp-item 127 :flags (is-3d) :period 900 :length 15)
(sp-item 128 :period 900 :length 10 :binding 129)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
(sp-item 129 :flags (start-dead) :period 900 :length 120)
:parts ((sp-item 124 :flags (is-3d) :period (seconds 3) :length (seconds 0.21))
(sp-item 125 :period (seconds 3) :length (seconds 0.05))
(sp-item 126 :flags (is-3d) :period (seconds 3) :length (seconds 0.05))
(sp-item 127 :flags (is-3d) :period (seconds 3) :length (seconds 0.05))
(sp-item 128 :period (seconds 3) :length (seconds 0.035) :binding 129)
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
(sp-item 129 :flags (start-dead) :period (seconds 3) :length (seconds 0.4))
)
)
@@ -409,7 +409,7 @@ nav-enemy-default-event-handler
)
)
(send-event *target* 'end-mode)
(set! (-> self mask) (logior (process-mask enemy) (-> self mask)))
(logior! (-> self mask) (process-mask enemy))
)
(sharkey-reset-position)
(logior! (-> self draw status) (draw-status hidden))
+3 -3
View File
@@ -631,7 +631,7 @@
((and (logtest? (water-flags wt21) (-> obj flags))
(logtest? (-> obj process state-flags) (state-flags grabbed))
)
(set! (-> obj flags) (logior (water-flags wt16) (-> obj flags)))
(logior! (-> obj flags) (water-flags wt16))
)
((begin
(set! (-> obj top 1 quad) (-> obj top 0 quad))
@@ -1237,7 +1237,7 @@
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(the-as object (case event-type
(('update)
(update! self)
(the-as symbol (update! self))
)
)
)
@@ -1312,7 +1312,7 @@
)
)
)
(set! (-> obj flags) (logior (water-flags wt23) (-> obj flags)))
(logior! (-> obj flags) (water-flags wt23))
(cond
((zero? (-> obj flags))
(if (< 0.0 (-> obj wade-height))
+5 -5
View File
@@ -690,7 +690,7 @@
(let ((a0-20 v1-31))
"return the next node in the list"
(let ((a0-21 (-> a0-20 next)))
(set! (-> v1-31 flags) (logand -3 (-> v1-31 flags)))
(logand! (-> v1-31 flags) -3)
(set! v1-31 (the-as anim-test-sequence a0-21))
)
)
@@ -1131,7 +1131,7 @@
(set! (-> arg1 current-index) (-> arg1 the-index))
(set! (-> (the-as anim-test-obj v1-0) anim-index) (-> arg1 current-index))
(set! (-> (the-as anim-test-obj v1-0) anim-hindex) (-> arg1 highlight-index))
(set! (-> (the-as anim-test-obj v1-0) flags) (logand -3 (-> (the-as anim-test-obj v1-0) flags)))
(logand! (-> (the-as anim-test-obj v1-0) flags) -3)
(send-event (ppointer->process *anim-tester*) 'change-anim #f)
)
((cpad-pressed? 0 square)
@@ -1457,7 +1457,7 @@
(let ((s4-0 (new 'debug 'anim-test-seq-item 1 "")))
(anim-test-seq-item-copy! s4-0 arg0)
(when (logtest? (-> s4-0 flags) 1)
(set! (-> s4-0 flags) (logand -2 (-> s4-0 flags)))
(logand! (-> s4-0 flags) -2)
(logior! (-> s4-0 flags) 4)
(let ((v1-8 s4-0))
(set! (-> v1-8 privname) "--blank--")
@@ -2474,7 +2474,7 @@
"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)))
(logand! (-> (the-as anim-test-sequence s5-1) flags) -5)
(format
gp-2
" ~S \"~S\" ~d~%"
@@ -2532,7 +2532,7 @@
(not (not (-> v1-9 next)))
)
(when (logtest? (-> (the-as anim-test-obj gp-0) flags) 1)
(set! (-> (the-as anim-test-obj gp-0) flags) (logand -2 (-> (the-as anim-test-obj gp-0) flags)))
(logand! (-> (the-as anim-test-obj gp-0) flags) -2)
(anim-tester-save-object-seqs (the-as anim-test-obj gp-0))
)
"return the next node in the list"
+5 -5
View File
@@ -30,7 +30,7 @@
;; add text and vector
(add-debug-text-sphere #t (bucket-id debug-no-zbuf) (-> obj trans) 819.2 (symbol->string (-> obj name)) s5-0)
(add-debug-vector #t (bucket-id debug-no-zbuf) (-> obj trans) (-> obj normal) (meters 2.0) s5-0)
(add-debug-vector #t (bucket-id debug-no-zbuf) (-> obj trans) (-> obj normal) (meters 2) s5-0)
)
0
(none)
@@ -386,7 +386,7 @@
(set! (-> obj fuel-cell-pickup-time) (-> *display* base-frame-counter))
(set! (-> obj fuel-cell-time s5-1) (-> *display* base-frame-counter))
;; increment power cells!
(set! (-> obj fuel) (+ 1.0 (-> obj fuel)))
(+! (-> obj fuel) 1.0)
;; mark as completed
(logior! (-> obj task-perm-list data s5-1 status) (entity-perm-status real-complete))
;; unused.
@@ -413,8 +413,8 @@
;; valid fly index
;; increment total if we haven't collected it before
(if (zero? (logand buzz-bits (ash 1 buzz-index)))
(set! (-> obj buzzer-total) (+ 1.0 (-> obj buzzer-total)))
(if (not (logtest? buzz-bits (ash 1 buzz-index)))
(+! (-> obj buzzer-total) 1.0)
)
;; set the updated bits
@@ -871,7 +871,7 @@
(bucket-id debug-no-zbuf)
(-> obj trans)
a3-2
(meters 2.0)
(meters 2)
(new 'static 'rgba :r #xff :g #x80 :a #x80)
)
)
+4 -4
View File
@@ -902,7 +902,7 @@
(logior! (-> obj options) 2)
(let ((s5-0 (new 'stack-no-clear 'vector)))
(set! (-> s5-0 quad) (-> obj root-override trans quad))
(set! (-> obj root-override trans y) (+ -5324.8 (-> obj root-override trans y)))
(+! (-> obj root-override trans y) -5324.8)
(vector+float*! (-> obj target) (-> obj root-override trans) (-> obj root-override transv) 2.0)
(set! (-> obj target-base quad) (-> obj target quad))
(let ((f30-0 (the float (sar (shl (the int (y-angle (-> obj root-override))) 48) 48))))
@@ -946,7 +946,7 @@
)
)
(('finalboss)
(set! (-> obj root-override trans y) (+ 4096.0 (-> obj root-override trans y)))
(+! (-> obj root-override trans y) 4096.0)
(set! (-> obj water) (new 'process 'water-control obj 0 0.0 8192.0 2048.0))
(set! (-> obj water flags) (water-flags wt01 wt04 wt07))
(set! (-> obj water height) 1977958.4)
@@ -1073,7 +1073,7 @@
(when s5-0
(set! (-> obj target quad) (-> s5-0 root-override root-prim prim-core world-sphere quad))
(if (= (-> s5-0 type symbol) 'mother-spider)
(set! (-> obj options) (logand -2 (-> obj options)))
(logand! (-> obj options) -2)
)
)
)
@@ -1105,7 +1105,7 @@
(set! (-> obj mode) 2)
(set! (-> obj max-speed) (-> *TARGET-bank* yellow-projectile-speed))
(set! (-> obj update-velocity) projectile-update-velocity-space-wars)
(set! (-> obj root-override trans y) (+ -5324.8 (-> obj root-override trans y)))
(+! (-> obj root-override trans y) -5324.8)
(vector+float*! (-> obj target) (-> obj root-override trans) (-> obj root-override transv) 2.0)
(set! (-> obj target-base quad) (-> obj target quad))
(set! (-> obj mask) (the-as process-mask (logior (process-mask ambient) (-> obj mask))))
+6 -15
View File
@@ -31,12 +31,8 @@
)
)
;; WARN: Function may read a register that is not set: f31
(defun update-mood-itimes ((arg0 mood-context))
(local-vars
(r0-0 int)
(r0-1 int)
(r0-2 int)
(v1-0 uint128)
(v1-1 uint128)
(v1-2 uint128)
@@ -57,7 +53,6 @@
(t2-1 uint128)
(t3-0 uint128)
(t3-1 uint128)
(f31-0 none)
)
;; pc mood debug
(with-pc
@@ -133,11 +128,11 @@
(.mov t3-0 vf8)
(.pw.sra t1-1 t1-0 6)
(.pw.sra t2-1 t2-0 6)
(.mov r0-0 f31-0)
(nop!)
(.pw.sra t3-1 t3-0 6)
(.mov r0-1 f31-0)
(nop!)
(.ppach v1-2 a1-1 v1-1)
(.mov r0-2 f31-0)
(nop!)
(.ppach a1-2 a3-1 a2-1)
(set! (-> arg0 itimes 0 quad) v1-2)
(.ppach v1-3 t1-1 t0-1)
@@ -994,7 +989,7 @@
)
(let ((s5-4 (-> arg0 light-group 5)))
(update-light-kit s5-4 (-> arg0 light-group 0 ambi) 0.5)
(set! (-> s5-4 ambi color x) (+ 0.25 (-> s5-4 ambi color x)))
(+! (-> s5-4 ambi color x) 0.25)
(set! (-> s5-4 dir0 levels x) 1.0)
)
(let ((s5-5 (-> arg0 light-group 6))
@@ -2269,7 +2264,7 @@
(cond
((or (nonzero? *lightning-time2*) (movie?))
(if (not (paused?))
(set! (-> s4-1 lava-fade) (+ 0.2 (-> s4-1 lava-fade)))
(+! (-> s4-1 lava-fade) 0.2)
)
(if (< 1.0 (-> s4-1 lava-fade))
(set! (-> s4-1 lava-fade) 1.0)
@@ -2713,7 +2708,7 @@
)
(else
(if (not (paused?))
(set! (-> (the-as (pointer float) s5-1) 2) (+ -0.1 (-> (the-as (pointer float) s5-1) 2)))
(+! (-> (the-as (pointer float) s5-1) 2) -0.1)
)
(set! (-> (the-as (pointer float) s5-1) 2) (fmax 0.0 (fmin 1.0 (-> (the-as (pointer float) s5-1) 2))))
)
@@ -2774,7 +2769,3 @@
(update-mood-itimes arg0)
(none)
)
+1 -1
View File
@@ -72,7 +72,7 @@
(let ((s0-0 (new 'stack-no-clear 'vector))
(s1-0 (new 'stack-no-clear 'sparticle-cpuinfo))
)
(set! (-> arg1 y) (+ 40.96 (-> arg1 y)))
(+! (-> arg1 y) 40.96)
(set! (-> sv-144 x) (-> sv-96 z))
(set! (-> sv-144 y) 0.0)
(set! (-> sv-144 z) (- (-> sv-96 x)))
+6 -6
View File
@@ -1167,7 +1167,7 @@
(let ((v1-1 (find-poly-fast obj arg0 arg1)))
(when v1-1
(if arg2
(set! (-> arg2 0) (logior (nav-control-flags navcf20) (-> arg2 0)))
(logior! (-> arg2 0) (nav-control-flags navcf20))
)
(set! s3-1 v1-1)
(goto cfg-14)
@@ -2458,9 +2458,9 @@
(set! (-> obj blocked-travel quad) (-> obj travel quad))
(let ((f0-0 (vector-xz-length (-> obj travel))))
(when (and (>= f30-0 f0-0) (< f0-0 204.8))
(set! (-> obj flags) (logior (nav-control-flags navcf17) (-> obj flags)))
(logior! (-> obj flags) (nav-control-flags navcf17))
(set! (-> obj block-time) (-> *display* base-frame-counter))
(set! (-> obj block-count) (+ 1.0 (-> obj block-count)))
(+! (-> obj block-count) 1.0)
(if (-> obj block-event)
(send-event (the-as process-tree (-> obj process)) (the-as symbol (-> obj block-event)) obj)
)
@@ -2496,7 +2496,7 @@
)
(cond
((or (vector= arg2 (-> obj target-pos)) (< (fabs f28-0) 364.0889))
(set! (-> obj flags) (logior (nav-control-flags navcf21) (-> obj flags)))
(logior! (-> obj flags) (nav-control-flags navcf21))
(set! (-> arg0 quad) (-> arg2 quad))
)
(else
@@ -2510,7 +2510,7 @@
(logtest? (nav-control-flags navcf17) (-> obj flags))
(not (logtest? (-> obj flags) (nav-control-flags navcf10)))
)
(set! (-> obj flags) (logior (nav-control-flags navcf21) (-> obj flags)))
(logior! (-> obj flags) (nav-control-flags navcf21))
(vector-! (-> obj travel) arg2 (-> arg1 trans))
(set! (-> arg0 quad) (-> arg2 quad))
)
@@ -2987,7 +2987,7 @@
)
)
(else
(set! (-> obj flags) (logior (nav-control-flags navcf19) (-> obj flags)))
(logior! (-> obj flags) (nav-control-flags navcf19))
)
)
)
+6 -10
View File
@@ -17,12 +17,8 @@
)
(or (= (-> self control unknown-surface00 name) 'run) (= (-> self control unknown-surface00 name) 'jump))
)
(set! (-> self control unknown-surface01 target-speed)
(+ 20480.0 (-> self control unknown-surface01 target-speed))
)
(set! (-> self control unknown-surface01 transv-max)
(+ 20480.0 (-> self control unknown-surface01 transv-max))
)
(+! (-> self control unknown-surface01 target-speed) 20480.0)
(+! (-> self control unknown-surface01 transv-max) 20480.0)
)
(let ((s5-0 (new-stack-vector0)))
(vector-z-quaternion! s5-0 (-> self control unknown-quaternion00))
@@ -1033,7 +1029,7 @@
)
(if (and (= (-> self cam-user-mode) 'normal)
(logtest? (-> self control unknown-surface00 flags) (surface-flags allow-look-around))
(not (logtest? (-> self control root-prim prim-core action)
(not (logtest? (-> self control root-prim prim-core action)
(collide-action edgegrab-cam swingpole-active racer snowball tube flut)
)
)
@@ -1338,7 +1334,7 @@
(let ((v1-8 (new 'stack-no-clear 'vector)))
(vector+! v1-8 s3-0 s2-0)
(vector-float*! v1-8 v1-8 0.5)
(set! (-> v1-8 y) (+ -6144.0 (-> v1-8 y)))
(+! (-> v1-8 y) -6144.0)
(send-event *camera* 'ease-in 0.5 v1-8)
)
(vector-segment-distance-point! (-> self control unknown-vector90) s3-0 s2-0 s5-0)
@@ -1408,7 +1404,7 @@
(not (logtest? (-> self draw status) (draw-status hidden)))
(begin
(vector<-cspace! gp-0 (-> self node-list data 3))
(set! (-> gp-0 y) (+ -5896.192 (-> gp-0 y)))
(+! (-> gp-0 y) -5896.192)
(< (fabs (- (-> gp-0 y) (-> self control trans y))) 8192.0)
)
)
@@ -2036,7 +2032,7 @@
(set! (-> self water flags) (water-flags wt04 wt05 wt06 wt07 wt22))
(reset-target-state #t)
(set! (-> self control unknown-vector52 quad) (-> self control trans quad))
(set! (-> self control unknown-vector52 y) (+ -819200.0 (-> self control unknown-vector52 y)))
(+! (-> self control unknown-vector52 y) -819200.0)
(set! (-> self align) (new 'process 'align-control self))
(set! (-> self sidekick) (process-spawn sidekick :init init-sidekick :from *16k-dead-pool* :to self))
(set! (-> self manipy) (the-as (pointer manipy) #f))
+6 -3
View File
@@ -1035,7 +1035,10 @@
(let ((v1-0 event-type))
(the-as object (cond
((= v1-0 'end-mode)
(set! (-> self control unknown-uint20) (the-as uint #t))
(let ((v0-0 (the-as object #t)))
(set! (-> self control unknown-uint20) (the-as uint v0-0))
v0-0
)
)
((= v1-0 'change-mode)
(case (-> event param 0)
@@ -1049,7 +1052,7 @@
(case (-> event param 0)
(('die 'abort-request)
(set! (-> self control unknown-uint20) (the-as uint #t))
(set-blackout-frames (seconds 0.2))
(the-as object (set-blackout-frames (seconds 0.2)))
)
)
)
@@ -1150,7 +1153,7 @@
(when (if (and (nonzero? s5-1) (type-type? (-> s5-1 type) water-vol))
s5-1
)
(set! (-> self state-flags) (logior (state-flags falling-into-pool-of-bad) (-> self state-flags)))
(logior! (-> self state-flags) (state-flags falling-into-pool-of-bad))
(set! (-> self alt-cam-pos y) (+ 4096.0 (-> self water height)))
)
)
@@ -108,7 +108,7 @@
(case (-> arg3 param 0)
(('save)
(set! (-> self alt-cam-pos quad) (-> self control trans quad))
(set! (-> self state-flags) (logior (state-flags has-saved-position) (-> self state-flags)))
(logior! (-> self state-flags) (state-flags has-saved-position))
(mem-copy! (the-as pointer (-> arg3 param 1)) (the-as pointer (-> self control trans)) 48)
)
(('restore)
@@ -153,7 +153,7 @@
(set! (-> self neck flex-blend) (the-as float (-> arg3 param 0)))
(cond
((-> arg3 param 1)
(set! (-> self state-flags) (logior (state-flags looking-at-enemy) (-> self state-flags)))
(logior! (-> self state-flags) (state-flags looking-at-enemy))
(set! (-> self alt-neck-pos quad) (-> (the-as vector (-> arg3 param 1)) quad))
(the-as object (look-at-enemy! (-> self neck) (-> self alt-neck-pos) 'force arg0))
)
+1 -1
View File
@@ -35,7 +35,7 @@
(let ((s3-0 (new 'stack-no-clear 'collide-tri-result))
(s5-0 *target*)
)
(set! (-> a1-1 y) (+ 4096.0 (-> a1-1 y)))
(+! (-> a1-1 y) 4096.0)
;; NOTE : added *target* check here.
(when (and s5-0 (>= (fill-and-probe-using-y-probe
*collide-cache*
+5 -29
View File
@@ -1383,36 +1383,12 @@
:event target-jump-event-handler
:enter (behavior ((arg0 float) (arg1 float) (arg2 surface))
(when (= (-> self control unknown-symbol40) 'launch)
(level-hint-spawn
(text-id sidekick-launcher1)
"sksp009d"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn
(text-id sidekick-launcher2)
"sksp009e"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn (text-id sidekick-launcher1) "sksp009d" (the-as entity #f) *entity-pool* (game-task none))
(level-hint-spawn (text-id sidekick-launcher2) "sksp009e" (the-as entity #f) *entity-pool* (game-task none))
(case (-> (level-get-target-inside *level*) name)
(('citadel)
(level-hint-spawn
(text-id citadel-launcher2)
"sksp0393"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn
(text-id citadel-launcher)
"sksp0388"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn (text-id citadel-launcher2) "sksp0393" (the-as entity #f) *entity-pool* (game-task none))
(level-hint-spawn (text-id citadel-launcher) "sksp0388" (the-as entity #f) *entity-pool* (game-task none))
)
)
enter-state
@@ -2939,7 +2915,7 @@
(set-forward-vel (the-as float 0.0))
(set! (-> self control unknown-surface00) *flop-land-mods*)
(logclear! (-> *flop-land-mods* flags) (surface-flags allow-edge-grab))
(set! (-> self state-flags) (logior (state-flags flop-hit-ground) (-> self state-flags)))
(logior! (-> self state-flags) (state-flags flop-hit-ground))
(none)
)
:exit target-exit
+2 -2
View File
@@ -2466,7 +2466,7 @@
:trans (behavior ()
(cond
((< (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5))
(set! (-> self water flags) (logior (water-flags wt16) (-> self water flags)))
(logior! (-> self water flags) (water-flags wt16))
(logclear! (-> self control status) (cshape-moving-flags onsurf onground tsurf))
)
(else
@@ -2487,7 +2487,7 @@
((-> target-swim-stance exit))
(die-on-next-update! (-> self water bob))
(set! (-> self water align-offset) 0.0)
(set! (-> self water flags) (logior (water-flags wt16) (-> self water flags)))
(logior! (-> self water flags) (water-flags wt16))
(none)
)
:code (behavior ((arg0 float) (arg1 float))
@@ -253,8 +253,8 @@
(let ((v1-26 s4-1))
(set! (-> v1-26 width) (the float 428))
)
(set! (-> s4-1 origin x) (+ -220.0 (-> s4-1 origin x)))
(set! (-> s4-1 origin y) (+ 40.0 (-> s4-1 origin y)))
(+! (-> s4-1 origin x) -220.0)
(+! (-> s4-1 origin y) 40.0)
(set! (-> s4-1 flags) (font-flags shadow kerning middle large))
(print-game-text-scaled
(lookup-text! *common-text* (text-id total-collected) #f)
@@ -262,7 +262,7 @@
s4-1
(the int (* 128.0 f30-0))
)
(set! (-> s4-1 origin y) (+ 15.0 (-> s4-1 origin y)))
(+! (-> s4-1 origin y) 15.0)
(let ((s5-2 print-game-text-scaled))
(format (clear *temp-string*) "~D/~D" (the int (-> *game-info* money-total)) (-> obj total-nb-of-orbs))
(s5-2 *temp-string* f30-0 s4-1 (the int (* 128.0 f30-0)))
@@ -330,8 +330,8 @@
(let ((v1-14 s4-1))
(set! (-> v1-14 width) (the float 428))
)
(set! (-> s4-1 origin x) (+ -220.0 (-> s4-1 origin x)))
(set! (-> s4-1 origin y) (+ 40.0 (-> s4-1 origin y)))
(+! (-> s4-1 origin x) -220.0)
(+! (-> s4-1 origin y) 40.0)
(set! (-> s4-1 flags) (font-flags shadow kerning middle large))
(print-game-text-scaled
(lookup-text! *common-text* (text-id total-collected) #f)
@@ -339,7 +339,7 @@
s4-1
(the int (* 128.0 f30-0))
)
(set! (-> s4-1 origin y) (+ 15.0 (-> s4-1 origin y)))
(+! (-> s4-1 origin y) 15.0)
(let ((s5-2 print-game-text-scaled))
(format (clear *temp-string*) "~D/~D" (the int (-> *game-info* buzzer-total)) (-> obj total-nb-of-buzzers))
(s5-2 *temp-string* f30-0 s4-1 (the int (* 128.0 f30-0)))
@@ -685,11 +685,10 @@
(print-game-text
(lookup-text!
*common-text*
(the-as text-id (if (= (-> obj display-state) (progress-screen load-game))
321
320
)
)
(if (= (-> obj display-state) (progress-screen load-game))
(text-id select-file-to-load)
(text-id select-file-to-save)
)
#f
)
arg0
@@ -748,7 +747,7 @@
(let ((v1-87 arg0))
(set! (-> v1-87 scale) 0.5)
)
(set! (-> arg0 origin y) (+ 16.0 (-> arg0 origin y)))
(+! (-> arg0 origin y) 16.0)
(set! (-> arg0 flags) (font-flags shadow kerning middle large))
(set! (-> arg0 origin x) (the float (- -73 (-> obj left-x-offset))))
(let ((v1-91 arg0))
@@ -786,7 +785,7 @@
)
(s0-4 *temp-string* arg0 #f s4-1 22)
)
(set! (-> arg0 origin y) (+ 1.0 (-> arg0 origin y)))
(+! (-> arg0 origin y) 1.0)
(let ((v1-108 arg0))
(set! (-> v1-108 scale) 1.0)
)
@@ -805,7 +804,7 @@
(let ((v1-116 arg0))
(set! (-> v1-116 scale) 0.5)
)
(set! (-> arg0 origin y) (+ 9.0 (-> arg0 origin y)))
(+! (-> arg0 origin y) 9.0)
(set! (-> arg0 flags) (font-flags shadow kerning large))
(set! (-> arg0 origin x) (the float (- 85 (-> obj left-x-offset))))
(let ((s0-6 print-game-text))
@@ -844,10 +843,10 @@
)
(s0-8 *temp-string* arg0 #f s4-1 22)
)
(set! (-> arg0 origin y) (+ 15.0 (-> arg0 origin y)))
(+! (-> arg0 origin y) 15.0)
)
(else
(set! (-> arg0 origin y) (+ 18.0 (-> arg0 origin y)))
(+! (-> arg0 origin y) 18.0)
(set! (-> arg0 origin x) (the float (- 28 (-> obj left-x-offset))))
(let ((v1-131 arg0))
(set! (-> v1-131 scale) 0.8)
@@ -878,18 +877,18 @@
)
)
(set! (-> obj particles s2-0 init-pos x) -320.0)
(set! (-> arg0 origin y) (+ 23.0 (-> arg0 origin y)))
(+! (-> arg0 origin y) 23.0)
)
)
)
(else
(set! (-> obj particles s2-0 init-pos x) -320.0)
(set! (-> arg0 origin y) (+ 12.0 (-> arg0 origin y)))
(+! (-> arg0 origin y) 12.0)
(let ((v1-173 arg0))
(set! (-> v1-173 scale) 0.7)
)
(print-game-text (lookup-text! *common-text* (text-id empty) #f) arg0 #f s4-1 22)
(set! (-> arg0 origin y) (+ 29.0 (-> arg0 origin y)))
(+! (-> arg0 origin y) 29.0)
)
)
(+! s2-0 1)
@@ -1910,7 +1909,3 @@
0
(none)
)
+251 -338
View File
@@ -682,6 +682,7 @@
(defmethod relocate game-count-info ((obj game-count-info) (arg0 int))
"Load in the game-count-info. This is a bit of a hack."
(set! *game-counts* obj)
obj
)
(defmethod relocate progress ((obj progress) (arg0 int))
@@ -873,16 +874,14 @@
)
(defstate progress-waiting (progress)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(case event-type
(('go-away)
(go progress-gone)
)
)
)
:code
(behavior ()
:code (behavior ()
(loop
(when (hud-hidden?)
(dotimes (gp-0 (-> self nb-of-particles))
@@ -901,8 +900,7 @@
)
(defstate progress-gone (progress)
:code
(behavior ()
:code (behavior ()
(remove-setting! 'process-mask)
(apply-settings *setting-control*)
(logior! (-> self mask) (process-mask sleep))
@@ -1344,9 +1342,7 @@
((>= (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
(+ 1.0 (-> s5-0 (-> obj option-index) param1))
)
(set! (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
(+ -1.0 (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify))))
)
(+! (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify))) -1.0)
(set! v1-157 #t)
)
((< (-> s5-0 (-> obj option-index) param1)
@@ -1441,9 +1437,7 @@
((>= (+ -1.0 (-> s5-0 (-> obj option-index) param2))
(-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
)
(set! (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
(+ 1.0 (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify))))
)
(+! (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify))) 1.0)
(set! v1-263 #t)
)
((< (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
@@ -1722,172 +1716,102 @@
)
(defstate progress-normal (progress)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(local-vars (v0-0 none))
(let ((v1-0 arg2))
(the-as object (cond
((= v1-0 'go-away)
(go progress-going-out)
)
((= v1-0 'notify)
(cond
((= (-> arg3 param 0) 'done)
(case (-> self display-state)
(((progress-screen memcard-saving))
(cond
((= (-> self display-state-stack 0) (progress-screen title))
(let ((gp-1 (-> *setting-control* default auto-save)))
(sound-volume-off)
(set! (-> *game-info* mode) 'play)
(cond
;; Start a new game differently if speedrunning mode is active
((= (-> *pc-settings* speedrunner-mode?) #t)
(speedrun-start-full-game-run))
;; start the game normally
(else
(initialize! *game-info* 'game (the-as game-save #f) "intro-start")
(set! (-> *setting-control* default auto-save) gp-1))))
(set-master-mode 'game))
(else
(set! v0-0 (the-as none -1))
(set! (-> self next-display-state) (the-as progress-screen v0-0))
v0-0
)
)
)
(((progress-screen memcard-formatting))
(set! (-> self force-transition) #t)
(set! v0-0 (the-as none 15))
(set! (-> self next-display-state) (the-as progress-screen v0-0))
v0-0
)
(((progress-screen memcard-creating))
(cond
((= (-> self display-state-stack 0) (progress-screen title))
(set! v0-0 (the-as none 18))
(set! (-> self next-display-state) (the-as progress-screen v0-0))
)
(else
(set! v0-0 (the-as none 17))
(set! (-> self next-display-state) (the-as progress-screen v0-0))
)
)
v0-0
)
)
)
((= (-> arg3 param 0) 'error)
(let ((t9-4 format)
(a0-17 #t)
(a1-2 "ERROR NOTIFY: ~S ~D~%")
(v1-13 (-> arg3 param 1))
)
(t9-4
a0-17
a1-2
(cond
((= v1-13 17)
"no-auto-save"
)
((= v1-13 16)
"no-process"
)
((= v1-13 15)
"bad-version"
)
((= v1-13 14)
"no-space"
)
((= v1-13 13)
"no-save"
)
((= v1-13 12)
"no-file"
)
((= v1-13 11)
"no-format"
)
((= v1-13 10)
"no-last"
)
((= v1-13 9)
"no-card"
)
((= v1-13 8)
"no-memory"
)
((= v1-13 7)
"new-game"
)
((= v1-13 6)
"read-error"
)
((= v1-13 5)
"write-error"
)
((= v1-13 4)
"internal-error"
)
((= v1-13 3)
"format-failed"
)
((= v1-13 2)
"bad-handle"
)
((= v1-13 1)
"ok"
)
((zero? v1-13)
"busy"
)
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(local-vars (v0-0 object))
(the-as object (case event-type
(('go-away)
(go progress-going-out)
)
(('notify)
(cond
((= (-> event param 0) 'done)
(case (-> self display-state)
(((progress-screen memcard-saving))
(cond
((= (-> self display-state-stack 0) (progress-screen title))
(let ((gp-1 (-> *setting-control* default auto-save)))
(sound-volume-off)
(set! (-> *game-info* mode) 'play)
(initialize! *game-info* 'game (the-as game-save #f) "intro-start")
(cond
;; Start a new game differently if speedrunning mode is active
((= (-> *pc-settings* speedrunner-mode?) #t)
(speedrun-start-full-game-run))
;; start the game normally
(else
"*unknown*"
)
(initialize! *game-info* 'game (the-as game-save #f) "intro-start")
(set! (-> *setting-control* default auto-save) gp-1)))
)
(-> self display-state)
(the-as object (set-master-mode 'game))
)
)
(case (-> arg3 param 1)
((14)
(set! v0-0 (the-as none 7))
(set! (-> self next-display-state) (the-as progress-screen v0-0))
v0-0
(else
(set! v0-0 -1)
(set! (-> self next-display-state) (the-as progress-screen v0-0))
v0-0
)
)
(else
(case (-> self display-state)
(((progress-screen memcard-formatting))
(set! v0-0 (the-as none 24))
(set! (-> self next-display-state) (the-as progress-screen v0-0))
v0-0
)
(((progress-screen memcard-creating))
(set! v0-0 (the-as none 25))
(set! (-> self next-display-state) (the-as progress-screen v0-0))
v0-0
)
(((progress-screen memcard-saving))
(set! v0-0 (the-as none 21))
(set! (-> self next-display-state) (the-as progress-screen v0-0))
v0-0
)
(((progress-screen memcard-loading))
(set! v0-0 (the-as none 20))
(set! (-> self next-display-state) (the-as progress-screen v0-0))
v0-0
)
)
)
(((progress-screen memcard-formatting))
(set! (-> self force-transition) #t)
(set! v0-0 15)
(set! (-> self next-display-state) (the-as progress-screen v0-0))
v0-0
)
(((progress-screen memcard-creating))
(cond
((= (-> self display-state-stack 0) (progress-screen title))
(set! v0-0 18)
(set! (-> self next-display-state) (the-as progress-screen v0-0))
)
(else
(set! v0-0 17)
(set! (-> self next-display-state) (the-as progress-screen v0-0))
)
)
v0-0
)
)
)
((= (-> event param 0) 'error)
(format #t "ERROR NOTIFY: ~S ~D~%" (enum->string mc-status-code (-> event param 1)) (-> self display-state))
(case (-> event param 1)
((14)
(set! v0-0 7)
(set! (-> self next-display-state) (the-as progress-screen v0-0))
v0-0
)
(else
(case (-> self display-state)
(((progress-screen memcard-formatting))
(set! v0-0 24)
(set! (-> self next-display-state) (the-as progress-screen v0-0))
v0-0
)
(((progress-screen memcard-creating))
(set! v0-0 25)
(set! (-> self next-display-state) (the-as progress-screen v0-0))
v0-0
)
(((progress-screen memcard-saving))
(set! v0-0 21)
(set! (-> self next-display-state) (the-as progress-screen v0-0))
v0-0
)
(((progress-screen memcard-loading))
(set! v0-0 20)
(set! (-> self next-display-state) (the-as progress-screen v0-0))
v0-0
)
)
)
)
)
)
)
)
)
)
)
)
)
)
:code
(behavior ()
:code (behavior ()
(loop
(when (and (cpad-hold? 0 l1) (cpad-hold? 0 r1) *cheat-mode*)
(when (and (< (-> self task-index) (-> *level-task-data* (-> self display-level-index) nb-of-tasks))
@@ -2030,161 +1954,161 @@
)
(none)
)
:post
(behavior ()
:post (behavior ()
(let* ((a1-0 (-> self display-level-index))
(gp-0 (-> *level-task-data* a1-0))
(unk #t)
(s5-0 #f)
)
(case (-> self display-state)
(((progress-screen fuel-cell))
(set! s5-0 #t)
(draw-fuel-cell-screen self a1-0)
)
(((progress-screen money))
(set! s5-0 #t)
(draw-money-screen self a1-0)
)
(((progress-screen buzzer))
(set! s5-0 #t)
(draw-buzzer-screen self a1-0)
)
(((progress-screen game-settings) (progress-screen settings))
(hide-progress-icons)
(draw-options self 115 30 0.82)
)
(((progress-screen graphic-settings)
(progress-screen sound-settings)
(progress-screen settings-title)
(progress-screen title)
)
(hide-progress-icons)
(draw-options self 115 30 0.82)
)
(((progress-screen memcard-removed) (progress-screen memcard-auto-save-error))
(draw-notice-screen self)
(draw-options self 192 0 0.82)
)
(((progress-screen memcard-no-data))
(draw-notice-screen self)
(draw-options self 165 0 0.82)
)
(((progress-screen memcard-format))
(draw-notice-screen self)
(draw-options self 172 0 0.82)
)
(((progress-screen memcard-no-space)
(progress-screen memcard-not-inserted)
(progress-screen memcard-not-formatted)
)
(draw-notice-screen self)
(draw-options self 195 0 0.82)
)
(((progress-screen memcard-error-loading)
(progress-screen memcard-error-saving)
(progress-screen memcard-error-formatting)
(progress-screen memcard-error-creating)
(progress-screen memcard-auto-save-error)
)
(draw-notice-screen self)
(draw-options self 190 0 0.82)
)
(((progress-screen pal-change-to-60hz))
(draw-notice-screen self)
(draw-options self 190 0 0.82)
)
(((progress-screen pal-now-60hz))
(when (< (seconds 10) (- (-> *display* real-frame-counter) (-> self video-mode-timeout)))
(set! (-> *progress-state* video-mode-choice) 'pal)
(set! (-> *setting-control* default video-mode) (-> *progress-state* video-mode-choice))
(set! (-> self next-display-state) (progress-screen invalid))
#t
(let ((s5-0 #f))
(case (-> self display-state)
(((progress-screen fuel-cell))
(set! s5-0 #t)
(draw-fuel-cell-screen self a1-0)
)
(draw-notice-screen self)
(draw-options self 140 0 0.82)
)
(((progress-screen no-disc) (progress-screen bad-disc))
(draw-notice-screen self)
(if (is-cd-in?)
(draw-options self 170 0 0.82)
(((progress-screen money))
(set! s5-0 #t)
(draw-money-screen self a1-0)
)
(((progress-screen buzzer))
(set! s5-0 #t)
(draw-buzzer-screen self a1-0)
)
(((progress-screen game-settings) (progress-screen settings))
(hide-progress-icons)
(draw-options self 115 30 (the-as float 0.82))
)
(((progress-screen graphic-settings)
(progress-screen sound-settings)
(progress-screen settings-title)
(progress-screen title)
)
(hide-progress-icons)
(draw-options self 115 30 (the-as float 0.82))
)
(((progress-screen memcard-removed) (progress-screen memcard-auto-save-error))
(draw-notice-screen self)
(draw-options self 192 0 (the-as float 0.82))
)
(((progress-screen memcard-no-data))
(draw-notice-screen self)
(draw-options self 165 0 (the-as float 0.82))
)
(((progress-screen memcard-format))
(draw-notice-screen self)
(draw-options self 172 0 (the-as float 0.82))
)
(((progress-screen memcard-no-space)
(progress-screen memcard-not-inserted)
(progress-screen memcard-not-formatted)
)
(draw-notice-screen self)
(draw-options self 195 0 (the-as float 0.82))
)
(((progress-screen memcard-error-loading)
(progress-screen memcard-error-saving)
(progress-screen memcard-error-formatting)
(progress-screen memcard-error-creating)
(progress-screen memcard-auto-save-error)
)
(draw-notice-screen self)
(draw-options self 190 0 (the-as float 0.82))
)
(((progress-screen pal-change-to-60hz))
(draw-notice-screen self)
(draw-options self 190 0 (the-as float 0.82))
)
(((progress-screen pal-now-60hz))
(when (< (seconds 10) (- (-> *display* real-frame-counter) (-> self video-mode-timeout)))
(set! (-> *progress-state* video-mode-choice) 'pal)
(set! (-> *setting-control* default video-mode) (-> *progress-state* video-mode-choice))
(set! (-> self next-display-state) (progress-screen invalid))
)
)
(((progress-screen quit))
(draw-notice-screen self)
(draw-options self 110 0 0.82)
)
(((progress-screen auto-save))
(draw-notice-screen self)
(draw-options self 190 0 0.82)
)
(((progress-screen memcard-insert))
(draw-notice-screen self)
(draw-options self 165 0 0.82)
)
(((progress-screen memcard-data-exists))
(draw-notice-screen self)
(draw-options self 168 0 0.82)
)
(((progress-screen memcard-loading)
(progress-screen memcard-saving)
(progress-screen memcard-formatting)
(progress-screen memcard-creating)
(draw-notice-screen self)
(draw-options self 140 0 (the-as float 0.82))
)
(((progress-screen no-disc) (progress-screen bad-disc))
(draw-notice-screen self)
(if (is-cd-in?)
(draw-options self 170 0 (the-as float 0.82))
)
)
(((progress-screen quit))
(draw-notice-screen self)
(draw-options self 110 0 (the-as float 0.82))
)
(((progress-screen auto-save))
(draw-notice-screen self)
(draw-options self 190 0 (the-as float 0.82))
)
(((progress-screen memcard-insert))
(draw-notice-screen self)
(draw-options self 165 0 (the-as float 0.82))
)
(((progress-screen memcard-data-exists))
(draw-notice-screen self)
(draw-options self 168 0 (the-as float 0.82))
)
(((progress-screen memcard-loading)
(progress-screen memcard-saving)
(progress-screen memcard-formatting)
(progress-screen memcard-creating)
)
(draw-notice-screen self)
)
(((progress-screen load-game) (progress-screen save-game))
(draw-notice-screen self)
(draw-options self 190 0 (the-as float 0.82))
)
(((progress-screen save-game-title))
(draw-notice-screen self)
(draw-options self 169 15 (the-as float 0.6))
)
)
(draw-notice-screen self)
)
(((progress-screen load-game) (progress-screen save-game))
(draw-notice-screen self)
(draw-options self 190 0 0.82)
)
(((progress-screen save-game-title))
(draw-notice-screen self)
(draw-options self 169 15 0.6)
)
)
(when s5-0
(let* ((v1-98 (cond
((-> self stat-transition)
0
)
((= (-> self level-transition) 1)
(- (-> self transition-offset))
)
(else
(-> self transition-offset)
(when s5-0
(let* ((v1-98 (cond
((-> self stat-transition)
0
)
((= (-> self level-transition) 1)
(- (-> self transition-offset))
)
(else
(-> self transition-offset)
)
)
)
)
(f30-0 (the-as float (if (-> self stat-transition)
1.0
(-> self transition-percentage-invert)
)
)
)
(s5-1
(new
'stack
'font-context
*font-default-matrix*
(- 32 (-> self left-x-offset))
(the int (* (+ 42.0 (the float (/ v1-98 2))) f30-0))
8325000.0
(font-color progress-blue)
(font-flags shadow kerning)
(f30-0 (the-as float (if (-> self stat-transition)
1.0
(-> self transition-percentage-invert)
)
)
)
(s5-1
(new
'stack
'font-context
*font-default-matrix*
(- 32 (-> self left-x-offset))
(the int (* (+ 42.0 (the float (/ v1-98 2))) f30-0))
(the-as float 8325000.0)
(font-color progress-blue)
(font-flags shadow kerning)
)
)
)
)
(let ((v1-103 s5-1))
(set! (-> v1-103 width) (the float 328))
)
(let ((v1-104 s5-1))
(set! (-> v1-104 height) (the float 45))
)
(set! (-> s5-1 flags) (font-flags shadow kerning middle left large))
(print-game-text-scaled
(lookup-text! *common-text* (-> gp-0 level-name-id) #f)
f30-0
s5-1
(the int (* 128.0 f30-0))
(let ((v1-103 s5-1))
(set! (-> v1-103 width) (the float 328))
)
(let ((v1-104 s5-1))
(set! (-> v1-104 height) (the float 45))
)
(set! (-> s5-1 flags) (font-flags shadow kerning middle left large))
(print-game-text-scaled
(lookup-text! *common-text* (-> gp-0 level-name-id) #f)
f30-0
s5-1
(the int (* 128.0 f30-0))
)
)
)
)
@@ -2201,21 +2125,18 @@
)
(defstate progress-coming-in (progress)
:event
(-> progress-waiting event)
:enter
(behavior ()
:event (-> progress-waiting event)
:enter (behavior ()
(sound-group-pause (sound-group sfx music dialog sog3 ambient sog5 sog6 sog7))
(logclear! (-> *setting-control* default process-mask) (process-mask pause menu))
(add-setting! 'process-mask 'set 0.0 16)
(add-setting! 'process-mask 'set 0.0 (process-mask progress))
(apply-settings *setting-control*)
(sound-play "select-menu")
(set-blackout-frames 0)
(set! *pause-lock* #f)
(none)
)
:code
(behavior ()
:code (behavior ()
(loop
(seekl! (-> self in-out-position) 0 (the int (* 170.0 (-> *display* time-adjust-ratio))))
(when (< (-> self in-out-position) 2867)
@@ -2233,13 +2154,11 @@
)
(none)
)
:post
(-> progress-normal post)
:post (-> progress-normal post)
)
(defstate progress-going-out (progress)
:enter
(behavior ()
:enter (behavior ()
(sound-play "menu-close")
(hide-progress-icons)
(set! (-> self particles 3 init-pos x) -320.0)
@@ -2251,8 +2170,7 @@
)
(none)
)
:code
(behavior ()
:code (behavior ()
(loop
(seekl!
(-> self transition-offset)
@@ -2270,21 +2188,18 @@
)
(none)
)
:post
(-> progress-normal post)
:post (-> progress-normal post)
)
(defstate progress-debug (progress)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(case event-type
(('go-away)
(go progress-going-out)
)
)
)
:code
(behavior ()
:code (behavior ()
(loop
(cond
((cpad-pressed? 0 left)
@@ -2332,8 +2247,7 @@
)
(none)
)
:post
(behavior ()
:post (behavior ()
(let* ((s5-0 (-> *display* frames (-> *display* on-screen) frame global-buf))
(gp-0 (-> s5-0 base))
)
@@ -2483,4 +2397,3 @@
(none)
)
)
+5 -5
View File
@@ -72,7 +72,7 @@
)
(defmethod init-from-entity! windmill-one ((obj windmill-one) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -292,7 +292,7 @@
(+! f30-0 f28-0)
)
(set! (-> s3-0 quad) (-> arg0 entity extra trans quad))
(set! (-> s3-0 y) (+ -4096.0 (-> s3-0 y)))
(+! (-> s3-0 y) -4096.0)
(spawn (-> arg0 part) s3-0)
(suspend)
0
@@ -678,7 +678,7 @@
)
(defmethod init-from-entity! ecoventrock ((obj ecoventrock) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
(logior! (-> obj mask) (process-mask enemy))
(let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player))))
(let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
(set! (-> s3-0 prim-core collide-as) (collide-kind enemy))
@@ -916,7 +916,7 @@
)
(defmethod init-from-entity! bladeassm ((obj bladeassm) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask ambient) (-> obj mask)))
(logior! (-> obj mask) (process-mask ambient))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -1419,7 +1419,7 @@
)
(defmethod init-from-entity! harvester ((obj harvester) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask ambient) (-> obj mask)))
(logior! (-> obj mask) (process-mask ambient))
(let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player))))
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 5) 0)))
(set! (-> s3-0 prim-core collide-as) (collide-kind background))
+4 -4
View File
@@ -273,8 +273,8 @@
(defstate idle (beach-rock)
:virtual #t
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(case event-type
(('trigger)
(set! (-> self trigger) #t)
(go-virtual falling)
@@ -319,8 +319,8 @@
(let ((gp-0 (new 'stack-no-clear 'vector)))
(set! (-> gp-0 quad) (-> self root-override trans quad))
(spawn (-> self part) gp-0)
(set! (-> gp-0 x) (+ 122880.0 (-> gp-0 x)))
(set! (-> gp-0 z) (+ 102400.0 (-> gp-0 z)))
(+! (-> gp-0 x) 122880.0)
(+! (-> gp-0 z) 102400.0)
(spawn (-> self part) gp-0)
)
)
+1 -1
View File
@@ -482,7 +482,7 @@ lurkerworm-default-post-behavior
)
(defmethod init-from-entity! lurkerworm ((obj lurkerworm) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
(logior! (-> obj mask) (process-mask enemy))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
+2 -2
View File
@@ -211,7 +211,7 @@
(set! (-> self state-object) #f)
(let ((gp-0 (-> self path-vector)))
(eval-path-curve-div! (-> self path-dive0) gp-0 4.5 'interp)
(set! (-> gp-0 y) (+ -4505.6 (-> gp-0 y)))
(+! (-> gp-0 y) -4505.6)
(let ((v1-8 (manipy-spawn gp-0 (-> self entity) *fuel-cell-sg* (new 'static 'vector :w 4915.2) :to self)))
(set! (-> self fuel-cell) (ppointer->handle v1-8))
(if v1-8
@@ -824,7 +824,7 @@
(let ((a0-7 (handle->process (-> self fuel-cell))))
(when a0-7
(set! (-> gp-2 quad) (-> (the-as process-drawable a0-7) root trans quad))
(set! (-> gp-2 y) (+ 8192.0 (-> gp-2 y)))
(+! (-> gp-2 y) 8192.0)
(deactivate a0-7)
)
)
+2 -2
View File
@@ -373,7 +373,7 @@
(none)
)
:code (behavior ()
(set! (-> self root-override trans y) (+ 20480.0 (-> self root-override trans y)))
(+! (-> self root-override trans y) 20480.0)
(move-to-ground (-> self root-override) 40960.0 40960.0 #t (collide-kind background))
(update-transforms! (-> self root-override))
(clear-collide-with-as (-> self root-override))
@@ -1362,7 +1362,7 @@
)
(set! (-> obj squall) (new 'process 'ambient-sound sound-seagull-squall (-> obj trans)))
(set! (-> obj teleport-frames) 0)
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
(logior! (-> obj mask) (process-mask enemy))
(go seagullflock-idle)
(none)
)
+2 -8
View File
@@ -1253,17 +1253,11 @@
(spawn (-> self part-mushroom) (-> self mushroom-pos))
)
(if (not (-> self mushroom))
(set! (-> *palette-fade-controls* control 3 fade) (+ 0.3333 (-> *palette-fade-controls* control 3 fade)))
(+! (-> *palette-fade-controls* control 3 fade) 0.3333)
)
(when (and *target* (>= 32768.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))))
(if (-> self mushroom)
(level-hint-spawn
(text-id citadel-generator)
"sksp0381"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn (text-id citadel-generator) "sksp0381" (the-as entity #f) *entity-pool* (game-task none))
(level-hint-spawn
(text-id citadel-generator-no-mushroom)
"sksp0384"
@@ -322,7 +322,7 @@
(set! (-> obj alt-actor) (the-as entity-actor v1-9))
(set! (-> obj spawn-pos quad) (-> obj root-override trans quad))
(set! (-> s5-1 quad) (-> v1-9 extra trans quad))
(set! (-> s5-1 y) (+ 81920.0 (-> s5-1 y)))
(+! (-> s5-1 y) 81920.0)
(vector-! s4-0 (-> obj spawn-pos) s5-1)
(set! (-> s4-0 y) 0.0)
(vector-normalize! s4-0 1.0)
+1 -1
View File
@@ -590,7 +590,7 @@
(set! (-> obj orig-trans quad) (-> obj root-overlay trans quad))
(quaternion-copy! (-> obj orig-quat) (-> obj root-overlay quat))
(set! (-> obj beam-end quad) (-> obj orig-trans quad))
(set! (-> obj beam-end y) (+ -49152.0 (-> obj beam-end y)))
(+! (-> obj beam-end y) -49152.0)
(rigid-body-platform-method-29 obj *citb-chain-plat-constants*)
(set! (-> obj idle-offset) 0.0)
(set! (-> obj float-offset) (res-lump-float (-> obj entity) 'height-info :default 4096.0))
@@ -372,13 +372,7 @@ battlecontroller-default-event-handler
(defbehavior battlecontroller-battle-end battlecontroller ()
(case (-> (level-get-target-inside *level*) name)
(('citadel)
(level-hint-spawn
(text-id citadel-battle-end)
"sksp0378"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn (text-id citadel-battle-end) "sksp0378" (the-as entity #f) *entity-pool* (game-task none))
)
)
(battlecontroller-off)
@@ -779,7 +773,7 @@ battlecontroller-default-event-handler
)
(defmethod init-from-entity! battlecontroller ((obj battlecontroller) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
(logior! (-> obj mask) (process-mask enemy))
(set! (-> obj root) (new 'process 'trsqv))
(process-drawable-from-entity! obj arg0)
(battlecontroller-method-27 obj)
@@ -66,7 +66,7 @@
(let ((s4-2 (new-stack-matrix0)))
(vector+! (-> self root trans) s5-0 gp-0)
(vector-float*! (-> self root trans) (-> self root trans) 0.5)
(set! (-> self root trans y) (+ 61440.0 (-> self root trans y)))
(+! (-> self root trans y) 61440.0)
(vector-! (the-as vector (-> s4-2 vector)) gp-0 s5-0)
(set! (-> self root scale x)
(* 0.00024414062 (vector-normalize-ret-len! (the-as vector (-> s4-2 vector)) 1.0))
@@ -120,7 +120,3 @@
(none)
)
)
@@ -66,11 +66,11 @@
:neck-joint 5
:player-look-at-joint 5
:run-travel-speed (meters 6)
:run-rotate-speed (degrees 360.0)
:run-rotate-speed (degrees 360)
:run-acceleration (meters 1)
:run-turn-time (seconds 0.1)
:walk-travel-speed (meters 3)
:walk-rotate-speed (degrees 360.0)
:walk-rotate-speed (degrees 360)
:walk-acceleration (meters 1)
:walk-turn-time (seconds 0.5)
:attack-shove-back (meters 3)
@@ -471,7 +471,7 @@
(setup-from-to-duration! (-> self traj) (-> self collide-info trans) (-> self appear-dest) 225.0 -9.102222)
(let ((gp-0 (new 'stack-no-clear 'vector)))
(set! (-> gp-0 quad) (-> self collide-info trans quad))
(set! (-> gp-0 y) (+ 8192.0 (-> gp-0 y)))
(+! (-> gp-0 y) 8192.0)
(process-spawn
part-tracker
:init part-tracker-init
@@ -797,7 +797,7 @@
)
(let ((gp-0 (new 'stack-no-clear 'vector)))
(set! (-> gp-0 quad) (-> self root trans quad))
(set! (-> gp-0 y) (+ -16384.0 (-> gp-0 y)))
(+! (-> gp-0 y) -16384.0)
(process-spawn green-eco-lurker (-> self entity) self gp-0 :to self)
)
(+! (-> self num-spawned) 1)
@@ -188,7 +188,7 @@
)
)
(set! (-> self particles 1 trans quad) (-> self root trans quad))
(set! (-> self particles 1 trans y) (+ 24576.0 (-> self particles 1 trans y)))
(+! (-> self particles 1 trans y) 24576.0)
(let ((s5-1 (-> arg3 param 1)))
(set! (-> self particles 2 kind)
(the-as basic (if (and (nonzero? s5-1) (type-type? (rtype-of s5-1) sparticle-launch-group))
@@ -344,7 +344,7 @@
(-> self root-override trans)
:to *entity-pool*
)
(set! (-> self next-tick) (+ -0.06 (-> self next-tick)))
(+! (-> self next-tick) -0.06)
(sound-play "robo-warning")
)
)
+5 -6
View File
@@ -244,7 +244,6 @@
(send-event (handle->process (-> self shot-attractor)) 'draw #f)
)
(defbehavior robotboss-yellow-eco-off robotboss ()
;; patches the one frame of ghost yellow eco bug that can
;; occcur under certain conditions when robot-boss-yellow-eco-off is called.
@@ -319,10 +318,10 @@
(set! (-> v1-23 quad) (-> (the-as process-drawable a0-16) root trans quad))
(cond
((< (-> v1-23 y) (+ -204.8 f0-10))
(set! (-> v1-23 y) (+ 20.48 (-> v1-23 y)))
(+! (-> v1-23 y) 20.48)
)
((< (+ 204.8 f0-10) (-> v1-23 y))
(set! (-> v1-23 y) (+ -20.48 (-> v1-23 y)))
(+! (-> v1-23 y) -20.48)
)
)
(send-event a0-16 'move-to v1-23)
@@ -647,7 +646,7 @@
(+! (-> self children-spawned) 1)
(let ((gp-0 (new 'stack-no-clear 'vector)))
(set! (-> gp-0 quad) (-> self entity extra trans quad))
(set! (-> gp-0 y) (+ 81920.0 (-> gp-0 y)))
(+! (-> gp-0 y) 81920.0)
(set! (-> self white-eco) (ppointer->handle (process-spawn light-eco-mother (-> self entity) gp-0 :to self)))
)
)
@@ -1404,7 +1403,7 @@
(vector-! s5-0 (-> self entity extra trans) s5-0)
(dotimes (v1-53 6)
(vector+! (the-as vector (-> arg0 info v1-53)) (the-as vector (-> arg0 info v1-53)) s5-0)
(set! (-> arg0 info v1-53 dest y) (+ 2048.0 (-> arg0 info v1-53 dest y)))
(+! (-> arg0 info v1-53 dest y) 2048.0)
)
)
(none)
@@ -1908,7 +1907,7 @@
(let ((s2-0 (new 'stack-no-clear 'vector)))
(vector<-cspace! gp-0 (-> self node-list data 68))
(set! (-> s2-0 quad) (-> self entity extra trans quad))
(set! (-> s2-0 y) (+ -40960.0 (-> s2-0 y)))
(+! (-> s2-0 y) -40960.0)
(vector+! s2-0 s2-0 arg0)
(process-spawn greenshot gp-0 s2-0 arg1 arg2 :to self)
)
@@ -558,7 +558,7 @@
)
)
(spawn (-> self part) *zero-vector*)
(set! (-> self credit-fade) (+ -0.008333334 (-> self credit-fade)))
(+! (-> self credit-fade) -0.008333334)
)
(none)
)
@@ -1041,7 +1041,7 @@
(set! (-> obj particle v1-37 active) #f)
)
(set! (-> obj palette-val) 0.0)
(set! (-> obj root-override trans y) (+ 2048.0 (-> obj root-override trans y)))
(+! (-> obj root-override trans y) 2048.0)
(if (not (should-display? obj))
(go (method-of-object obj hidden))
(go (method-of-object obj idle))
@@ -2039,7 +2039,7 @@
(rot->dir-targ! (-> self control))
(ja-post)
(vector<-cspace! gp-0 (-> self node-list data 3))
(set! (-> gp-0 y) (+ -5896.192 (-> gp-0 y)))
(+! (-> gp-0 y) -5896.192)
(move-to-point! (-> self control) gp-0)
)
(send-event *camera* 'ease-in)
+1 -1
View File
@@ -276,7 +276,7 @@
)
(defmethod init-from-entity! darkvine ((obj darkvine) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
(logior! (-> obj mask) (process-mask enemy))
(let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player))))
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 4) 0)))
(set! (-> s3-0 prim-core collide-as) (collide-kind enemy))
+4 -12
View File
@@ -1059,17 +1059,9 @@
)
(defbehavior fisher-draw-display fisher ((arg0 fisher))
(let ((s5-0 (new
'stack
'font-context
*font-default-matrix*
435
10
0.0
(font-color red)
(font-flags shadow kerning)
)
)
(let ((s5-0
(new 'stack 'font-context *font-default-matrix* 435 10 0.0 (font-color red) (font-flags shadow kerning))
)
)
(let ((v1-1 s5-0))
(set! (-> v1-1 width) (the float 200))
@@ -1994,7 +1986,7 @@
(let ((s5-0 (eval-path-curve-div! (-> obj path) (-> obj paddle-pos) 6.5 'interp))
(s4-0 (path-control-method-12 (-> obj path) (new-stack-vector0) 6.5))
)
(set! (-> s5-0 y) (+ 2457.6 (-> s5-0 y)))
(+! (-> s5-0 y) 2457.6)
(vector-normalize! (vector-rotate-y! s4-0 s4-0 16384.0) (-> *FISHER-bank* width))
(vector-! (the-as vector (-> obj paddle-end)) s5-0 s4-0)
(vector+! (the-as vector (&-> obj stack 288)) s5-0 s4-0)
+1 -1
View File
@@ -45,7 +45,7 @@ nav-enemy-default-event-handler
(f30-0 61440.0)
)
(set! (-> s5-0 quad) (-> arg0 quad))
(set! (-> s5-0 y) (+ 20480.0 (-> s5-0 y)))
(+! (-> s5-0 y) 20480.0)
(let ((f0-2 (fill-and-probe-using-y-probe
*collide-cache*
s5-0
@@ -1433,7 +1433,7 @@
(+! (-> self tilt) (-> v1-10 1))
)
(else
(set! (-> self turn) (+ 910.2222 (-> self turn)))
(+! (-> self turn) 910.2222)
)
)
)
@@ -1817,7 +1817,7 @@
:code (behavior ()
(let ((gp-0 (new-stack-vector0)))
(set! (-> gp-0 quad) (-> self root-override trans quad))
(set! (-> gp-0 y) (+ 49152.0 (-> gp-0 y)))
(+! (-> gp-0 y) 49152.0)
(loop
(draw-power-beam gp-0 (-> self beam-end))
(update! (-> self sound))
+8 -8
View File
@@ -84,7 +84,7 @@
)
(defmethod init-from-entity! logtrap ((obj logtrap) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
(logior! (-> obj mask) (process-mask enemy))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -144,7 +144,7 @@
)
(defmethod init-from-entity! towertop ((obj towertop) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask ambient) (-> obj mask)))
(logior! (-> obj mask) (process-mask ambient))
(set! (-> obj root-override) (new 'process 'trsq))
(process-drawable-from-entity! obj arg0)
(logclear! (-> obj mask) (process-mask actor-pause))
@@ -207,7 +207,7 @@
)
(defmethod init-from-entity! lurkerm-tall-sail ((obj lurkerm-tall-sail) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -299,7 +299,7 @@
)
(defmethod init-from-entity! lurkerm-short-sail ((obj lurkerm-short-sail) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -412,7 +412,7 @@
(defmethod init-from-entity! lurkerm-piston ((obj lurkerm-piston) (arg0 entity-actor))
(local-vars (sv-16 res-tag) (sv-32 res-tag))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -722,7 +722,7 @@
(logior! (-> self mask) (process-mask actor-pause))
(loop
(if (not (movie?))
(set! (-> self mask) (logior (process-mask platform) (-> self mask)))
(logior! (-> self mask) (process-mask platform))
)
(cond
((and *target* (>= 61440.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans))))
@@ -749,7 +749,7 @@
(defmethod init-from-entity! precurbridge ((obj precurbridge) (arg0 entity-actor))
(stack-size-set! (-> obj main-thread) 512)
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -1150,7 +1150,7 @@
)
(defmethod init-from-entity! jngpusher ((obj jngpusher) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask enemy platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask enemy platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
+3 -3
View File
@@ -244,7 +244,7 @@ junglesnake-default-event-handler
(set! (-> s4-2 w) 1.0)
(let ((s1-2 (new 'stack-no-clear 'vector)))
(vector-! s1-2 (target-pos 0) (-> s2-1 vector 3))
(set! (-> s1-2 y) (+ 9011.2 (-> s1-2 y)))
(+! (-> s1-2 y) 9011.2)
(vector-normalize! s1-2 1.0)
(let ((s0-2 (new 'stack-no-clear 'vector))
(s3-4 (new 'stack-no-clear 'vector))
@@ -547,7 +547,7 @@ junglesnake-default-event-handler
(let ((s5-0 (new 'stack-no-clear 'vector)))
(set! (-> gp-0 quad) (-> self root-override trans quad))
(set! (-> s5-0 quad) (-> gp-0 quad))
(set! (-> s5-0 y) (+ 131072.0 (-> s5-0 y)))
(+! (-> s5-0 y) 131072.0)
(ja-no-eval :group! junglesnake-give-up-ja :num! (seek! max 0.5) :frame-num 0.0)
(until (ja-done? 0)
(let* ((f0-6 (ja-frame-num 0))
@@ -682,7 +682,7 @@ junglesnake-default-event-handler
)
(defmethod init-from-entity! junglesnake ((obj junglesnake) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
(logior! (-> obj mask) (process-mask enemy))
(let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player))))
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 9) 0)))
(set! (-> s3-0 prim-core collide-as) (collide-kind enemy))
+12 -18
View File
@@ -37,19 +37,17 @@
)
(defstate plat-flip-idle (plat-flip)
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (cond
((= v1-0 'bonk)
(activate! (-> self smush) -1.0 90 300 1.0 1.0)
)
((= v1-0 'touch)
(send-event arg0 'no-look-around (seconds 1.5))
(the-as smush-control #f)
)
)
)
)
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(the-as object (case event-type
(('bonk)
(activate! (-> self smush) -1.0 90 300 1.0 1.0)
)
(('touch)
(send-event proc 'no-look-around (seconds 1.5))
(the-as smush-control #f)
)
)
)
)
:trans (the-as (function none :behavior plat-flip) rider-trans)
:code (behavior ()
@@ -109,7 +107,7 @@
(defmethod init-from-entity! plat-flip ((obj plat-flip) (arg0 entity-actor))
(local-vars (sv-16 res-tag) (sv-32 res-tag) (sv-48 res-tag))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -183,7 +181,3 @@
(go plat-flip-idle)
(none)
)
@@ -829,7 +829,7 @@
)
(defun energyball-init ((arg0 energyball))
(set! (-> arg0 mask) (logior (process-mask attackable) (-> arg0 mask)))
(logior! (-> arg0 mask) (process-mask attackable))
(let ((s5-0 (new 'process 'collide-shape-moving arg0 (collide-list-enum usually-hit-by-player))))
(set! (-> s5-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s5-0 reaction) default-collision-reaction)
@@ -1154,10 +1154,10 @@
)
(cond
((< 65536.0 (-> self y-rotation))
(set! (-> self y-rotation) (+ -65536.0 (-> self y-rotation)))
(+! (-> self y-rotation) -65536.0)
)
((< (-> self y-rotation) 0.0)
(set! (-> self y-rotation) (+ 65536.0 (-> self y-rotation)))
(+! (-> self y-rotation) 65536.0)
)
)
(let ((gp-0 (new 'stack-no-clear 'matrix)))
@@ -460,7 +460,7 @@
)
(eval-path-curve! (-> self path) (-> self root-override trans) f30-0 'interp)
(+! (-> self root-override trans y) (* 4096.0 (-> self y-offset osc value)))
(set! (-> self root-override trans y) (+ -4096.0 (-> self root-override trans y)))
(+! (-> self root-override trans y) -4096.0)
(let ((s5-0 (new 'stack-no-clear 'vector))
(gp-0 (new 'stack-no-clear 'matrix))
)
@@ -503,7 +503,7 @@
(sound-play "dcrate-break")
(let ((gp-1 (new 'stack-no-clear 'vector)))
(set! (-> gp-1 quad) (-> self root-override trans quad))
(set! (-> gp-1 y) (+ -49152.0 (-> gp-1 y)))
(+! (-> gp-1 y) -49152.0)
(process-spawn
part-tracker
:init part-tracker-init
@@ -666,7 +666,7 @@
(set-params! (-> self down-tgt) 300 600 0.05 0.9)
(darkecobarrel-mover-pos)
(logclear! (-> self mask) (process-mask actor-pause))
(set! (-> self mask) (logior (process-mask attackable) (-> self mask)))
(logior! (-> self mask) (process-mask attackable))
(go darkecobarrel-mover-move)
(none)
)
@@ -1021,7 +1021,7 @@
(sound-play "dcrate-break")
(let ((gp-1 (new 'stack-no-clear 'vector)))
(set! (-> gp-1 quad) (-> self root-override trans quad))
(set! (-> gp-1 y) (+ -73728.0 (-> gp-1 y)))
(+! (-> gp-1 y) -73728.0)
(process-spawn
part-tracker
:init part-tracker-init
@@ -1072,7 +1072,7 @@
)
(defmethod init-from-entity! chainmine ((obj chainmine) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask attackable) (-> obj mask)))
(logior! (-> obj mask) (process-mask attackable))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -1316,7 +1316,7 @@
(set! (-> v1-2 waveform) ripple-for-lavatube-lava)
)
(logclear! (-> obj flags) (water-flags wt23))
(set! (-> obj flags) (logior (water-flags wt25) (-> obj flags)))
(logior! (-> obj flags) (water-flags wt25))
(set! (-> obj attack-event) 'heat)
(none)
)
+3 -3
View File
@@ -268,7 +268,7 @@ baby-spider-default-event-handler
(defmethod nav-enemy-method-52 baby-spider ((obj baby-spider) (arg0 vector))
(+! (-> obj wiggle-angle) (* DISPLAY_FPS_RATIO (-> obj delta-wiggle-angle))) ;; changed for high fps
(if (< 65536.0 (-> obj wiggle-angle))
(set! (-> obj wiggle-angle) (+ -65536.0 (-> obj wiggle-angle)))
(+! (-> obj wiggle-angle) -65536.0)
)
(let* ((v1-3 (-> obj collide-info trans))
(a1-2 (vector-! (new 'stack-no-clear 'vector) v1-3 arg0))
@@ -717,7 +717,7 @@ baby-spider-default-event-handler
(forward-up->quaternion (-> self collide-info quat) arg2 *up-vector*)
(vector-float*! (-> self collide-info scale) *identity-vector* 0.63)
(vector-float*! (-> self collide-info transv) arg2 8192.0)
(set! (-> self mask) (logior (process-mask enemy) (-> self mask)))
(logior! (-> self mask) (process-mask enemy))
(set! (-> self entity) (-> arg0 entity))
(nav-enemy-method-48 self)
(set! (-> self enemy-info pickup-type) (the-as pickup-type (-> arg3 pickup)))
@@ -751,7 +751,7 @@ baby-spider-default-event-handler
(set! (-> obj event-death) #f)
(initialize-collision obj)
(process-drawable-from-entity! obj arg0)
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
(logior! (-> obj mask) (process-mask enemy))
(logior! (-> obj mask) (process-mask actor-pause))
(set! (-> obj nav) (new 'process 'nav-control (-> obj collide-info) 24 40960.0))
(logior! (-> obj nav flags) (nav-control-flags display-marks navcf3 navcf5 navcf6 navcf7))
@@ -569,9 +569,9 @@
(s4-0 (new 'stack-no-clear 'vector))
)
(set! (-> s5-0 quad) (-> obj root-override trans quad))
(set! (-> s5-0 y) (+ 6144.0 (-> s5-0 y)))
(+! (-> s5-0 y) 6144.0)
(set! (-> s3-0 quad) (-> (target-pos 0) quad))
(set! (-> s3-0 y) (+ 6144.0 (-> s3-0 y)))
(+! (-> s3-0 y) 6144.0)
(when (>= (-> obj explode-danger-radius) (vector-vector-distance s5-0 s3-0))
(vector-! s4-0 s3-0 s5-0)
(let ((t2-0 (new 'stack-no-clear 'collide-tri-result)))
@@ -618,7 +618,7 @@
(set-vector! (-> obj unlit-color-emissive) 0.0 0.0 0.0 0.0)
(set-vector! (-> obj lit-color-mult) 1.0 1.0 1.0 1.0)
(set-vector! (-> obj lit-color-emissive) 1.0 1.0 1.0 0.0)
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
(logior! (-> obj mask) (process-mask enemy))
(let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
(let ((s3-0 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
(set! (-> s3-0 prim-core collide-as) (collide-kind wall-object))
@@ -635,7 +635,7 @@
)
(process-drawable-from-entity! obj arg0)
(initialize-skeleton obj *dark-crystal-sg* '())
(set! (-> obj mask) (logior (process-mask attackable) (-> obj mask)))
(logior! (-> obj mask) (process-mask attackable))
(set! (-> obj draw color-mult quad) (-> obj unlit-color-mult quad))
(set! (-> obj draw color-emissive quad) (-> obj unlit-color-emissive quad))
(set! (-> obj underwater?) (= (res-lump-value arg0 'mode uint128) 1))
@@ -409,7 +409,7 @@
)
(when (< 16384.0 (fabs (deg- (-> obj facing-ry) (-> obj path-ry))))
(set! (-> obj path-dir) (- (-> obj path-dir)))
(set! (-> obj path-ry) (+ 32768.0 (-> obj path-ry)))
(+! (-> obj path-ry) 32768.0)
)
)
)
@@ -1007,7 +1007,7 @@
(set! (-> obj started-chasing-time) 0)
(set! (-> obj player-attack-id) (the-as uint 0))
(set! (-> obj ambient-drilling-u) -1.0)
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
(logior! (-> obj mask) (process-mask enemy))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
+13 -34
View File
@@ -135,38 +135,17 @@
(new 'static 'inline-array gnawer-segment-info 10
(new 'static 'gnawer-segment-info
:num-joints 8
:joint-index (new 'static 'array int8 8 4 #x1f #xd #x20 #x21 #x22 #x23 #x24)
:joint-index (new 'static 'array int8 8 4 31 13 32 33 34 35 36)
)
(new 'static 'gnawer-segment-info :num-joints 3 :joint-index (new 'static 'array int8 8 5 #xe #xf 0 0 0 0 0))
(new 'static 'gnawer-segment-info
:num-joints 3
:joint-index (new 'static 'array int8 8 #x6 #x10 #x11 0 0 0 0 0)
)
(new 'static 'gnawer-segment-info
:num-joints 3
:joint-index (new 'static 'array int8 8 #x7 #x12 #x13 0 0 0 0 0)
)
(new 'static 'gnawer-segment-info
:num-joints 3
:joint-index (new 'static 'array int8 8 #x8 #x14 #x15 0 0 0 0 0)
)
(new 'static 'gnawer-segment-info
:num-joints 3
:joint-index (new 'static 'array int8 8 #x9 #x16 #x17 0 0 0 0 0)
)
(new 'static 'gnawer-segment-info
:num-joints 3
:joint-index (new 'static 'array int8 8 #xa #x18 #x19 0 0 0 0 0)
)
(new 'static 'gnawer-segment-info
:num-joints 3
:joint-index (new 'static 'array int8 8 #xb #x1a #x1b 0 0 0 0 0)
)
(new 'static 'gnawer-segment-info
:num-joints 3
:joint-index (new 'static 'array int8 8 #xc #x1c #x1d 0 0 0 0 0)
)
(new 'static 'gnawer-segment-info :num-joints 1 :joint-index (new 'static 'array int8 8 #x1e 0 0 0 0 0 0 0))
(new 'static 'gnawer-segment-info :num-joints 3 :joint-index (new 'static 'array int8 8 5 14 15 0 0 0 0 0))
(new 'static 'gnawer-segment-info :num-joints 3 :joint-index (new 'static 'array int8 8 6 16 17 0 0 0 0 0))
(new 'static 'gnawer-segment-info :num-joints 3 :joint-index (new 'static 'array int8 8 7 18 19 0 0 0 0 0))
(new 'static 'gnawer-segment-info :num-joints 3 :joint-index (new 'static 'array int8 8 8 20 21 0 0 0 0 0))
(new 'static 'gnawer-segment-info :num-joints 3 :joint-index (new 'static 'array int8 8 9 22 23 0 0 0 0 0))
(new 'static 'gnawer-segment-info :num-joints 3 :joint-index (new 'static 'array int8 8 10 24 25 0 0 0 0 0))
(new 'static 'gnawer-segment-info :num-joints 3 :joint-index (new 'static 'array int8 8 11 26 27 0 0 0 0 0))
(new 'static 'gnawer-segment-info :num-joints 3 :joint-index (new 'static 'array int8 8 12 28 29 0 0 0 0 0))
(new 'static 'gnawer-segment-info :num-joints 1 :joint-index (new 'static 'array int8 8 30 0 0 0 0 0 0 0))
)
)
@@ -374,7 +353,7 @@
(defbehavior gnawer-falling-segment-init-by-other gnawer-falling-segment ((arg0 gnawer) (arg1 vector) (arg2 vector))
(set! (-> self entity) (-> arg0 entity))
(set! (-> self mask) (logior (process-mask enemy) (-> self mask)))
(logior! (-> self mask) (process-mask enemy))
(set! (-> self root) (new 'process 'trsqv))
(set! (-> self root trans quad) (-> arg1 quad))
(vector-identity! (-> self root scale))
@@ -688,7 +667,7 @@
(dotimes (s5-0 3)
(when (> (-> obj hit-points) 0)
(+! (-> obj hit-points) -1)
(set! (-> obj speed) (+ 4096.0 (-> obj speed)))
(+! (-> obj speed) 4096.0)
(when (> (-> obj hit-points) 0)
(set! (-> obj show-damage?) #t)
(let ((s4-0 (+ (-> obj hit-points) 2)))
@@ -1456,7 +1435,7 @@
(let ((f0-40 (res-lump-float (-> obj entity) 'rotoffset)))
(quaternion-rotate-y! (-> obj root-override quat) (-> obj root-override quat) f0-40)
)
(set! (-> obj root-override trans y) (+ -2048.0 (-> obj root-override trans y)))
(+! (-> obj root-override trans y) -2048.0)
(set! sv-16 (new 'static 'res-tag))
(let ((v1-81 (res-lump-data arg0 'trans-offset (pointer float) :tag-ptr (& sv-16))))
(when v1-81
@@ -315,7 +315,7 @@
)
(defmethod init-from-entity! cavetrapdoor ((obj cavetrapdoor) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -701,7 +701,7 @@
)
(defmethod init-from-entity! cavespatula ((obj cavespatula) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -813,7 +813,7 @@
)
(defmethod init-from-entity! cavespatulatwo ((obj cavespatulatwo) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -1161,7 +1161,7 @@
(local-vars (v1-43 int) (sv-16 res-tag))
(set! (-> obj prev-frame-num) 10000.0)
(set! (-> obj last-update-bounce-time) 0)
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -168,7 +168,7 @@
(a2-1 (new 'stack-no-clear 'vector))
)
(set! (-> a1-1 quad) (-> obj root-override trans quad))
(set! (-> a1-1 y) (+ 1228.8 (-> a1-1 y)))
(+! (-> a1-1 y) 1228.8)
(set-vector! a2-1 0.0 -61440.0 0.0 1.0)
(cond
((>= (fill-and-probe-using-line-sphere
@@ -501,8 +501,8 @@
(set-vector! (-> self root-override scale) 0.3 0.3 0.3 1.0)
(quaternion-copy! (-> self root-override quat) (-> self parent-override 0 root-override quat))
(logior! (-> self mask) (process-mask actor-pause))
(set! (-> self mask) (logior (process-mask enemy) (-> self mask)))
(set! (-> self mask) (logior (process-mask attackable) (-> self mask)))
(logior! (-> self mask) (process-mask enemy))
(logior! (-> self mask) (process-mask attackable))
(initialize-skeleton self *mother-spider-egg-unbroken-sg* '())
(setup-lods! (-> self broken-look) *mother-spider-egg-broken-sg* (-> self draw art-group) (-> self entity))
(set! (-> self draw shadow-ctrl) (new 'process 'shadow-control 0.0 0.0 614400.0 (the-as float 60) 245760.0))
@@ -316,7 +316,7 @@
(logclear! (-> obj mask) (process-mask enemy))
(logclear! (-> obj mask) (process-mask crate))
(logclear! (-> obj mask) (process-mask attackable))
(set! (-> obj mask) (logior (process-mask projectile) (-> obj mask)))
(logior! (-> obj mask) (process-mask projectile))
0
(none)
)
@@ -330,7 +330,7 @@
(set! (-> obj attack-mode) 'mother-spider-proj)
(set! (-> obj timeout) (seconds 4))
(set! (-> obj target quad) (-> (target-pos 0) quad))
(set! (-> obj target y) (+ 4915.2 (-> obj target y)))
(+! (-> obj target y) 4915.2)
(set! (-> obj target-base quad) (-> obj target quad))
(set! (-> obj sound-id) (sound-play "mother-track"))
(sound-play "mother-fire")
@@ -346,7 +346,7 @@
)
(let ((gp-0 (-> obj target)))
(set! (-> gp-0 quad) (-> (target-pos 0) quad))
(set! (-> gp-0 y) (+ 4915.2 (-> gp-0 y)))
(+! (-> gp-0 y) 4915.2)
(let ((f0-2 (vector-vector-distance gp-0 (-> obj root-override trans)))
(a2-0 (new 'stack-no-clear 'vector))
)
+12 -12
View File
@@ -178,7 +178,7 @@
(defbehavior mother-spider-leg-init-by-other mother-spider-leg ((arg0 mother-spider) (arg1 vector) (arg2 vector) (arg3 vector))
(set! (-> self entity) (-> arg0 entity))
(set! (-> self mask) (logior (process-mask enemy) (-> self mask)))
(logior! (-> self mask) (process-mask enemy))
(set! (-> self root) (new 'process 'trsqv))
(set! (-> self root trans quad) (-> arg1 quad))
(vector-identity! (-> self root scale))
@@ -253,7 +253,7 @@
)
(set! (-> gp-0 y) 0.0)
(vector-normalize! gp-0 1.0)
(set! (-> self thread-vel) (+ -40960.0 (-> self thread-vel)))
(+! (-> self thread-vel) -40960.0)
(if (mother-spider-method-21 self gp-0 102400.0 #t)
(go mother-spider-die)
)
@@ -270,7 +270,7 @@
)
(set! (-> gp-1 y) 0.0)
(vector-normalize! gp-1 1.0)
(set! (-> self thread-vel) (+ -40960.0 (-> self thread-vel)))
(+! (-> self thread-vel) -40960.0)
(if (mother-spider-method-21 self gp-1 102400.0 #t)
(go mother-spider-die)
)
@@ -292,7 +292,7 @@
)
(set! (-> gp-2 y) 0.0)
(vector-normalize! gp-2 1.0)
(set! (-> self thread-vel) (+ -8192.0 (-> self thread-vel)))
(+! (-> self thread-vel) -8192.0)
(mother-spider-method-21 self gp-2 40960.0 #f)
)
)
@@ -399,7 +399,7 @@
)
(set! (-> a1-0 quad) (-> obj root-override trans quad))
(set-vector! a2-0 0.0 -81920.0 0.0 1.0)
(set! (-> a1-0 y) (+ -8192.0 (-> a1-0 y)))
(+! (-> a1-0 y) -8192.0)
(cond
((>= (fill-and-probe-using-line-sphere
*collide-cache*
@@ -1063,7 +1063,7 @@
(when (sphere-in-view-frustum? (the-as sphere gp-2))
(vector<-cspace! gp-2 (-> self node-list data 21))
(set! (-> s5-2 quad) (-> (target-pos 0) quad))
(set! (-> s5-2 y) (+ 4915.2 (-> s5-2 y)))
(+! (-> s5-2 y) 4915.2)
(cond
((< 24576.0 (vector-vector-distance gp-2 s5-2))
(go mother-spider-spit)
@@ -1170,7 +1170,7 @@
)
(vector<-cspace! s4-0 (-> self node-list data 21))
(set! (-> s5-0 quad) (-> (target-pos 0) quad))
(set! (-> s5-0 y) (+ 4915.2 (-> s5-0 y)))
(+! (-> s5-0 y) 4915.2)
(when (< 24576.0 (vector-vector-distance s5-0 s4-0))
(let ((a2-1 (-> self node-list data 19 bone transform)))
(set-vector! s2-0 0.0 0.0 1.0 1.0)
@@ -1385,7 +1385,7 @@
(s3-2 (new 'stack-no-clear 'collide-tri-result))
)
(set! (-> a1-12 quad) (-> arg0 quad))
(set! (-> a1-12 y) (+ 8192.0 (-> a1-12 y)))
(+! (-> a1-12 y) 8192.0)
(cond
((>= (fill-and-probe-using-line-sphere
*collide-cache*
@@ -1469,7 +1469,7 @@
(vector-! s2-0 s2-0 s3-0)
(vector-normalize! s2-0 1.0)
(set! (-> s1-0 quad) (-> s2-0 quad))
(set! (-> s1-0 y) (+ 0.3 (-> s1-0 y)))
(+! (-> s1-0 y) 0.3)
(vector-normalize! s1-0 1.0)
(process-spawn mother-spider-leg self s3-0 s2-0 s1-0 :to self)
)
@@ -1660,7 +1660,7 @@
(set! (-> obj activate-z-thresh) -12288.0)
(set! (-> obj deactivate-z-thresh) 24985.6)
)
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
(logior! (-> obj mask) (process-mask enemy))
(let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 9) 0)))
(set! (-> s3-0 prim-core collide-as) (collide-kind mother-spider))
@@ -1788,8 +1788,8 @@
(set! (-> obj deactivate-xz-dist) (-> (the-as (pointer float) v0-31) 7))
)
(else
(set! (-> obj thread-min-trans y) (+ 28672.0 (-> obj thread-min-trans y)))
(set! (-> obj anchor-trans y) (+ 204800.0 (-> obj anchor-trans y)))
(+! (-> obj thread-min-trans y) 28672.0)
(+! (-> obj anchor-trans y) 204800.0)
(set! (-> obj max-spit-xz-dist) 81920.0)
(set! (-> obj activate-xz-dist) 143360.0)
(set! (-> obj deactivate-xz-dist) 163430.4)
+1 -5
View File
@@ -126,7 +126,7 @@
)
(defmethod init-from-entity! spiderwebs ((obj spiderwebs) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -168,7 +168,3 @@
(go spiderwebs-idle)
(none)
)
+2 -2
View File
@@ -931,7 +931,7 @@
)
(defbehavior balloonlurker-pilot-init-by-other balloonlurker-pilot ((arg0 balloonlurker))
(set! (-> self mask) (logior (process-mask enemy) (-> self mask)))
(logior! (-> self mask) (process-mask enemy))
(balloonlurker-pilot-method-20 self)
(logclear! (-> self mask) (process-mask actor-pause))
(set! (-> self fact)
@@ -1065,7 +1065,7 @@
;; WARN: Function (method 11 balloonlurker) has a return type of none, but the expression builder found a return statement.
(defmethod init-from-entity! balloonlurker ((obj balloonlurker) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
(logior! (-> obj mask) (process-mask enemy))
(rigid-body-platform-method-30 obj)
(process-drawable-from-entity! obj arg0)
(rigid-body-platform-method-31 obj)
+1 -1
View File
@@ -582,7 +582,7 @@
;; WARN: Function (method 11 keg-conveyor) has a return type of none, but the expression builder found a return statement.
(defmethod init-from-entity! keg-conveyor ((obj keg-conveyor) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask enemy death) (-> obj mask)))
(logior! (-> obj mask) (process-mask enemy death))
(set! (-> obj root) (new 'process 'trsqv))
(process-drawable-from-entity! obj arg0)
(initialize-skeleton obj *keg-conveyor-sg* '())
+4 -4
View File
@@ -1057,7 +1057,7 @@
)
(defmethod init-from-entity! boatpaddle ((obj boatpaddle) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask ambient) (-> obj mask)))
(logior! (-> obj mask) (process-mask ambient))
(set! (-> obj root) (new 'process 'trsqv))
(process-drawable-from-entity! obj arg0)
(initialize-skeleton obj *boatpaddle-sg* '())
@@ -1116,7 +1116,7 @@
)
(defmethod init-from-entity! windturbine ((obj windturbine) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask ambient) (-> obj mask)))
(logior! (-> obj mask) (process-mask ambient))
(set! (-> obj root) (new 'process 'trsqv))
(process-drawable-from-entity! obj arg0)
(logclear! (-> obj mask) (process-mask actor-pause))
@@ -1277,7 +1277,7 @@
)
(defmethod init-from-entity! mis-bone-bridge ((obj mis-bone-bridge) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-others))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -1440,7 +1440,7 @@
)
(defmethod init! breakaway ((obj breakaway) (arg0 res-lump) (arg1 int))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
+3 -3
View File
@@ -48,7 +48,7 @@
(set! (-> arg0 min) arg1)
(set! (-> arg0 range) (the float (sar (shl (the int (- arg2 arg1)) 48) 48)))
(if (< (-> arg0 range) 0.0)
(set! (-> arg0 range) (+ 65536.0 (-> arg0 range)))
(+! (-> arg0 range) 65536.0)
)
(set! (-> arg0 value) (* 0.5 (-> arg0 range)))
(set! (-> arg0 speed) arg3)
@@ -958,7 +958,7 @@
(defbehavior mistycannon-missile-init-by-other mistycannon-missile ((arg0 mistycannon-init-data) (arg1 entity-actor))
(set! (-> self mask) (logior (process-mask projectile) (-> self mask)))
(logior! (-> self mask) (process-mask projectile))
(logclear! (-> self mask) (process-mask actor-pause))
(set! (-> self entity) arg1)
(let ((s5-0 (new 'process 'collide-shape-moving self (collide-list-enum hit-by-player))))
@@ -1687,7 +1687,7 @@
(defmethod init-from-entity! mistycannon ((obj mistycannon) (arg0 entity-actor))
(local-vars (sv-16 res-tag) (sv-32 res-tag) (sv-48 res-tag))
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
(logior! (-> obj mask) (process-mask enemy))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-others))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
+1 -1
View File
@@ -47,7 +47,7 @@
(t9-0 obj)
)
(logclear! (-> obj flags) (water-flags wt23))
(set! (-> obj flags) (logior (water-flags wt18) (-> obj flags)))
(logior! (-> obj flags) (water-flags wt18))
(let ((gp-0 (new 'process 'ripple-control)))
(set! (-> obj draw ripple) gp-0)
(set! (-> gp-0 global-scale) 3072.0)
+1 -1
View File
@@ -470,7 +470,7 @@ nav-enemy-default-event-handler
(defmethod init-from-entity! muse ((obj muse) (arg0 entity-actor))
(stack-size-set! (-> obj main-thread) 512)
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
(logior! (-> obj mask) (process-mask enemy))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -891,7 +891,7 @@
)
(defmethod init-from-entity! quicksandlurker ((obj quicksandlurker) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
(logior! (-> obj mask) (process-mask enemy))
(let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 3) 0)))
(set! (-> s3-0 prim-core collide-as) (collide-kind enemy))
@@ -929,7 +929,7 @@
(set! (-> obj root-override) s4-0)
)
(process-drawable-from-entity! obj arg0)
(set! (-> obj root-override trans y) (+ -2048.0 (-> obj root-override trans y)))
(+! (-> obj root-override trans y) -2048.0)
(set! (-> obj original-position quad) (-> obj root-override trans quad))
(set! (-> obj theta-angle) (rand-vu-float-range 0.0 65536.0))
(set! (-> obj bob-angle) (rand-vu-float-range 0.0 65536.0))
+3 -3
View File
@@ -352,7 +352,7 @@
(a2-0 (new 'stack-no-clear 'vector))
)
(set! (-> a1-1 quad) (-> obj root trans quad))
(set! (-> a1-1 y) (+ -8192.0 (-> a1-1 y)))
(+! (-> a1-1 y) -8192.0)
(set-vector! a2-0 0.0 -81920.0 0.0 1.0)
(when (>= (fill-and-probe-using-line-sphere
*collide-cache*
@@ -536,7 +536,7 @@
)
)
(+! (-> self root trans y) (-> self y-offset))
(set! (-> self root trans y) (+ 12288.0 (-> self root trans y)))
(+! (-> self root trans y) 12288.0)
(none)
)
@@ -736,7 +736,7 @@
(suspend)
(when (>= (- (-> *display* base-frame-counter) (-> self last-look-time)) (-> self time-to-next-look))
(ja-channel-push! 1 (seconds 0.2))
(ja-no-eval :group! (-> self draw art-group data 6) :num! (seek!) :frame-num 0.0)
(ja-no-eval :group! flying-lurker-look-ja :num! (seek!) :frame-num 0.0)
(until (ja-done? 0)
(suspend)
(ja :num! (seek!))
+6 -6
View File
@@ -786,7 +786,7 @@
(defmethod rigid-body-platform-method-31 ogre-isle-b ((obj ogre-isle-b))
(set! (-> obj root-overlay trans x) (+ -8192.0 (-> obj root-overlay trans x)))
(+! (-> obj root-overlay trans x) -8192.0)
(set-vector! (-> obj root-overlay root-prim local-sphere) 0.0 8192.0 0.0 24576.0)
(initialize-skeleton obj *ogre-isle-b-sg* '())
((the-as (function ogre-isle none) (find-parent-method ogre-isle-b 31)) obj)
@@ -795,7 +795,7 @@
)
(defmethod rigid-body-platform-method-31 ogre-isle-c ((obj ogre-isle-c))
(set! (-> obj root-overlay trans x) (+ -8192.0 (-> obj root-overlay trans x)))
(+! (-> obj root-overlay trans x) -8192.0)
(set-vector! (-> obj root-overlay root-prim local-sphere) 0.0 8192.0 0.0 24576.0)
(initialize-skeleton obj *ogre-isle-b-sg* '())
((the-as (function ogre-isle none) (find-parent-method ogre-isle-c 31)) obj)
@@ -804,8 +804,8 @@
)
(defmethod rigid-body-platform-method-31 ogre-isle-d ((obj ogre-isle-d))
(set! (-> obj root-overlay trans x) (+ -8192.0 (-> obj root-overlay trans x)))
(set! (-> obj root-overlay trans z) (+ -8192.0 (-> obj root-overlay trans z)))
(+! (-> obj root-overlay trans x) -8192.0)
(+! (-> obj root-overlay trans z) -8192.0)
(set-vector! (-> obj root-overlay root-prim local-sphere) 0.0 8192.0 0.0 22528.0)
(initialize-skeleton obj *ogre-isle-d-sg* '())
((the-as (function ogre-isle none) (find-parent-method ogre-isle-d 31)) obj)
@@ -988,7 +988,7 @@
(defmethod init-from-entity! ogre-bridge ((obj ogre-bridge) (arg0 entity-actor))
(stack-size-set! (-> obj main-thread) 512)
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -1323,7 +1323,7 @@
(set! (-> v1-2 waveform) ripple-for-ogre-lava)
)
(logclear! (-> obj flags) (water-flags wt23))
(set! (-> obj flags) (logior (water-flags wt25) (-> obj flags)))
(logior! (-> obj flags) (water-flags wt25))
(set! (-> obj attack-event) 'lava)
(none)
)
+57 -69
View File
@@ -234,37 +234,37 @@
)
(defstate ogreboss-missile-impact (ogreboss-missile)
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(case event-type
(('touched)
(cond
(#f
(cond
((= (-> arg0 type) target)
(send-event arg0 'attack (-> arg3 param 0) (static-attack-info ((mode 'explode))))
((= (-> proc type) target)
(send-event proc 'attack (-> event param 0) (static-attack-info ((mode 'explode))))
)
(else
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-2 from) self)
(set! (-> a1-2 num-params) 4)
(set! (-> a1-2 message) 'attack)
(set! (-> a1-2 param 0) (-> arg3 param 0))
(set! (-> a1-2 param 0) (-> event param 0))
(set! (-> a1-2 param 1) (the-as uint 'explode))
(let ((v1-12 (+ *global-attack-id* 1)))
(set! *global-attack-id* v1-12)
(set! (-> a1-2 param 2) (the-as uint v1-12))
)
(set! (-> a1-2 param 3) (the-as uint 0))
(send-event-function arg0 a1-2)
(send-event-function proc a1-2)
)
)
)
(if (= (-> arg0 type) target)
(if (= (-> proc type) target)
(send-event (ppointer->process (-> self parent-override)) 'victory)
)
)
(else
(let* ((s4-0 arg0)
(let* ((s4-0 proc)
(t1-0 (if (and (nonzero? s4-0) (type-type? (-> s4-0 type) target))
s4-0
)
@@ -278,7 +278,7 @@
)
0.0
(set! (-> s4-1 quad) (-> (the-as target t1-0) control trans quad))
(set! (-> s4-1 y) (+ 4096.0 (-> s4-1 y)))
(+! (-> s4-1 y) 4096.0)
(set-vector! s3-0 0.0 (- 118784.0 (-> s4-1 y)) 0.0 1.0)
(let ((f30-0
(fill-and-probe-using-line-sphere
@@ -302,7 +302,7 @@
(the-as rgba (new 'static 'rgba :g #xff :a #x80))
)
(when (>= f30-0 0.0)
(send-event arg0 'attack (-> arg3 param 0) (static-attack-info ((mode 'damage))))
(send-event proc 'attack (-> event param 0) (static-attack-info ((mode 'damage))))
(send-event (ppointer->process (-> self parent-override)) 'victory)
)
)
@@ -311,7 +311,7 @@
(else
(let ((v1-37 (new 'stack-no-clear 'vector)))
(set-vector! v1-37 0.0 -12288000.0 0.0 1.0)
(send-event arg0 'impulse v1-37)
(send-event proc 'impulse v1-37)
)
)
)
@@ -401,7 +401,7 @@
(set! (-> self root-override quat vec quad) (-> self parent-override 0 root quat vec quad))
(vector-identity! (-> self root-override scale))
(initialize-skeleton self *ogreboss-shoot-boulder-sg* '())
(set! (-> self mask) (logior (process-mask enemy projectile) (-> self mask)))
(logior! (-> self mask) (process-mask enemy projectile))
(logclear! (-> self mask) (process-mask actor-pause))
(set! (-> self draw shadow-ctrl) *ogreboss-missile-shadow-control*)
(if (> (-> arg0 duration) 0)
@@ -512,19 +512,13 @@
)
(defstate ogreboss-super-boulder-idle (ogreboss-super-boulder)
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(case event-type
(('speedup)
(let ((f0-1 (* 1.3 (-> self speed))))
(set! (-> self speed) f0-1)
f0-1
)
(set! (-> self speed) (* 1.3 (-> self speed)))
)
(('grow-faster)
(let ((f0-2 1.0))
(set! (-> self grow-rate) f0-2)
f0-2
)
(set! (-> self grow-rate) 1.0)
)
(('go-throw)
(go ogreboss-super-boulder-throw)
@@ -1153,9 +1147,7 @@
(defstate ogreboss-intro (ogreboss)
:code (behavior ()
(when (and (zero? (-> self try-count))
(not (and PC_PORT (is-speedrun-category? 'il-ogre))) ;; modified for PC port - skip cutscene in Mountain Pass IL speedrun
)
(when (zero? (-> self try-count))
(process-drawable-delay-player (seconds 1))
(let ((gp-0 (get-process *default-dead-pool* pov-camera #x4000)))
(ppointer->handle (when gp-0
@@ -1456,8 +1448,8 @@
)
(defstate ogreboss-stage1 (ogreboss)
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(case event-type
(('next-stage)
(set! (-> self bridge-assembled) #t)
(go ogreboss-stage2)
@@ -1478,7 +1470,7 @@
(none)
)
:code (behavior ()
(set! (-> self mask) (logior (process-mask enemy) (-> self mask)))
(logior! (-> self mask) (process-mask enemy))
(ogreboss-set-stage1-camera)
(ogreboss-move-near (seconds 3) (the-as float 1.0))
(cond
@@ -1512,7 +1504,7 @@
(ja :num! (seek! max f30-0))
)
(countdown (gp-1 (+ gp-0 -1))
(let ((s5-0 (pickup-type none)))
(let ((boulder-pickup (pickup-type none)))
(let ((f28-0 0.0))
(cond
((>= 1.0 (-> *target* fact-info-target health))
@@ -1536,10 +1528,10 @@
)
)
(if (and *target* (< (rand-vu) f28-0))
(set! s5-0 (pickup-type eco-green))
(set! boulder-pickup (pickup-type eco-green))
)
)
(ogreboss-shoot-boulder s5-0)
(ogreboss-shoot-boulder (the-as pickup-type boulder-pickup))
)
(ja-no-eval :group! ogreboss-attack2-loop-ja :num! (seek! max f30-0) :frame-num 0.0)
(until (ja-done? 0)
@@ -1639,41 +1631,41 @@
)
(defbehavior ogreboss-attack-event-handler ogreboss ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (when (= v1-0 'attack)
(when (-> self vulnerable)
(if ((method-of-type touching-shapes-entry prims-touching?)
(the-as touching-shapes-entry (-> arg3 param 0))
(the-as collide-shape-moving (-> self root-override))
(the-as uint 128)
)
(ja :chan 1 :group! ogreboss-hit-crotch-ja :num! min :frame-interp 0.0)
(ja :chan 1 :group! ogreboss-hit-chest-ja :num! min :frame-interp 0.0)
(the-as object (case arg2
(('attack)
(when (-> self vulnerable)
(if ((method-of-type touching-shapes-entry prims-touching?)
(the-as touching-shapes-entry (-> arg3 param 0))
(the-as collide-shape-moving (-> self root-override))
(the-as uint 128)
)
(set! (-> self hit-time) (-> *display* base-frame-counter))
(let ((v1-17 (rand-vu-int-range 0 2)))
(cond
((zero? v1-17)
(sound-play "ogre-grunt1" :position (the-as symbol (-> self root-override trans)))
)
((= v1-17 1)
(sound-play "ogre-grunt2" :position (the-as symbol (-> self root-override trans)))
)
(else
(sound-play "ogre-grunt3" :position (the-as symbol (-> self root-override trans)))
)
(ja :chan 1 :group! ogreboss-hit-crotch-ja :num! min :frame-interp 0.0)
(ja :chan 1 :group! ogreboss-hit-chest-ja :num! min :frame-interp 0.0)
)
(set! (-> self hit-time) (-> *display* base-frame-counter))
(let ((v1-17 (rand-vu-int-range 0 2)))
(cond
((zero? v1-17)
(sound-play "ogre-grunt1" :position (the-as symbol (-> self root-override trans)))
)
)
(+! (-> self hit-count) 1)
(if (>= (-> self hit-count) (-> self max-hit-count))
(go ogreboss-stage3-hit)
((= v1-17 1)
(sound-play "ogre-grunt2" :position (the-as symbol (-> self root-override trans)))
)
(send-event (handle->process (-> self boulder)) 'speedup)
)
#t
)
)
)
(else
(sound-play "ogre-grunt3" :position (the-as symbol (-> self root-override trans)))
)
)
)
(+! (-> self hit-count) 1)
(if (>= (-> self hit-count) (-> self max-hit-count))
(go ogreboss-stage3-hit)
)
(send-event (handle->process (-> self boulder)) 'speedup)
)
#t
)
)
)
)
(defstate ogreboss-stage2 (ogreboss)
@@ -1891,7 +1883,7 @@
(defstate ogreboss-stage3-hit (ogreboss)
:code (behavior ()
(set! (-> self level) (+ 1.0 (-> self level)))
(+! (-> self level) 1.0)
(if (< 2.0 (-> self level))
(go ogreboss-die)
)
@@ -2033,7 +2025,7 @@
)
(defmethod init-from-entity! ogreboss ((obj ogreboss) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask attackable) (-> obj mask)))
(logior! (-> obj mask) (process-mask attackable))
(let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 6) 0)))
(set! (-> s3-0 prim-core collide-as) (collide-kind enemy))
@@ -2143,7 +2135,3 @@
)
(none)
)
@@ -1303,7 +1303,7 @@
(rot->dir-targ! (-> self control))
(ja-post)
(vector<-cspace! gp-1 (-> self node-list data 3))
(set! (-> gp-1 y) (+ -5896.192 (-> gp-1 y)))
(+! (-> gp-1 y) -5896.192)
(move-to-point! (-> self control) gp-1)
)
(send-event *camera* 'ease-in)
+3 -3
View File
@@ -218,8 +218,8 @@
)
(defmethod init-from-entity! spider-egg ((obj spider-egg) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
(set! (-> obj mask) (logior (process-mask attackable) (-> obj mask)))
(logior! (-> obj mask) (process-mask enemy))
(logior! (-> obj mask) (process-mask attackable))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -245,7 +245,7 @@
(if (not (move-to-ground (-> obj root-override) 12288.0 40960.0 #t (collide-kind background)))
(go process-drawable-art-error "no ground")
)
(set! (-> obj root-override trans y) (+ -409.6 (-> obj root-override trans y)))
(+! (-> obj root-override trans y) -409.6)
(let ((s4-1 (new 'stack-no-clear 'vector)))
(set! (-> s4-1 quad) (-> obj root-override surface-normal quad))
(+! (-> s4-1 x) (rand-vu-float-range -0.2 0.2))
+9 -17
View File
@@ -80,7 +80,7 @@
)
(defbehavior pusher-base-init pusher-base ()
(set! (-> self mask) (logior (process-mask enemy platform) (-> self mask)))
(logior! (-> self mask) (process-mask enemy platform))
(let ((gp-0 (new 'process 'collide-shape-moving self (collide-list-enum hit-by-others))))
(set! (-> gp-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> gp-0 reaction) default-collision-reaction)
@@ -1059,14 +1059,14 @@
(set! (-> gp-0 origin y) (the float (- 10 (-> self timer-pos-offset))))
(set! (-> gp-0 flags) (font-flags shadow kerning right large))
(print-game-text (lookup-text! *common-text* (text-id time) #f) gp-0 #f 128 22)
(set! (-> gp-0 origin x) (+ 10.0 (-> gp-0 origin x)))
(+! (-> gp-0 origin x) 10.0)
(set! (-> gp-0 flags) (font-flags shadow kerning large))
(print-game-text (race-time->string (-> self this-time)) gp-0 #f 128 22)
(set! (-> gp-0 origin x) (+ -10.0 (-> gp-0 origin x)))
(set! (-> gp-0 origin y) (+ 15.0 (-> gp-0 origin y)))
(+! (-> gp-0 origin x) -10.0)
(+! (-> gp-0 origin y) 15.0)
(set! (-> gp-0 flags) (font-flags shadow kerning right large))
(print-game-text (lookup-text! *common-text* (text-id record) #f) gp-0 #f 128 22)
(set! (-> gp-0 origin x) (+ 10.0 (-> gp-0 origin x)))
(+! (-> gp-0 origin x) 10.0)
(set! (-> gp-0 flags) (font-flags shadow kerning large))
(print-game-text (race-time->string (-> self record-time)) gp-0 #f 128 22)
(cond
@@ -1174,17 +1174,9 @@
(send-event (ppointer->process (-> *hud-parts* money)) 'enable)
)
(when (< (mod (-> *display* real-frame-counter) 90) 60)
(let ((gp-0 (new
'stack
'font-context
*font-default-matrix*
156
80
0.0
(font-color red)
(font-flags shadow kerning)
)
)
(let ((gp-0
(new 'stack 'font-context *font-default-matrix* 156 80 0.0 (font-color red) (font-flags shadow kerning))
)
)
(let ((v1-20 gp-0))
(set! (-> v1-20 width) (the float 200))
@@ -1367,7 +1359,7 @@
(process-drawable-from-entity! obj arg0)
(let ((a0-3 (new 'stack-no-clear 'vector)))
(set! (-> a0-3 quad) (-> obj root-override trans quad))
(set! (-> a0-3 y) (+ -8192.0 (-> a0-3 y)))
(+! (-> a0-3 y) -8192.0)
(gorge-init a0-3 (new 'static 'vector :z 1.0) 102400.0 40960.0)
)
(set! (-> obj tasks) (get-task-control (-> obj entity extra perm task)))
@@ -650,7 +650,7 @@
)
)
(set! (-> self old-hips quad) (-> (target-pos 26) quad))
(set! (-> self old-hips x) (+ 1.0 (-> self old-hips x)))
(+! (-> self old-hips x) 1.0)
(set! (-> self state-time) (-> *display* game-frame-counter))
(none)
)
@@ -929,8 +929,8 @@
)
(defstate race-ring-idle (race-ring)
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(case event-type
(('activate)
(logclear! (-> self mask) (process-mask actor-pause))
(go race-ring-active)
@@ -996,7 +996,7 @@
(if (< (vector-dot (-> obj face-vec) (new 'static 'vector :x 1.0)) 0.0)
(set! (-> obj rot-y) (- (-> obj rot-y)))
)
(set! (-> obj rot-y) (+ 16384.0 (-> obj rot-y)))
(+! (-> obj rot-y) 16384.0)
)
)
)
+8 -14
View File
@@ -42,7 +42,7 @@
)
)
(eval-path-curve! (-> self path) (-> self root-override trans) arg1 'interp)
(set! (-> self root-override trans y) (+ 8192.0 (-> self root-override trans y)))
(+! (-> self root-override trans y) 8192.0)
(set! (-> self root-override trans y) (fmax 106496.0 (-> self root-override trans y)))
(set! (-> self base quad) (-> self root-override trans quad))
(transform-post)
@@ -146,7 +146,7 @@
(let ((gp-0 (new 'stack-no-clear 'vector)))
(set! (-> gp-0 quad) (-> self root-override trans quad))
(let ((t2-0 (new 'stack-no-clear 'collide-tri-result)))
(set! (-> gp-0 y) (+ 8192.0 (-> gp-0 y)))
(+! (-> gp-0 y) 8192.0)
(let ((f0-2 (fill-and-probe-using-line-sphere
*collide-cache*
gp-0
@@ -223,10 +223,10 @@
)
(cond
((< 1.0 (-> self curve-position))
(set! (-> self curve-position) (+ -1.0 (-> self curve-position)))
(+! (-> self curve-position) -1.0)
)
((< (-> self curve-position) 0.0)
(set! (-> self curve-position) (+ 1.0 (-> self curve-position)))
(+! (-> self curve-position) 1.0)
)
)
(eval-path-curve! (-> self path) (-> self root-override trans) (-> self curve-position) 'interp)
@@ -302,10 +302,10 @@
)
(cond
((< 1.0 (-> self curve-position))
(set! (-> self curve-position) (+ -1.0 (-> self curve-position)))
(+! (-> self curve-position) -1.0)
)
((< (-> self curve-position) 0.0)
(set! (-> self curve-position) (+ 1.0 (-> self curve-position)))
(+! (-> self curve-position) 1.0)
)
)
(eval-path-curve! (-> self path) (-> self root-override trans) (-> self curve-position) 'interp)
@@ -364,7 +364,7 @@
(logior! (-> self draw status) (draw-status hidden))
(let ((s5-1 (new 'stack-no-clear 'vector)))
(eval-path-curve! (-> self path) s5-1 (the-as float (-> v1-3 user-object 0)) 'interp)
(set! (-> s5-1 y) (+ 8192.0 (-> s5-1 y)))
(+! (-> s5-1 y) 8192.0)
(birth-pickup-at-point
s5-1
(pickup-type fuel-cell)
@@ -601,13 +601,7 @@
(if (and *target*
(>= 163840.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans)))
)
(level-hint-spawn
(text-id rolling-robbers-hint)
"sksp0116"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn (text-id rolling-robbers-hint) "sksp0116" (the-as entity #f) *entity-pool* (game-task none))
)
)
(if (and *target*
+98 -102
View File
@@ -77,11 +77,11 @@
:neck-joint 5
:player-look-at-joint 5
:run-travel-speed (meters 20)
:run-rotate-speed (degrees 2880.0)
:run-rotate-speed (degrees 2880)
:run-acceleration (meters 1)
:run-turn-time (seconds 0.1)
:walk-travel-speed (meters 3)
:walk-rotate-speed (degrees 720.0)
:walk-rotate-speed (degrees 720)
:walk-acceleration (meters 1)
:walk-turn-time (seconds 0.5)
:attack-shove-back (meters 3)
@@ -371,106 +371,102 @@
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 176]
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 194]
(defbehavior ice-cube-default-event-handler ice-cube ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(the-as object (case arg2
(('attack)
(cond
((and (= (-> arg0 type) target)
(= (-> self cprims-type) 2)
(not (send-event *target* 'query 'powerup (pickup-type eco-red)))
)
(when (and (cond
((= (-> arg0 type) target)
(send-event arg0 'attack (-> arg3 param 0) (new 'static 'attack-info))
)
(else
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-3 from) self)
(set! (-> a1-3 num-params) 4)
(set! (-> a1-3 message) 'attack)
(set! (-> a1-3 param 0) (-> arg3 param 0))
(set! (-> a1-3 param 1) (the-as uint #f))
(let ((v1-20 (+ *global-attack-id* 1)))
(set! *global-attack-id* v1-20)
(set! (-> a1-3 param 2) (the-as uint v1-20))
)
(set! (-> a1-3 param 3) (the-as uint 0))
(send-event-function arg0 a1-3)
)
)
)
(= (-> arg0 type) target)
)
(set-collide-offense (-> self collide-info) 2 (collide-offense no-offense))
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf8))
(level-hint-spawn
(text-id snow-ice-cube-hint)
"sksp0350"
(the-as entity #f)
*entity-pool*
(game-task none)
(the-as
object
(case arg2
(('attack)
(cond
((and (= (-> arg0 type) target)
(= (-> self cprims-type) 2)
(not (send-event *target* 'query 'powerup (pickup-type eco-red)))
)
(when (and (cond
((= (-> arg0 type) target)
(send-event arg0 'attack (-> arg3 param 0) (new 'static 'attack-info))
)
(else
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-3 from) self)
(set! (-> a1-3 num-params) 4)
(set! (-> a1-3 message) 'attack)
(set! (-> a1-3 param 0) (-> arg3 param 0))
(set! (-> a1-3 param 1) (the-as uint #f))
(let ((v1-20 (+ *global-attack-id* 1)))
(set! *global-attack-id* v1-20)
(set! (-> a1-3 param 2) (the-as uint v1-20))
)
(set! (-> a1-3 param 3) (the-as uint 0))
(send-event-function arg0 a1-3)
)
)
)
(else
(nav-enemy-set-hit-from-direction arg0)
(go ice-cube-shatter)
)
)
)
(('touch)
(when (and (cond
((= (-> arg0 type) target)
(send-event arg0 'attack (-> arg3 param 0) (new 'static 'attack-info))
)
(else
(let ((a1-7 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-7 from) self)
(set! (-> a1-7 num-params) 4)
(set! (-> a1-7 message) 'attack)
(set! (-> a1-7 param 0) (-> arg3 param 0))
(set! (-> a1-7 param 1) (the-as uint #f))
(let ((v1-38 (+ *global-attack-id* 1)))
(set! *global-attack-id* v1-38)
(set! (-> a1-7 param 2) (the-as uint v1-38))
)
(set! (-> a1-7 param 3) (the-as uint 0))
(send-event-function arg0 a1-7)
)
)
)
(= (-> arg0 type) target)
)
(set-collide-offense (-> self collide-info) 2 (collide-offense no-offense))
;; NOTE fixed decompiler bug
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf8))
)
)
(('touched)
(when (!= (-> arg0 type) target)
(cond
((= (-> arg0 type) target)
(send-event arg0 'attack (-> arg3 param 0) (static-attack-info ((mode #f))))
)
(else
(let ((a1-10 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-10 from) self)
(set! (-> a1-10 num-params) 4)
(set! (-> a1-10 message) 'attack)
(set! (-> a1-10 param 0) (-> arg3 param 0))
(set! (-> a1-10 param 1) (the-as uint #f))
(let ((v1-54 (+ *global-attack-id* 1)))
(set! *global-attack-id* v1-54)
(set! (-> a1-10 param 2) (the-as uint v1-54))
)
(set! (-> a1-10 param 3) (the-as uint 0))
(send-event-function arg0 a1-10)
)
)
)
)
)
)
(= (-> arg0 type) target)
)
(set-collide-offense (-> self collide-info) 2 (collide-offense no-offense))
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf8))
(level-hint-spawn (text-id snow-ice-cube-hint) "sksp0350" (the-as entity #f) *entity-pool* (game-task none))
)
)
(else
(nav-enemy-set-hit-from-direction arg0)
(go ice-cube-shatter)
)
)
)
(('touch)
(when (and (cond
((= (-> arg0 type) target)
(send-event arg0 'attack (-> arg3 param 0) (new 'static 'attack-info))
)
(else
(let ((a1-7 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-7 from) self)
(set! (-> a1-7 num-params) 4)
(set! (-> a1-7 message) 'attack)
(set! (-> a1-7 param 0) (-> arg3 param 0))
(set! (-> a1-7 param 1) (the-as uint #f))
(let ((v1-38 (+ *global-attack-id* 1)))
(set! *global-attack-id* v1-38)
(set! (-> a1-7 param 2) (the-as uint v1-38))
)
(set! (-> a1-7 param 3) (the-as uint 0))
(send-event-function arg0 a1-7)
)
)
)
(= (-> arg0 type) target)
)
(set-collide-offense (-> self collide-info) 2 (collide-offense no-offense))
;; NOTE fixed decompiler bug
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf8))
)
)
(('touched)
(when (!= (-> arg0 type) target)
(cond
((= (-> arg0 type) target)
(send-event arg0 'attack (-> arg3 param 0) (static-attack-info ((mode #f))))
)
(else
(let ((a1-10 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-10 from) self)
(set! (-> a1-10 num-params) 4)
(set! (-> a1-10 message) 'attack)
(set! (-> a1-10 param 0) (-> arg3 param 0))
(set! (-> a1-10 param 1) (the-as uint #f))
(let ((v1-54 (+ *global-attack-id* 1)))
(set! *global-attack-id* v1-54)
(set! (-> a1-10 param 2) (the-as uint v1-54))
)
(set! (-> a1-10 param 3) (the-as uint 0))
(send-event-function arg0 a1-10)
)
)
)
)
)
)
)
)
(defmethod initialize-collision ice-cube ((obj ice-cube))
@@ -713,7 +709,7 @@
(s3-1 (new 'stack-no-clear 'collide-tri-result))
)
(set! (-> a1-3 quad) (-> arg0 quad))
(set! (-> a1-3 y) (+ 16384.0 (-> a1-3 y)))
(+! (-> a1-3 y) 16384.0)
(if (>= (fill-and-probe-using-line-sphere
*collide-cache*
a1-3
@@ -736,7 +732,7 @@
)
(else
(set-vector! arg1 (rand-vu-float-range -4096.0 4096.0) 0.0 (rand-vu-float-range -4096.0 4096.0) 1.0)
(set! (-> arg1 x) (+ 409.6 (-> arg1 x)))
(+! (-> arg1 x) 409.6)
)
)
(vector-normalize! arg1 1.0)
@@ -792,7 +788,7 @@
(set! (-> self ground-y) (-> self collide-info trans y))
(spawn (-> self part) (-> self collide-info trans))
(set-current-poly! (-> self nav) (nav-control-method-16 (-> self nav) (-> self collide-info trans)))
(set! (-> self collide-info trans y) (+ -12288.0 (-> self collide-info trans y)))
(+! (-> self collide-info trans y) -12288.0)
(set! (-> self collide-info transv quad) (-> *null-vector* quad))
(set! (-> self collide-info transv y) (rand-vu-float-range 102400.0 114688.0))
(none)
@@ -1257,7 +1253,7 @@
(set! (-> self anim-blend) (fmin 1.0 (* 0.000016276043 f30-1)))
(vector-normalize! (-> self collide-info transv) f30-1)
)
(set! (-> self collide-info transv y) (+ -36864.0 (-> self collide-info transv y)))
(+! (-> self collide-info transv y) -36864.0)
(quaternion-rotate-y-to-vector!
(-> self collide-info quat)
(-> self collide-info quat)
+2 -2
View File
@@ -163,7 +163,7 @@
(eval-path-curve! (-> obj path) (-> s5-0 path-pos) (-> obj path-u) 'interp)
(let ((f0-1 (-> obj path-coming-out-u)))
(when (< (-> obj path-u) f0-1)
(set! (-> s5-0 path-pos y) (+ (- -20480.0 (* -20480.0 (/ (-> obj path-u) f0-1))) (-> s5-0 path-pos y)))
(+! (-> s5-0 path-pos y) (- -20480.0 (* -20480.0 (/ (-> obj path-u) f0-1))))
(set! (-> s5-0 hug-path?) #t)
)
)
@@ -214,7 +214,7 @@
(let ((a0-1 (-> self path-info)))
(set! (-> a1-0 quad) (-> a0-1 path-pos quad))
)
(set! (-> a1-0 y) (+ 9216.0 (-> a1-0 y)))
(+! (-> a1-0 y) 9216.0)
(cond
((-> self path-info hug-path?)
(move-to-point! (-> self root-override) a1-0)
+3 -3
View File
@@ -67,11 +67,11 @@
:neck-joint 5
:player-look-at-joint 5
:run-travel-speed (meters 6)
:run-rotate-speed (degrees 2880.0)
:run-rotate-speed (degrees 2880)
:run-acceleration (meters 1)
:run-turn-time (seconds 0.1)
:walk-travel-speed (meters 4)
:walk-rotate-speed (degrees 720.0)
:walk-rotate-speed (degrees 720)
:walk-acceleration (meters 1)
:walk-turn-time (seconds 0.5)
:shadow-size (meters 2)
@@ -393,7 +393,7 @@
:enter (behavior ()
(set! (-> self state-time) (-> *display* base-frame-counter))
(snow-bunny-method-76 self #f)
(set! (-> self nav flags) (logior (nav-control-flags navcf19) (-> self nav flags)))
(logior! (-> self nav flags) (nav-control-flags navcf19))
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf2))
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
(set! (-> self state-timeout) (seconds 0.1))
@@ -468,7 +468,7 @@
)
)
(set! (-> obj appear-trans-bottom quad) (-> obj appear-trans-top quad))
(set! (-> obj appear-trans-bottom y) (+ -286720.0 (-> obj appear-trans-bottom y)))
(+! (-> obj appear-trans-bottom y) -286720.0)
(quaternion-copy! (-> obj appear-quat-top) (-> obj root-override quat))
(let ((v1-33 (res-lump-value (-> obj entity) 'extra-id uint128)))
(set! (-> obj rise-time) (the int (* 300.0 (+ 0.6 (* 0.15 (the float v1-33))))))
+20 -20
View File
@@ -326,7 +326,7 @@
(cond
((= (-> event param 0) 'die)
(if *target*
(set! (-> *target* control trans y) (+ 1024.0 (-> *target* control trans y)))
(+! (-> *target* control trans y) 1024.0)
)
(go snow-eggtop-idle-down)
)
@@ -466,7 +466,7 @@
(initialize-skeleton obj *snow-eggtop-sg* '())
(logior! (-> obj skel status) (janim-status inited))
(set! (-> obj spawn-trans quad) (-> obj root-override trans quad))
(set! (-> obj root-override trans y) (+ -2662.4 (-> obj root-override trans y)))
(+! (-> obj root-override trans y) -2662.4)
(update-transforms! (-> obj root-override))
(set! (-> obj part) (create-launch-control (-> *part-group-id-table* 510) obj))
(set! (-> obj sound)
@@ -479,7 +479,7 @@
(else
(let ((a0-17 (new 'stack-no-clear 'vector)))
(set! (-> a0-17 quad) (-> obj root-override trans quad))
(set! (-> a0-17 y) (+ 3072.0 (-> a0-17 y)))
(+! (-> a0-17 y) 3072.0)
(birth-pickup-at-point
a0-17
(pickup-type fuel-cell)
@@ -557,7 +557,7 @@
(defmethod init-from-entity! snowpusher ((obj snowpusher) (arg0 entity-actor))
(local-vars (sv-16 res-tag))
(set! (-> obj mask) (logior (process-mask enemy platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask enemy platform))
(let ((s3-0 0)
(s4-0 0)
)
@@ -690,7 +690,7 @@
)
(defmethod init-from-entity! snow-spatula ((obj snow-spatula) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -954,8 +954,8 @@
(loop
(let ((a1-0 (new 'stack-no-clear 'vector)))
(set! (-> a1-0 quad) (-> self closed-trans quad))
(set! (-> a1-0 y) (+ -12288.0 (-> a1-0 y)))
(set! (-> a1-0 z) (+ -12288.0 (-> a1-0 z)))
(+! (-> a1-0 y) -12288.0)
(+! (-> a1-0 z) -12288.0)
(spawn (-> self part) a1-0)
)
(let ((s5-0 (new 'stack-no-clear 'vector)))
@@ -965,8 +965,8 @@
(set! gp-0 #t)
(let ((a1-2 (new 'stack-no-clear 'vector)))
(set! (-> a1-2 quad) (-> self open-trans quad))
(set! (-> a1-2 y) (+ -26624.0 (-> a1-2 y)))
(set! (-> a1-2 z) (+ -3072.0 (-> a1-2 z)))
(+! (-> a1-2 y) -26624.0)
(+! (-> a1-2 z) -3072.0)
(spawn (-> self part2) a1-2)
)
)
@@ -981,9 +981,9 @@
)
(let ((a1-7 (new 'stack-no-clear 'vector)))
(set! (-> a1-7 quad) (-> self root-override trans quad))
(set! (-> a1-7 x) (+ 20480.0 (-> a1-7 x)))
(set! (-> a1-7 y) (+ 106496.0 (-> a1-7 y)))
(set! (-> a1-7 z) (+ -32768.0 (-> a1-7 z)))
(+! (-> a1-7 x) 20480.0)
(+! (-> a1-7 y) 106496.0)
(+! (-> a1-7 z) -32768.0)
(spawn (-> self part3) a1-7)
)
(update! (-> self sound))
@@ -1056,8 +1056,8 @@
(set! (-> obj part3) (create-launch-control (-> *part-group-id-table* 514) obj))
(set! (-> obj open-trans quad) (-> obj root-override trans quad))
(set! (-> obj closed-trans quad) (-> obj open-trans quad))
(set! (-> obj open-trans y) (+ -141312.0 (-> obj open-trans y)))
(set! (-> obj open-trans z) (+ 32768.0 (-> obj open-trans z)))
(+! (-> obj open-trans y) -141312.0)
(+! (-> obj open-trans z) 32768.0)
(set! (-> obj sound)
(new 'process 'ambient-sound (static-sound-spec "lodge-door-mov" :fo-max 80) (-> obj open-trans))
)
@@ -1175,7 +1175,7 @@
(defmethod snow-gears-method-20 snow-gears ((obj snow-gears))
(let ((a1-0 (new 'stack-no-clear 'vector)))
(set! (-> a1-0 quad) (-> obj root trans quad))
(set! (-> a1-0 y) (+ 61440.0 (-> a1-0 y)))
(+! (-> a1-0 y) 61440.0)
(spawn (-> obj part) a1-0)
)
(none)
@@ -1421,7 +1421,7 @@
:code (behavior ()
(set! (-> self pressed?) #t)
(set! (-> self root-override trans quad) (-> self orig-trans quad))
(set! (-> self root-override trans y) (+ -1433.6 (-> self root-override trans y)))
(+! (-> self root-override trans y) -1433.6)
(transform-post)
(loop
(logior! (-> self mask) (process-mask sleep-code))
@@ -1474,7 +1474,7 @@
(when (not s5-2)
(let ((a0-17 (new 'stack-no-clear 'vector)))
(set! (-> a0-17 quad) (-> obj orig-trans quad))
(set! (-> a0-17 y) (+ 12288.0 (-> a0-17 y)))
(+! (-> a0-17 y) 12288.0)
(set! (-> obj fcell-handle) (ppointer->handle (birth-pickup-at-point
a0-17
(pickup-type fuel-cell)
@@ -1677,8 +1677,8 @@
(initialize-skeleton obj *snow-log-sg* '())
(logior! (-> obj skel status) (janim-status inited))
(logior! (-> obj draw status) (draw-status hidden))
(set! (-> obj root-override trans x) (+ -1024.0 (-> obj root-override trans x)))
(set! (-> obj root-override trans y) (+ -4915.2 (-> obj root-override trans y)))
(+! (-> obj root-override trans x) -1024.0)
(+! (-> obj root-override trans y) -4915.2)
(set-vector! (-> obj root-override scale) 1.5 1.0 1.5 1.0)
(nav-mesh-connect obj (-> obj root-override) (the-as nav-control #f))
(set! (-> obj master) (entity-actor-lookup arg0 'alt-actor 0))
@@ -1794,7 +1794,7 @@
:event snow-log-button-event-handler
:code (behavior ()
(set! (-> self root-override trans quad) (-> self orig-trans quad))
(set! (-> self root-override trans y) (+ -1433.6 (-> self root-override trans y)))
(+! (-> self root-override trans y) -1433.6)
(transform-post)
(loop
(logior! (-> self mask) (process-mask sleep-code))
+9 -9
View File
@@ -94,11 +94,11 @@
:neck-joint 6
:player-look-at-joint 5
:run-travel-speed (meters 6)
:run-rotate-speed (degrees 2880.0)
:run-rotate-speed (degrees 2880)
:run-acceleration (meters 1)
:run-turn-time (seconds 0.1)
:walk-travel-speed (meters 4)
:walk-rotate-speed (degrees 720.0)
:walk-rotate-speed (degrees 720)
:walk-acceleration (meters 1)
:walk-turn-time (seconds 0.5)
:attack-shove-back (meters 2)
@@ -147,11 +147,11 @@
:neck-joint 6
:player-look-at-joint 5
:run-travel-speed (meters 6)
:run-rotate-speed (degrees 2880.0)
:run-rotate-speed (degrees 2880)
:run-acceleration (meters 1)
:run-turn-time (seconds 0.1)
:walk-travel-speed (meters 4)
:walk-rotate-speed (degrees 720.0)
:walk-rotate-speed (degrees 720)
:walk-acceleration (meters 1)
:walk-turn-time (seconds 0.5)
:attack-shove-back (meters 2)
@@ -612,7 +612,7 @@
)
(let ((gp-0 (-> obj target)))
(set! (-> gp-0 quad) (-> (target-pos 0) quad))
(set! (-> gp-0 y) (+ 4915.2 (-> gp-0 y)))
(+! (-> gp-0 y) 4915.2)
(let ((f0-2 (vector-vector-distance gp-0 (-> obj root-override trans)))
(a2-0 (new 'stack-no-clear 'vector))
)
@@ -694,7 +694,7 @@
(set! (-> self launch-time) (-> *display* base-frame-counter))
(vector-float*! (-> self root-override transv) (-> self parent-override 0 proj-launch-vec) 40960.0)
(set! (-> self target quad) (-> (target-pos 0) quad))
(set! (-> self target y) (+ 4915.2 (-> self target y)))
(+! (-> self target y) 4915.2)
(set! (-> self target-base quad) (-> self target quad))
(go-virtual projectile-moving)
(none)
@@ -1167,9 +1167,9 @@
(s4-0 (new 'stack-no-clear 'vector))
)
(set! (-> s5-0 quad) (-> obj collide-info trans quad))
(set! (-> s5-0 y) (+ 8192.0 (-> s5-0 y)))
(+! (-> s5-0 y) 8192.0)
(set! (-> s4-0 quad) (-> (target-pos 0) quad))
(set! (-> s4-0 y) (+ 4915.2 (-> s4-0 y)))
(+! (-> s4-0 y) 4915.2)
(vector-! s4-0 s4-0 s5-0)
(let* ((t2-0 (new 'stack-no-clear 'collide-tri-result))
(v0-0 (< (fill-and-probe-using-line-sphere
@@ -1624,7 +1624,7 @@
)
(nav-enemy-method-54 self s5-2)
(set! (-> gp-2 quad) (-> (target-pos 0) quad))
(set! (-> gp-2 y) (+ 4915.2 (-> gp-2 y)))
(+! (-> gp-2 y) 4915.2)
(vector-! (-> self proj-launch-vec) gp-2 s5-2)
)
(vector-normalize! (-> self proj-launch-vec) 1.0)
+4 -4
View File
@@ -73,11 +73,11 @@
:neck-joint 5
:player-look-at-joint 5
:run-travel-speed (meters 6)
:run-rotate-speed (degrees 2880.0)
:run-rotate-speed (degrees 2880)
:run-acceleration (meters 1)
:run-turn-time (seconds 0.1)
:walk-travel-speed (meters 3)
:walk-rotate-speed (degrees 720.0)
:walk-rotate-speed (degrees 720)
:walk-acceleration (meters 1)
:walk-turn-time (seconds 0.5)
:attack-shove-back (meters 3)
@@ -226,7 +226,7 @@
(set! (-> self state-timeout) (seconds 1))
(set! (-> self ground-y) (-> self collide-info trans y))
(spawn (-> self part) (-> self collide-info trans))
(set! (-> self collide-info trans y) (+ -12288.0 (-> self collide-info trans y)))
(+! (-> self collide-info trans y) -12288.0)
(set! (-> self collide-info transv quad) (-> *null-vector* quad))
(set! (-> self collide-info transv y) (rand-vu-float-range 102400.0 114688.0))
(none)
@@ -610,7 +610,7 @@
)
(else
(set-vector! arg1 (rand-vu-float-range -4096.0 4096.0) 0.0 (rand-vu-float-range -4096.0 4096.0) 1.0)
(set! (-> arg1 x) (+ 409.6 (-> arg1 x)))
(+! (-> arg1 x) 409.6)
)
)
(vector-normalize! arg1 1.0)
+1 -1
View File
@@ -768,7 +768,7 @@
(set! (-> obj bounce-volume) 100)
(set! (-> obj spin-vel) 0.0)
(set! (-> obj travel-speed) 0.0)
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
(logior! (-> obj mask) (process-mask enemy))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
+9 -9
View File
@@ -90,11 +90,11 @@
:neck-joint -1
:player-look-at-joint 5
:run-travel-speed (meters 6)
:run-rotate-speed (degrees 2880.0)
:run-rotate-speed (degrees 2880)
:run-acceleration (meters 1)
:run-turn-time (seconds 0.1)
:walk-travel-speed (meters 3)
:walk-rotate-speed (degrees 720.0)
:walk-rotate-speed (degrees 720)
:walk-acceleration (meters 1)
:walk-turn-time (seconds 0.5)
:attack-shove-back (meters 3)
@@ -144,11 +144,11 @@
:neck-joint 5
:player-look-at-joint 5
:run-travel-speed (meters 6)
:run-rotate-speed (degrees 720.0)
:run-rotate-speed (degrees 720)
:run-acceleration (meters 1)
:run-turn-time (seconds 0.1)
:walk-travel-speed (meters 3.8)
:walk-rotate-speed (degrees 720.0)
:walk-rotate-speed (degrees 720)
:walk-acceleration (meters 1)
:walk-turn-time (seconds 0.5)
:attack-shove-back (meters 3)
@@ -198,11 +198,11 @@
:neck-joint 5
:player-look-at-joint 5
:run-travel-speed (meters 6)
:run-rotate-speed (degrees 720.0)
:run-rotate-speed (degrees 720)
:run-acceleration (meters 1)
:run-turn-time (seconds 0.1)
:walk-travel-speed (meters 3.8)
:walk-rotate-speed (degrees 720.0)
:walk-rotate-speed (degrees 720)
:walk-acceleration (meters 1)
:walk-turn-time (seconds 0.5)
:attack-shove-back (meters 3)
@@ -746,7 +746,7 @@
)
)
)
(set! (-> self collide-info transv y) (+ -36864.0 (-> self collide-info transv y)))
(+! (-> self collide-info transv y) -36864.0)
(integrate-for-enemy-with-move-to-ground!
(-> self collide-info)
(-> self collide-info transv)
@@ -786,7 +786,7 @@
(s4-0 (new 'stack-no-clear 'collide-tri-result))
)
(set! (-> a1-5 quad) (-> arg0 quad))
(set! (-> a1-5 y) (+ 8192.0 (-> a1-5 y)))
(+! (-> a1-5 y) 8192.0)
(when (>= (fill-and-probe-using-line-sphere
*collide-cache*
a1-5
@@ -893,7 +893,7 @@
)
)
)
(set! (-> self collide-info transv y) (+ -36864.0 (-> self collide-info transv y)))
(+! (-> self collide-info transv y) -36864.0)
(integrate-for-enemy-with-move-to-ground!
(-> self collide-info)
(-> self collide-info transv)
@@ -93,7 +93,7 @@
)
(defmethod init-from-entity! floating-launcher ((obj floating-launcher) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
+3 -9
View File
@@ -222,7 +222,7 @@
(when (not (task-complete? *game-info* (game-task sunken-slide)))
(let ((a0-1 (new 'stack-no-clear 'vector)))
(set! (-> a0-1 quad) (-> self root-override trans quad))
(set! (-> a0-1 y) (+ 30720.0 (-> a0-1 y)))
(+! (-> a0-1 y) 30720.0)
(let ((v1-7 (birth-pickup-at-point
a0-1
(pickup-type fuel-cell)
@@ -336,13 +336,7 @@
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 1.5))
(suspend)
)
(level-hint-spawn
(text-id sunken-helix-hint)
"sksp0124"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(level-hint-spawn (text-id sunken-helix-hint) "sksp0124" (the-as entity #f) *entity-pool* (game-task none))
(send-event *target* 'play-anim 'shock-in)
(sound-play "prec-button8")
(set! (-> self root-override transv quad) (the-as uint128 0))
@@ -557,7 +551,7 @@
(set! (-> s5-1 frame-num) 0.0)
)
(set! (-> obj spawn-trans quad) (-> obj root-override trans quad))
(set! (-> obj root-override trans y) (+ -26624.0 (-> obj root-override trans y)))
(+! (-> obj root-override trans y) -26624.0)
(set! (-> obj down-y) (+ -6553.6 (-> obj root-override trans y)))
(set! (-> obj fact)
(new 'process 'fact-info obj (pickup-type eco-pill-random) (-> *FACT-bank* default-pill-inc))
+6 -6
View File
@@ -161,7 +161,7 @@
:code (behavior ()
(loop
(set! (-> self root trans quad) (-> self parent-override 0 root-override trans quad))
(set! (-> self root trans y) (+ -5324.8 (-> self root trans y)))
(+! (-> self root trans y) -5324.8)
(spawn (-> self part2) (-> self root trans))
(let* ((a0-6 (-> self parent-override 0 other))
(v1-9 (if a0-6
@@ -207,9 +207,9 @@
)
(let ((s4-0 (new 'stack-no-clear 'vector)))
(set! (-> gp-1 quad) (-> self root trans quad))
(set! (-> gp-1 y) (+ -2048.0 (-> gp-1 y)))
(+! (-> gp-1 y) -2048.0)
(set! (-> s5-0 quad) (-> (the-as orbit-plat v1-32) root-override trans quad))
(set! (-> s5-0 y) (+ -7372.8 (-> s5-0 y)))
(+! (-> s5-0 y) -7372.8)
(vector-! s4-0 s5-0 gp-1)
(vector-normalize! s4-0 1.0)
(vector+*! s5-0 gp-1 s4-0 26624.0)
@@ -249,12 +249,12 @@
(defbehavior orbit-plat-bottom-init-by-other orbit-plat-bottom ((arg0 entity-actor) (arg1 orbit-plat))
(set! (-> self entity) arg0)
(set! (-> self mask) (logior (process-mask platform) (-> self mask)))
(logior! (-> self mask) (process-mask platform))
(set! (-> self root) (new 'process 'trsqv))
(set! (-> self root trans quad) (-> arg1 root-override trans quad))
(quaternion-copy! (-> self root quat) (-> arg1 root-override quat))
(set! (-> self root scale quad) (-> arg1 root-override scale quad))
(set! (-> self root trans y) (+ -5324.8 (-> self root trans y)))
(+! (-> self root trans y) -5324.8)
(set! (-> self part) (create-launch-control (-> *part-group-id-table* 440) self))
(set! (-> self part2) (create-launch-control (-> *part-group-id-table* 107) self))
(initialize-skeleton self *orbit-plat-bottom-sg* '())
@@ -775,7 +775,7 @@
(defmethod init-from-entity! orbit-plat ((obj orbit-plat) (arg0 entity-actor))
(set! (-> obj plat-status) (the-as uint 0))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-others))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
+1 -1
View File
@@ -1094,7 +1094,7 @@
(initialize-skeleton obj *puffer-sg* '())
(set! (-> obj draw origin-joint-index) (the-as uint 3))
(logclear! (-> obj mask) (process-mask actor-pause))
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
(logior! (-> obj mask) (process-mask enemy))
(setup-lods! (-> obj nice-look) *puffer-sg* (-> obj draw art-group) (-> obj entity))
(setup-lods! (-> obj mean-look) *puffer-mean-sg* (-> obj draw art-group) (-> obj entity))
(load-params! (-> obj sync) obj (the-as uint 2400) 0.0 0.15 0.15)
+2 -2
View File
@@ -144,7 +144,7 @@
(defbehavior qbert-plat-on-init-by-other qbert-plat ((arg0 entity-actor) (arg1 qbert-plat))
(set! (-> self entity) arg0)
(set! (-> self mask) (logior (process-mask platform) (-> self mask)))
(logior! (-> self mask) (process-mask platform))
(set! (-> self root-overlay) (the-as collide-shape-moving (new 'process 'trsqv)))
(set! (-> self root-overlay trans quad) (-> arg1 root-overlay trans quad))
(quaternion-copy! (-> self root-overlay quat) (-> arg1 root-overlay quat))
@@ -362,7 +362,7 @@
)
(defmethod init-from-entity! qbert-plat ((obj qbert-plat) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(rigid-body-platform-method-30 obj)
(process-drawable-from-entity! obj arg0)
(rigid-body-platform-method-31 obj)
@@ -180,7 +180,7 @@
(local-vars (v0-3 sound-id) (sv-48 int))
(let ((s4-0 (new 'stack-no-clear 'vector)))
(set! (-> s4-0 quad) (-> obj root-override trans quad))
(set! (-> s4-0 y) (+ -20480.0 (-> s4-0 y)))
(+! (-> s4-0 y) -20480.0)
(let* ((v1-1 (-> obj water-entity))
(a0-4 (if v1-1
(-> v1-1 extra process)
+3 -3
View File
@@ -494,7 +494,7 @@
(spawn (-> obj part2) (-> obj down))
(let ((a1-8 (new 'stack-no-clear 'vector)))
(set! (-> a1-8 quad) (-> obj root-override trans quad))
(set! (-> a1-8 y) (+ -3072.0 (-> a1-8 y)))
(+! (-> a1-8 y) -3072.0)
(spawn (-> obj part3) a1-8)
)
)
@@ -672,7 +672,7 @@
(defmethod init-from-entity! steam-cap ((obj steam-cap) (arg0 entity-actor))
(local-vars (sv-16 res-tag))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -738,7 +738,7 @@
)
(set! (-> obj down quad) (-> obj root-override trans quad))
(set! (-> obj up quad) (-> obj root-override trans quad))
(set! (-> obj up y) (+ 40960.0 (-> obj up y)))
(+! (-> obj up y) 40960.0)
(set! (-> obj part) (create-launch-control (-> *part-group-id-table* 441) obj))
(set! (-> obj part2) (create-launch-control (-> *part-group-id-table* 442) obj))
(set! (-> obj part3) (create-launch-control (-> *part-group-id-table* 443) obj))
@@ -301,7 +301,7 @@
(set! (-> self root trans quad) (-> arg1 root trans quad))
(quaternion-copy! (-> self root quat) (-> arg1 root quat))
(set! (-> self root scale quad) (-> arg1 root scale quad))
(set! (-> self root trans y) (+ 14069.76 (-> self root trans y)))
(+! (-> self root trans y) 14069.76)
(set! (-> self rest-pos quad) (-> self root trans quad))
(initialize-skeleton self *blue-eco-charger-orb-sg* '())
(ja-channel-set! 1)
@@ -597,7 +597,7 @@
(vector-! s5-0 (-> obj last-pos) (-> obj root-override trans))
(set! (-> obj draw bounds quad) (-> s5-0 quad))
)
(set! (-> obj draw bounds y) (+ 16384.0 (-> obj draw bounds y)))
(+! (-> obj draw bounds y) 16384.0)
(set! (-> obj draw bounds w) 67584.0)
(let ((s5-1 (new 'stack-no-clear 'exit-chamber-items)))
(exit-chamber-method-21 obj s5-1)
@@ -607,7 +607,7 @@
(when (and *target* (-> obj move-player?))
(let ((a1-6 (new 'stack-no-clear 'vector)))
(set! (-> a1-6 quad) (-> s5-1 button-pos quad))
(set! (-> a1-6 y) (+ 2662.4 (-> a1-6 y)))
(+! (-> a1-6 y) 2662.4)
(move-to-point! (-> *target* control) a1-6)
)
(vector-reset! (-> *target* control transv))
@@ -842,7 +842,7 @@
)
(let ((a0-36 (new 'stack-no-clear 'vector)))
(set! (-> a0-36 quad) (-> self last-pos quad))
(set! (-> a0-36 y) (+ 51814.4 (-> a0-36 y)))
(+! (-> a0-36 y) 51814.4)
(when (>= (-> a0-36 y) (ocean-get-height a0-36))
(if (not gp-2)
(set! gp-2 #t)
@@ -914,7 +914,7 @@
)
)
:enter (behavior ((arg0 symbol))
(set! (-> self mask) (logior (process-mask platform) (-> self mask)))
(logior! (-> self mask) (process-mask platform))
(set! (-> self state-time) (-> *display* base-frame-counter))
(none)
)
@@ -1024,7 +1024,7 @@
(when (+ (-> *display* base-frame-counter) (seconds -0.1))
(let ((a0-9 (new 'stack-no-clear 'vector)))
(set! (-> a0-9 quad) (-> self last-pos quad))
(set! (-> a0-9 y) (+ 64102.4 (-> a0-9 y)))
(+! (-> a0-9 y) 64102.4)
(when (< (-> a0-9 y) (+ 12288.0 (ocean-get-height a0-9)))
(if (not s5-0)
(set! s5-0 #t)
+11 -11
View File
@@ -762,7 +762,7 @@
(a0-109 (new 'stack-no-clear 'vector))
)
(set! (-> a0-109 quad) (-> v1-184 jar-pos quad))
(set! (-> a0-109 y) (+ 40960.0 (-> a0-109 y)))
(+! (-> a0-109 y) 40960.0)
(send-event (handle->process (-> v1-184 actor-handle)) 'trans a0-109)
)
(set! (-> self state-time) (-> *display* base-frame-counter))
@@ -951,9 +951,9 @@
(set! (-> s0-0 sucked-up-jar-part-pos quad) (-> s0-0 jar-pos quad))
(set! (-> s0-0 sucked-up-far-part-pos quad) (-> s0-0 far-pos quad))
(set! (-> s0-0 blown-out-jar-part-pos quad) (-> s0-0 jar-pos quad))
(set! (-> s0-0 blown-out-jar-part-pos y) (+ 24576.0 (-> s0-0 blown-out-jar-part-pos y)))
(+! (-> s0-0 blown-out-jar-part-pos y) 24576.0)
(set! (-> s0-0 blown-out-far-part-pos quad) (-> s0-0 far-pos quad))
(set! (-> s0-0 blown-out-far-part-pos y) (+ 28672.0 (-> s0-0 blown-out-far-part-pos y)))
(+! (-> s0-0 blown-out-far-part-pos y) 28672.0)
(let ((v1-30 s2-0))
(cond
((zero? v1-30)
@@ -963,8 +963,8 @@
(set-vector! s4-0 -30720.0 1146.88 5120.0 1.0)
(set! (-> s0-0 sucked-up-part) (create-launch-control (-> *part-group-id-table* 448) obj))
(set! (-> s0-0 blown-out-part) (create-launch-control (-> *part-group-id-table* 451) obj))
(set! (-> s0-0 jar-pos y) (+ 11673.6 (-> s0-0 jar-pos y)))
(set! (-> s0-0 far-pos y) (+ 11673.6 (-> s0-0 far-pos y)))
(+! (-> s0-0 jar-pos y) 11673.6)
(+! (-> s0-0 far-pos y) 11673.6)
(when (not s1-1)
(set! (-> s0-0 actor-handle)
(ppointer->handle
@@ -985,9 +985,9 @@
(set-vector! s4-0 0.0 1146.88 5120.0 1.0)
(set! (-> s0-0 sucked-up-part) (create-launch-control (-> *part-group-id-table* 449) obj))
(set! (-> s0-0 blown-out-part) (create-launch-control (-> *part-group-id-table* 452) obj))
(set! (-> s0-0 jar-pos y) (+ 7168.0 (-> s0-0 jar-pos y)))
(set! (-> s0-0 far-pos y) (+ 7168.0 (-> s0-0 far-pos y)))
(set! (-> s0-0 blown-out-far-part-pos y) (+ 4096.0 (-> s0-0 blown-out-far-part-pos y)))
(+! (-> s0-0 jar-pos y) 7168.0)
(+! (-> s0-0 far-pos y) 7168.0)
(+! (-> s0-0 blown-out-far-part-pos y) 4096.0)
(when (not s1-1)
(set! (-> s0-0 actor-handle)
(ppointer->handle
@@ -1009,9 +1009,9 @@
(set-vector! s4-0 30720.0 1146.88 5120.0 1.0)
(set! (-> s0-0 sucked-up-part) (create-launch-control (-> *part-group-id-table* 450) obj))
(set! (-> s0-0 blown-out-part) (create-launch-control (-> *part-group-id-table* 453) obj))
(set! (-> s0-0 jar-pos y) (+ 7168.0 (-> s0-0 jar-pos y)))
(set! (-> s0-0 far-pos y) (+ 7168.0 (-> s0-0 far-pos y)))
(set! (-> s0-0 blown-out-far-part-pos y) (+ 4096.0 (-> s0-0 blown-out-far-part-pos y)))
(+! (-> s0-0 jar-pos y) 7168.0)
(+! (-> s0-0 far-pos y) 7168.0)
(+! (-> s0-0 blown-out-far-part-pos y) 4096.0)
(when (not s1-1)
(set! (-> s0-0 actor-handle)
(ppointer->handle
+2 -2
View File
@@ -122,7 +122,7 @@
)
(set! (-> self draw color-mult w) 0.5)
(if (= f30-0 1.0)
(set! (-> self flags) (logior (water-flags wt19) (-> self flags)))
(logior! (-> self flags) (water-flags wt19))
)
)
)
@@ -207,7 +207,7 @@
(when (and s5-0 (or (= f0-16 0.0) (= f0-16 1.0)))
(set! s5-0 #f)
(if (= f0-16 0.0)
(set! (-> obj flags) (logior (water-flags wt19) (-> obj flags)))
(logior! (-> obj flags) (water-flags wt19))
(logclear! (-> obj flags) (water-flags wt19))
)
)
+29 -33
View File
@@ -39,8 +39,8 @@
)
(defstate wall-plat-retracted (wall-plat)
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(case event-type
(('trigger)
(go wall-plat-extending)
)
@@ -60,14 +60,14 @@
)
(defstate wall-plat-extending (wall-plat)
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (when (= v1-0 'touch)
(send-event arg0 'no-look-around (seconds 1.5))
#f
)
)
)
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(the-as object (case event-type
(('touch)
(send-event proc 'no-look-around (seconds 1.5))
#f
)
)
)
)
:enter (behavior ()
(sound-play "wall-plat")
@@ -94,8 +94,8 @@
)
(defstate wall-plat-extended (wall-plat)
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(case event-type
(('untrigger)
(go wall-plat-retracting)
)
@@ -114,14 +114,14 @@
)
(defstate wall-plat-retracting (wall-plat)
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (when (= v1-0 'touch)
(send-event arg0 'no-look-around (seconds 1.5))
#f
)
)
)
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(the-as object (case event-type
(('touch)
(send-event proc 'no-look-around (seconds 1.5))
#f
)
)
)
)
:enter (behavior ()
(sound-play "wall-plat")
@@ -147,14 +147,14 @@
)
(defstate wall-plat-sync-idle (wall-plat)
:event (behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (when (= v1-0 'touch)
(send-event arg0 'no-look-around (seconds 1.5))
#f
)
)
)
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
(the-as object (case event-type
(('touch)
(send-event proc 'no-look-around (seconds 1.5))
#f
)
)
)
)
:enter (behavior ()
(logclear! (-> self mask) (process-mask actor-pause))
@@ -201,7 +201,7 @@
(defmethod init-from-entity! wall-plat ((obj wall-plat) (arg0 entity-actor))
(set! (-> obj extended-amount) 0.0)
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -258,7 +258,3 @@
)
(none)
)
+4 -4
View File
@@ -50,9 +50,9 @@
)
(defmethod init-from-entity! wedge-plat-master ((obj wedge-plat-master) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(set! (-> obj center quad) (-> arg0 extra trans quad))
(set! (-> obj center y) (+ 819.2 (-> obj center y)))
(+! (-> obj center y) 819.2)
(set! (-> obj rotspeed) (res-lump-float arg0 'rotspeed))
(set! (-> obj rotate-inner) 0.0)
(set! (-> obj rotate-outer) 0.0)
@@ -197,7 +197,7 @@
)
(defmethod init-from-entity! wedge-plat ((obj wedge-plat) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)
@@ -360,7 +360,7 @@
)
(defmethod init-from-entity! wedge-plat-outer ((obj wedge-plat-outer) (arg0 entity-actor))
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
(logior! (-> obj mask) (process-mask platform))
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s4-0 reaction) default-collision-reaction)

Some files were not shown because too many files have changed in this diff Show More