diff --git a/.vscode/opengoal.code-snippets b/.vscode/opengoal.code-snippets index e7947caaf4..45975a6791 100644 --- a/.vscode/opengoal.code-snippets +++ b/.vscode/opengoal.code-snippets @@ -23,4 +23,10 @@ "body": [";; og:update-with-merge"], "description": "The file will be updated with a git merge-file instead of naive copy-paste" }, + "og:preserve-this": { + "scope": "opengoal", + "prefix": ["og:preserve-this"], + "body": [";; og:preserve-this"], + "description": "When updating GOAL source files from decomp, CI will pick up if this comment is deleted in the diff. Use this to keep track of manually patched sections of code." + }, } diff --git a/decompiler/IR2/Form.h b/decompiler/IR2/Form.h index 87f6c7509d..0ff7f1b72b 100644 --- a/decompiler/IR2/Form.h +++ b/decompiler/IR2/Form.h @@ -1295,6 +1295,7 @@ class DerefElement : public FormElement { private: ConstantTokenElement* try_as_art_const(const Env& env, FormPool& pool); GenericElement* try_as_curtime(FormPool& pool); + GenericElement* try_as_seconds_per_frame(FormPool& pool); Form* m_base = nullptr; bool m_is_addr_of = false; diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index 1a45ae9d60..9d80f7a900 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -3846,6 +3846,52 @@ void FunctionCallElement::update_from_stack(const Env& env, } } + // detect launch-particles macro + { + if (unstacked.at(0)->to_form(env).is_symbol("sp-launch-particles-var")) { + auto system = arg_forms.at(0); + auto part = arg_forms.at(1); + auto origin = arg_forms.at(2); + auto launch_state = arg_forms.at(3); + auto launch_control = arg_forms.at(4); + auto rate = arg_forms.at(5); + std::vector macro; + + if (system->to_string(env) != "*sp-particle-system-2d*") { + macro.push_back(pool.form(":system")); + macro.push_back(system); + } + macro.push_back(part); + macro.push_back(origin); + + auto mr_launch_state = + match(Matcher::cast("sparticle-launch-state", Matcher::symbol("#f")), launch_state); + auto mr_launch_control = + match(Matcher::cast("sparticle-launch-control", Matcher::symbol("#f")), launch_control); + if (!mr_launch_state.matched) { + macro.push_back(pool.form(":launch-state")); + macro.push_back(launch_state); + } + if (!mr_launch_control.matched) { + macro.push_back(pool.form(":launch-control")); + macro.push_back(launch_control); + } + if (rate->to_string(env) != "1.0") { + macro.push_back(pool.form(":rate")); + macro.push_back(rate); + } + + if (env.version > GameVersion::Jak1) { + macro.push_back(pool.form(":origin-is-matrix")); + macro.push_back(pool.form("#t")); + } + + new_form = pool.alloc_element( + GenericOperator::make_function(pool.form("launch-particles")), + macro); + } + } + result->push_back(new_form); } @@ -3895,6 +3941,18 @@ GenericElement* DerefElement::try_as_curtime(FormPool& pool) { return nullptr; } +GenericElement* DerefElement::try_as_seconds_per_frame(FormPool& pool) { + auto mr = match(Matcher::deref(Matcher::s6(), false, + {DerefTokenMatcher::string("clock"), + DerefTokenMatcher::string("seconds-per-frame")}), + this); + if (mr.matched) { + return pool.alloc_element( + GenericOperator::make_function(pool.form("seconds-per-frame"))); + } + return nullptr; +} + void DerefElement::update_from_stack(const Env& env, FormPool& pool, FormStack& stack, @@ -3937,6 +3995,13 @@ void DerefElement::update_from_stack(const Env& env, return; } + // seconds-per-frame macro + auto as_seconds_per_frame = try_as_seconds_per_frame(pool); + if (as_seconds_per_frame) { + result->push_back(as_seconds_per_frame); + return; + } + result->push_back(this); } diff --git a/decompiler/ObjectFile/ObjectFileDB.h b/decompiler/ObjectFile/ObjectFileDB.h index 8b4b0158e1..8e22ed62ab 100644 --- a/decompiler/ObjectFile/ObjectFileDB.h +++ b/decompiler/ObjectFile/ObjectFileDB.h @@ -78,11 +78,13 @@ struct LetRewriteStats { int set_let = 0; int with_dma_buf_add_bucket = 0; int dma_buffer_add_gs_set = 0; + int launch_particles = 0; int total() const { return dotimes + countdown + abs + abs2 + unused + ja + case_no_else + case_with_else + set_vector + set_vector2 + send_event + font_context_meth + proc_new + attack_info + - vector_dot + rand_float_gen + set_let + with_dma_buf_add_bucket + dma_buffer_add_gs_set; + vector_dot + rand_float_gen + set_let + with_dma_buf_add_bucket + dma_buffer_add_gs_set + + launch_particles; } std::string print() const { @@ -108,6 +110,7 @@ struct LetRewriteStats { out += fmt::format(" set_let: {}\n", set_let); out += fmt::format(" with_dma_buf_add_bucket: {}\n", with_dma_buf_add_bucket); out += fmt::format(" dma_buffer_add_gs_set: {}\n", dma_buffer_add_gs_set); + out += fmt::format(" launch_particles: {}\n", launch_particles); return out; } @@ -131,6 +134,7 @@ struct LetRewriteStats { result.rand_float_gen = rand_float_gen + other.rand_float_gen; result.set_let = rand_float_gen + other.set_let; result.with_dma_buf_add_bucket = rand_float_gen + other.with_dma_buf_add_bucket; + result.launch_particles = launch_particles + other.launch_particles; return result; } @@ -153,6 +157,7 @@ struct LetRewriteStats { rand_float_gen += other.rand_float_gen; set_let += other.set_let; with_dma_buf_add_bucket += other.with_dma_buf_add_bucket; + launch_particles += other.launch_particles; return *this; } }; diff --git a/decompiler/analysis/insert_lets.cpp b/decompiler/analysis/insert_lets.cpp index 88d9995153..fb216dd149 100644 --- a/decompiler/analysis/insert_lets.cpp +++ b/decompiler/analysis/insert_lets.cpp @@ -2247,6 +2247,116 @@ FormElement* rewrite_with_dma_buf_add_bucket(LetElement* in, const Env& env, For return elt; } +FormElement* rewrite_launch_particles(LetElement* in, const Env& env, FormPool& pool) { + /* + * (let ((t9-0 sp-launch-particles-var) + * (a0-1 *sp-particle-system-2d*) + * (a1-0 (-> *part-id-table* 539)) + * (a2-0 *launch-matrix*) + * ) + * (set! (-> a2-0 trans quad) (-> arg0 quad)) + * (t9-0 a0-1 a1-0 a2-0 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control + * #f) 1.0) + * ) + * to: + * (launch-particles (-> *part-id-table* 539) arg0) + */ + + if (in->entries().size() != 4) { + return nullptr; + } + + if (in->body()->elts().size() != 2) { + return nullptr; + } + + auto func = in->entries().at(0); + if (func.src->elts().at(0)->to_string(env) != "sp-launch-particles-var") { + return nullptr; + } + + auto set_elt = dynamic_cast(in->body()->at(0)); + if (!set_elt) { + return nullptr; + } + + auto func_elt = dynamic_cast(in->body()->at(1)); + if (!func_elt) { + return nullptr; + } + + auto part_system = in->entries().at(1); + auto system = part_system.src->at(0)->to_string(env); + if (system != "*sp-particle-system-2d*" && system != "*sp-particle-system-3d*") { + return nullptr; + } + + auto part_form = in->entries().at(2).src; + auto part = dynamic_cast(part_form->elts().at(0)); + if (!part) { + return nullptr; + } + + auto part_id_table = part->base()->to_string(env); + if (part_id_table != "*part-id-table*") { + return nullptr; + } + + auto launch_matrix = in->entries().at(3); + if (launch_matrix.src->at(0)->to_string(env) != "*launch-matrix*") { + return nullptr; + } + + auto origin = dynamic_cast(set_elt->src()->elts().at(0)); + if (!origin) { + return nullptr; + } + auto tokens = origin->tokens().size(); + Form* origin_form; + // remove only the quad if there are multiple derefs + if (tokens > 1) { + origin_form = pool.form(origin->base(), false, origin->tokens()); + auto orig = dynamic_cast(origin_form->elts().at(0)); + orig->tokens().pop_back(); + } else { + origin_form = origin->base(); + } + + auto launch_state = func_elt->elts().at(func_elt->elts().size() - 3); + auto mr_launch_state = + match(Matcher::cast("sparticle-launch-state", Matcher::symbol("#f")), launch_state); + auto launch_control = func_elt->elts().at(func_elt->elts().size() - 2); + auto mr_launch_control = + match(Matcher::cast("sparticle-launch-control", Matcher::symbol("#f")), launch_control); + + auto rate = func_elt->elts().at(func_elt->elts().size() - 1)->to_string(env); + + // build the macro + std::vector macro; + if (system != "*sp-particle-system-2d*") { + macro.push_back(pool.form(":system")); + macro.push_back(pool.form(system)); + } + macro.push_back(part_form); + if (!mr_launch_state.matched) { + macro.push_back(pool.form(":launch-state")); + macro.push_back(launch_state); + } + if (!mr_launch_control.matched) { + macro.push_back(pool.form(":launch-control")); + macro.push_back(launch_control); + } + macro.push_back(origin_form); + if (rate != "1.0") { + macro.push_back(pool.form(":rate")); + macro.push_back(pool.form(rate)); + } + auto elt = pool.alloc_element( + GenericOperator::make_function(pool.form("launch-particles")), macro); + elt->parent_form = in->parent_form; + return elt; +} + FormElement* rewrite_multi_let(LetElement* in, const Env& env, FormPool& pool, @@ -2271,6 +2381,14 @@ FormElement* rewrite_multi_let(LetElement* in, } } + if (in->entries().size() >= 4) { + auto as_launch_particles = rewrite_launch_particles(in, env, pool); + if (as_launch_particles) { + stats.launch_particles++; + return as_launch_particles; + } + } + if (in->entries().size() >= 6) { auto as_vector_dot = rewrite_multi_let_as_vector_dot(in, env, pool); if (as_vector_dot) { diff --git a/goal_src/jak1/engine/common-obs/generic-obs.gc b/goal_src/jak1/engine/common-obs/generic-obs.gc index 9aaa46bd9a..7669301a7a 100644 --- a/goal_src/jak1/engine/common-obs/generic-obs.gc +++ b/goal_src/jak1/engine/common-obs/generic-obs.gc @@ -481,7 +481,8 @@ ) (defbehavior manipy-init manipy ((arg0 vector) (arg1 entity-actor) (arg2 skeleton-group) (arg3 vector)) - (stack-size-set! (-> self main-thread) 256) ;; from 128 + ;; og:preserve-this increased from 128 + (stack-size-set! (-> self main-thread) 256) (logior! (-> self mask) (process-mask heap-shrunk)) (set! (-> self entity) arg1) (cond @@ -537,6 +538,7 @@ ((nonzero? (-> self skel)) (set! (-> self new-joint-anim) (ja-group)) (set! (-> self anim-mode) 'loop) + ;; og:preserve-this (#when PC_PORT (set! (-> self skel postbind-function) process-drawable-joint-callback-pc)) ) @@ -1252,6 +1254,7 @@ (.mov v1-37 vf16) ) (suspend) + ;; og:preserve-this (init-vf0-vector) ) (none) @@ -1400,6 +1403,7 @@ ) ) ((= (-> s2-0 -1) symbol) + ;; og:preserve-this (set! s4-0 (symbol->string (the-as symbol s2-0))) (set! s3-0 (lookup-part-group-pointer-by-name (the-as string s4-0))) (if s3-0 @@ -1690,7 +1694,8 @@ (let ((s5-0 (new-stack-matrix0)) (gp-0 (vector-reset! (new 'stack-no-clear 'vector))) ) - (let* ((f0-0 (analog-input-horizontal-third (the-as int (+ (-> *cpad-list* cpads 0 rightx) -128)) 0.0 48.0 110.0 -1.0)) ;; changed for pc port + ;; og:preserve-this changed for pc port + (let* ((f0-0 (analog-input-horizontal-third (the-as int (+ (-> *cpad-list* cpads 0 rightx) -128)) 0.0 48.0 110.0 -1.0)) (f1-1 (* -546.13336 f0-0)) (f0-2 (fmin 546.13336 (fmax -546.13336 f1-1))) ) @@ -1758,15 +1763,18 @@ ) ) +;; og:preserve-this ;; blue eco launcher cam (not used for enclosed launchers like in jungle temple) (defbehavior cam-launcher-long-joystick camera-slave () (when *camera-read-analog* (let ((gp-0 (new-stack-matrix0))) - (let* ((f0-0 (analog-input-horizontal-third (the-as int (+ (-> *cpad-list* cpads 0 rightx) -128)) 0.0 48.0 110.0 -1.0)) ;; changed for pc port + ;; og:preserve-this changed for pc port + (let* ((f0-0 (analog-input-horizontal-third (the-as int (+ (-> *cpad-list* cpads 0 rightx) -128)) 0.0 48.0 110.0 -1.0)) (f1-1 (* -546.13336 f0-0)) (f0-2 (fmin 546.13336 (fmax -546.13336 f1-1))) ) - (matrix-axis-angle! gp-0 (-> *camera* local-down) (* DISPLAY_FPS_RATIO f0-2)) ;; changed for high fps + ;; og:preserve-this changed for high fps + (matrix-axis-angle! gp-0 (-> *camera* local-down) (* DISPLAY_FPS_RATIO f0-2)) ) (vector-matrix*! (-> self view-flat) (-> self view-flat) gp-0) ) diff --git a/goal_src/jak1/engine/common-obs/water.gc b/goal_src/jak1/engine/common-obs/water.gc index 975a4d52f8..1af63e18f3 100644 --- a/goal_src/jak1/engine/common-obs/water.gc +++ b/goal_src/jak1/engine/common-obs/water.gc @@ -48,7 +48,7 @@ (sp-kill-particle arg0 arg1) (set-vector! s5-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) (sound-play "water-drop" :position (the-as symbol s5-0)) - (launch-particles :system *sp-particle-system-3d* :rate 1.0 (-> *part-id-table* 108) s5-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 108) s5-0 :rate 1.0) ) ) 0 diff --git a/goal_src/jak1/engine/game/powerups.gc b/goal_src/jak1/engine/game/powerups.gc index 1a2960eb23..fdbe6742c4 100644 --- a/goal_src/jak1/engine/game/powerups.gc +++ b/goal_src/jak1/engine/game/powerups.gc @@ -526,12 +526,11 @@ ) ) (let ((gp-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 74)))) - (if (and (< (fabs - (vector-dot - (-> self control dynam gravity-normal) - (vector-! (new 'stack-no-clear 'vector) gp-0 (-> self control trans)) - ) - ) + (if (and (< (fabs (vector-dot + (-> self control dynam gravity-normal) + (vector-! (new 'stack-no-clear 'vector) gp-0 (-> self control trans)) + ) + ) 819.2 ) (rand-vu-percent? 0.5) @@ -540,12 +539,11 @@ ) ) (let ((gp-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 70)))) - (if (and (< (fabs - (vector-dot - (-> self control dynam gravity-normal) - (vector-! (new 'stack-no-clear 'vector) gp-1 (-> self control trans)) - ) - ) + (if (and (< (fabs (vector-dot + (-> self control dynam gravity-normal) + (vector-! (new 'stack-no-clear 'vector) gp-1 (-> self control trans)) + ) + ) 819.2 ) (rand-vu-percent? 0.5) @@ -553,7 +551,7 @@ (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2391) gp-1) ) ) - ;; PAL patch here + ;; og:preserve-this PAL patch here (let ((f0-8 (lerp-scale 80.0 100.0 (-> self control unknown-float01) 0.0 81920.0))) (if (not (ja-group? (-> self draw art-group data 104))) (set! f0-8 (* 0.8 f0-8)) @@ -624,15 +622,21 @@ (((pickup-type eco-yellow)) (change-sound! (-> self sound) (static-sound-name "yel-eco-jak")) (let ((s4-0 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) - (launch-particles (-> *part-id-table* (if (rand-vu-percent? 0.5) 269 270)) - (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data s4-0)) - ) + (launch-particles + (-> *part-id-table* (if (rand-vu-percent? 0.5) + 269 + 270 + ) + ) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data s4-0)) + ) ) (dotimes (gp-4 2) (let ((v1-111 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) - (launch-particles (-> *part-id-table* 271) - (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-111)) - ) + (launch-particles + (-> *part-id-table* 271) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-111)) + ) ) ) ) @@ -648,15 +652,21 @@ (update-transforms! (-> self control)) (change-sound! (-> self sound) (static-sound-name "red-eco-jak")) (let ((s4-2 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) - (launch-particles (-> *part-id-table* (if (rand-vu-percent? 0.5) 273 274)) - (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data s4-2)) - ) + (launch-particles + (-> *part-id-table* (if (rand-vu-percent? 0.5) + 273 + 274 + ) + ) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data s4-2)) + ) ) (dotimes (gp-6 2) (let ((v1-139 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) - (launch-particles (-> *part-id-table* 275) - (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-139)) - ) + (launch-particles + (-> *part-id-table* 275) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-139)) + ) ) ) ) @@ -675,35 +685,53 @@ (set! (-> *part-id-table* 259 init-specs 4 random-rangef) 16384.0) ) ) - (launch-particles (-> *part-id-table* 259) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-150)) -) + (launch-particles + (-> *part-id-table* 259) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-150)) + ) ) (let ((gp-8 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) - (launch-particles (-> *part-id-table* (if (rand-vu-percent? 0.5) 255 256)) - (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data gp-8)) - ) + (launch-particles + (-> *part-id-table* (if (rand-vu-percent? 0.5) + 255 + 256 + ) + ) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data gp-8)) + ) (if (rand-vu-percent? 0.5) - (launch-particles (-> *part-id-table* 257) - (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data gp-8)) - ) + (launch-particles + (-> *part-id-table* 257) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data gp-8)) + ) ) ) (let ((v1-168 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) - (launch-particles (-> *part-id-table* 260) - (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-168)) - ) + (launch-particles + (-> *part-id-table* 260) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-168)) + ) ) (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 1 (seconds 0.1)) ) (((pickup-type eco-green)) (change-sound! (-> self sound) (static-sound-name "green-eco-jak")) (let ((s4-8 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) - (launch-particles (-> *part-id-table* (if (rand-vu-percent? 0.5) 277 278)) - (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data s4-8))) + (launch-particles + (-> *part-id-table* (if (rand-vu-percent? 0.5) + 277 + 278 + ) + ) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data s4-8)) + ) ) (dotimes (gp-11 2) (let ((v1-188 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) - (launch-particles (-> *part-id-table* 279) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-188))) + (launch-particles + (-> *part-id-table* 279) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-188)) + ) ) ) ) diff --git a/goal_src/jak1/engine/gfx/mood/weather-part.gc b/goal_src/jak1/engine/gfx/mood/weather-part.gc index 2c208e9685..be3db5b0e0 100644 --- a/goal_src/jak1/engine/gfx/mood/weather-part.gc +++ b/goal_src/jak1/engine/gfx/mood/weather-part.gc @@ -444,8 +444,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (launch-particles :rate 1.0 (-> *part-id-table* 39) gp-0) - (launch-particles :system *sp-particle-system-3d* :rate 1.0 (-> *part-id-table* 40) gp-0) + (launch-particles (-> *part-id-table* 39) gp-0 :rate 1.0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 40) gp-0 :rate 1.0) ) ) (none) diff --git a/goal_src/jak1/engine/gfx/sprite/sparticle/sparticle-launcher.gc b/goal_src/jak1/engine/gfx/sprite/sparticle/sparticle-launcher.gc index 597250b32d..eb2d3d3439 100644 --- a/goal_src/jak1/engine/gfx/sprite/sparticle/sparticle-launcher.gc +++ b/goal_src/jak1/engine/gfx/sprite/sparticle/sparticle-launcher.gc @@ -5,6 +5,12 @@ ;; name in dgo: sparticle-launcher ;; dgos: GAME, ENGINE +;; og:preserve-this added macro +(defmacro launch-particles (&key (system *sp-particle-system-2d*) particle origin &key (launch-state (the-as sparticle-launch-state #f)) &key (launch-control (the-as sparticle-launch-control #f)) + &key (rate DISPLAY_FPS_RATIO)) + `(sp-launch-particles-var ,system ,particle ,origin ,launch-state ,launch-control ,rate) + ) + ;; decomp begins (define *particle-300hz-timer* 0) @@ -86,6 +92,7 @@ (dotimes (gp-0 s3-0) (let ((v1-2 (-> s4-0 gp-0))) (if (and (nonzero? v1-2) (string= arg0 (-> v1-2 name))) + ;; og:preserve-this ;;(return (&+ (-> s4-0 data) (* gp-0 4))) (return (&-> s4-0 gp-0)) ) @@ -98,6 +105,7 @@ (defun part-group-pointer? ((arg0 pointer)) "Is the given pointer a pointer that was returned by lookup-part-group-pointer-by-name?" (let ((v1-0 *part-group-id-table*)) + ;; og:preserve-this ;; just check if we are inside the array. (and (>= (the-as int arg0) (the-as int (-> v1-0 data))) (< (the-as int arg0) (the-as int (&-> v1-0 1024))) @@ -129,7 +137,7 @@ ;; particle init ;;;;;;;;;;;;;;;;;;;;;;; -;; this was rewritten from assembly +;; og:preserve-this this was rewritten from assembly (defun sp-init-fields! ((arg0 (pointer float)) (arg1 (inline-array sp-field-init-spec)) (arg2 sp-field-id) (arg3 sp-field-id) (write-missing-fields symbol)) (1+! arg2) (let ((cur-spec arg1)) @@ -191,6 +199,7 @@ ;; launch queue ;;;;;;;;;;;;;;;;;;;;;;; +;; og:preserve-this ;(#if (not PC_BIG_MEMORY) (defconstant SPARTICLE_QUEUE_SIZE 32) ;(defconstant SPARTICLE_QUEUE_SIZE 80)) @@ -205,7 +214,7 @@ :flag-assert #x900000020 ) - +;; og:preserve-this constant (deftype sp-launch-queue (basic) ((in-use int32 :offset-assert 4) (queue sp-queued-launch-particles SPARTICLE_QUEUE_SIZE :inline :offset-assert 16) @@ -252,7 +261,7 @@ (set! (-> arg0 prims 9) (gs-reg64 alpha-1)) (set! (-> arg0 alpha) (new 'static 'gs-alpha :b #x1 :d #x1)) - ;; clamp is actually zbuf for sparticles, not gs-clamp. + ;; og:preserve-this clamp is actually zbuf for sparticles, not gs-clamp. (set! (-> arg0 clamp) (the gs-clamp (new 'static 'gs-zbuf :zbp #x1c0 :psm (gs-psm ct24) :zmsk #x1))) 0 (none) @@ -275,8 +284,7 @@ (define *particle-adgif-cache* (new 'global 'particle-adgif-cache)) (set! (-> *particle-adgif-cache* used) 0) -(define-extern particle-adgif (function adgif-shader texture-id none)) -(set! particle-adgif (the (function adgif-shader texture-id none) (__pc-get-mips2c "particle-adgif"))) +(def-mips2c particle-adgif (function adgif-shader texture-id none)) ;;;;;;;;;;;;;;;;;;; ;; launch @@ -286,6 +294,7 @@ "Queue a launch from the given launcher, at the given position." (let ((v1-0 *sp-launch-queue*)) + ;; og:preserve-this constant ;; make sure we have room in the queue (when (= (-> v1-0 in-use) SPARTICLE_QUEUE_SIZE) (format 0 "ERROR: sp-launch-particles called during processing, and queue is full~%") @@ -464,6 +473,7 @@ (define *death-adgif* (the-as adgif-shader #f)) +;; WARN: Function sp-launch-particles-death has a return type of none, but the expression builder found a return statement. (defun sp-launch-particles-death ((arg0 sparticle-system) (arg1 sparticle-launcher) (arg2 vector)) (rlet ((vf0 :class vf) (vf1 :class vf) @@ -593,14 +603,7 @@ (when (> (-> gp-0 in-use) 0) (dotimes (s5-0 (-> gp-0 in-use)) (let ((v1-4 (-> gp-0 queue s5-0))) - (sp-launch-particles-var - (-> v1-4 sp-system) - (-> v1-4 sp-launcher) - (-> v1-4 pos) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system (-> v1-4 sp-system) (-> v1-4 sp-launcher) (-> v1-4 pos) :rate 1.0) ) ) (set! (-> gp-0 in-use) 0) @@ -939,11 +942,11 @@ ) ) - ;; can we see it? + ;; og:preserve-this can we see it? (#if (not PC_PORT) (sphere-in-view-frustum? (the-as sphere gp-1)) (if (-> *pc-settings* ps2-parts?) - ;; pc port : launchers have larger bsphere if you have ps2 parts off + ;; og:preserve-this pc port: launchers have larger bsphere if you have ps2 parts off (sphere-in-view-frustum? (the-as sphere gp-1)) (sphere-in-view-frustum? (the-as sphere (begin (*! (-> gp-1 w) 8.0) gp-1))) ) @@ -958,6 +961,7 @@ (defmethod spawn sparticle-launch-control ((obj sparticle-launch-control) (arg0 vector)) (set! (-> obj center quad) (-> arg0 quad)) + ;; og:preserve-this ;; check if we are visible (remove this check to force particles to be drawn.) (if (not (or (is-visible? obj arg0) (logtest? (-> obj group flags) (sp-group-flag always-draw screen-space)) @@ -996,7 +1000,7 @@ (set! f30-0 0.0) ) - ;; if we have ps2 particles off, say we're at the camera + ;; og:preserve-this if we have ps2 particles off, say we're at the camera (with-pc (if (not (-> *pc-settings* ps2-parts?)) (set! f30-0 0.0))) @@ -1024,7 +1028,7 @@ (b! (!= (-> a1-4 type) a0-26) cfg-78 :delay (nop!)) ) - ;; PAL patch here + ;; og:preserve-this PAL patch here ;; ?? (b! (zero? (logand (-> v1-29 flags) (sp-group-item-flag launch-asap bit6))) cfg-36 :delay (nop!) @@ -1037,16 +1041,16 @@ (set! (-> a3-0 spawn-time) (the-as uint s4-0)) (logior! (-> a3-0 flags) (sp-launch-state-flags particles-active)) (if (< 0.0 f0-2) - (sp-launch-particles-var - (if (logtest? (-> v1-29 flags) (sp-group-item-flag is-3d)) + (launch-particles + :system (if (logtest? (-> v1-29 flags) (sp-group-item-flag is-3d)) *sp-particle-system-3d* *sp-particle-system-2d* ) a1-4 (-> a3-0 origin) - a3-0 - obj - f0-2 + :launch-state a3-0 + :launch-control obj + :rate f0-2 ) ) ) @@ -1102,16 +1106,16 @@ (set! (-> a3-0 spawn-time) (the-as uint s4-0)) (logior! (-> a3-0 flags) (sp-launch-state-flags particles-active)) (if (< 0.0 f0-4) - (sp-launch-particles-var - (if (logtest? (-> v1-29 flags) (sp-group-item-flag is-3d)) + (launch-particles + :system (if (logtest? (-> v1-29 flags) (sp-group-item-flag is-3d)) *sp-particle-system-3d* *sp-particle-system-2d* ) a1-4 (-> a3-0 origin) - a3-0 - obj - f0-4 + :launch-state a3-0 + :launch-control obj + :rate f0-4 ) ) ) @@ -1283,7 +1287,12 @@ ) ) -(defun birth-func-copy-omega-to-z ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sprite-vec-data-3d) (arg3 sparticle-launcher) (arg4 sparticle-launch-state)) +(defun birth-func-copy-omega-to-z ((arg0 sparticle-system) + (arg1 sparticle-cpuinfo) + (arg2 sprite-vec-data-3d) + (arg3 sparticle-launcher) + (arg4 sparticle-launch-state) + ) (set! (-> arg2 qx-qy-qz-sy z) (+ -16384.0 (-> arg1 omega))) (set! (-> arg1 next-time) (-> arg4 sprite next-time)) (set! (-> arg2 x-y-z-sx w) (* 163.85638 (the float (-> arg4 sprite next-time)))) @@ -1291,7 +1300,12 @@ (none) ) -(defun birth-func-random-next-time ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sprite-vec-data-3d) (arg3 sparticle-launcher) (arg4 sparticle-launch-state)) +(defun birth-func-random-next-time ((arg0 sparticle-system) + (arg1 sparticle-cpuinfo) + (arg2 sprite-vec-data-3d) + (arg3 sparticle-launcher) + (arg4 sparticle-launch-state) + ) (set! (-> arg1 next-time) (the-as uint (the int (rand-vu-float-range 0.0 (-> arg1 user-float))))) 0 (none) diff --git a/goal_src/jak1/engine/gfx/sprite/sparticle/sparticle.gc b/goal_src/jak1/engine/gfx/sprite/sparticle/sparticle.gc index db83f133e2..eb70cf3127 100644 --- a/goal_src/jak1/engine/gfx/sprite/sparticle/sparticle.gc +++ b/goal_src/jak1/engine/gfx/sprite/sparticle/sparticle.gc @@ -128,12 +128,6 @@ (new 'global 'sparticle-system 256 0 #t (-> *sprite-array-3d* vec-data) (-> *sprite-array-3d* adgif-data)) ) -(defmacro launch-particles (&key (system *sp-particle-system-2d*) particle origin &key (launch-state (the-as sparticle-launch-state #f)) &key (launch-control (the-as sparticle-launch-control #f)) - &key (rate DISPLAY_FPS_RATIO)) - `(sp-launch-particles-var ,system ,particle ,origin ,launch-state ,launch-control ,rate) - ) - - ;;;;;;;;;;;;;;;;;;;; ;; alloc and block ;;;;;;;;;;;;;;;;;;;; diff --git a/goal_src/jak1/engine/target/target-part.gc b/goal_src/jak1/engine/target/target-part.gc index 93dd6e8118..25493956be 100644 --- a/goal_src/jak1/engine/target/target-part.gc +++ b/goal_src/jak1/engine/target/target-part.gc @@ -36,7 +36,7 @@ (s5-0 *target*) ) (+! (-> a1-1 y) 4096.0) - ;; NOTE : added *target* check here. + ;; og:preserve-this added *target* check here. (when (and s5-0 (>= (fill-and-probe-using-y-probe *collide-cache* a1-1 @@ -93,7 +93,7 @@ ) (init-vf0-vector) (set! sv-16 *target*) - ;; NOTE : added check here + ;; og:preserve-this added check here (if (not sv-16) (return #f)) (let ((s3-0 (new 'stack-no-clear 'vector))) (new 'stack-no-clear 'vector) @@ -176,7 +176,7 @@ ) (defun part-tracker-track-target-joint ((arg0 int) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo)) - ;; NOTE : added this check + ;; og:preserve-this added this check (if (not *target*) (return #f)) (let* ((v1-0 *target*) (v1-2 (vector<-cspace! (new 'stack-no-clear 'vector) (-> v1-0 node-list data (the int (-> arg1 user-float))))) @@ -2165,12 +2165,11 @@ ) ) ) - (let ((a2-3 - (process-drawable-random-point! - (the-as process-drawable (ppointer->process s4-1)) - (new 'stack-no-clear 'vector) - ) - ) + (let ((a2-3 (process-drawable-random-point! + (the-as process-drawable (ppointer->process s4-1)) + (new 'stack-no-clear 'vector) + ) + ) ) (launch-particles (-> *part-id-table* 2002) a2-3) ) diff --git a/goal_src/jak1/levels/beach/lurkerworm.gc b/goal_src/jak1/levels/beach/lurkerworm.gc index b13cfb782f..ccbd97a05c 100644 --- a/goal_src/jak1/levels/beach/lurkerworm.gc +++ b/goal_src/jak1/levels/beach/lurkerworm.gc @@ -7,7 +7,6 @@ ;; DECOMP BEGINS - (deftype lurkerworm (process-drawable) ((root-override collide-shape-moving :offset 112) (twister twister :offset-assert 176) diff --git a/goal_src/jak1/levels/citadel/citadel-part.gc b/goal_src/jak1/levels/citadel/citadel-part.gc index d3c564004f..c99f3a2c38 100644 --- a/goal_src/jak1/levels/citadel/citadel-part.gc +++ b/goal_src/jak1/levels/citadel/citadel-part.gc @@ -63,8 +63,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg2 y) (-> arg2 z) 1.0) - (launch-particles :rate 1.0 (-> *part-id-table* 2882) gp-0) - (launch-particles :rate 1.0 (-> *part-id-table* 2883) gp-0) + (launch-particles (-> *part-id-table* 2882) gp-0 :rate 1.0) + (launch-particles (-> *part-id-table* 2883) gp-0 :rate 1.0) ) ) (none) diff --git a/goal_src/jak1/levels/citadel/citadel-sages.gc b/goal_src/jak1/levels/citadel/citadel-sages.gc index 20a0770fb7..3fbaad6c86 100644 --- a/goal_src/jak1/levels/citadel/citadel-sages.gc +++ b/goal_src/jak1/levels/citadel/citadel-sages.gc @@ -12,7 +12,6 @@ ;; DECOMP BEGINS - (defskelgroup *citb-sagecage-sg* citb-sagecage citb-sagecage-lod0-jg citb-sagecage-redsage-idle-ja ((citb-sagecage-lod0-mg (meters 20)) (citb-sagecage-lod1-mg (meters 999999))) :bounds (static-spherem 0 -6 0 7) @@ -421,8 +420,8 @@ ) ) :trans (behavior () + ;; og:preserve-this fix infinite state recursion (#if PC_PORT - ;; fix infinite state recursion (if (and (not (-> self been-kicked)) (not (should-display? self))) (go-virtual hidden) ) @@ -1054,6 +1053,7 @@ ) ) ) + ;; og:preserve-this (#when PC_PORT (when (and (= (get-response (-> self query)) 'no) (or (not (= *cheat-mode* 'debug)) (not (cpad-hold? 0 r1))) (= (-> self which-movie) 1)) (format #t "skipped green-sagecage~%") diff --git a/goal_src/jak1/levels/citadel/citb-plat.gc b/goal_src/jak1/levels/citadel/citb-plat.gc index 1de76ee6f8..ffd067ca1a 100644 --- a/goal_src/jak1/levels/citadel/citb-plat.gc +++ b/goal_src/jak1/levels/citadel/citb-plat.gc @@ -7,7 +7,6 @@ ;; DECOMP BEGINS - (defskelgroup *plat-citb-sg* plat-citb plat-citb-lod0-jg plat-citb-idle-ja ((plat-citb-lod0-mg (meters 20)) (plat-citb-lod1-mg (meters 999999))) :bounds (static-spherem 0 0 0 3) diff --git a/goal_src/jak1/levels/finalboss/light-eco.gc b/goal_src/jak1/levels/finalboss/light-eco.gc index 1a2ebcd952..59c36261bf 100644 --- a/goal_src/jak1/levels/finalboss/light-eco.gc +++ b/goal_src/jak1/levels/finalboss/light-eco.gc @@ -7,7 +7,6 @@ ;; DECOMP BEGINS - (deftype light-eco-child (process-drawable) ((root-override collide-shape :offset 112) (angle-bit int32 :offset-assert 176) @@ -187,8 +186,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg2 y) (-> arg2 z) 1.0) - (launch-particles :rate 1.0 (-> *part-id-table* 2904) gp-0) - (launch-particles :rate 1.0 (-> *part-id-table* 2905) gp-0) + (launch-particles (-> *part-id-table* 2904) gp-0 :rate 1.0) + (launch-particles (-> *part-id-table* 2905) gp-0 :rate 1.0) ) ) (none) @@ -306,22 +305,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg2 y) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2910) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2911) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 2910) gp-0 :rate 1.0) + (launch-particles (-> *part-id-table* 2911) gp-0 :rate 1.0) ) ) (none) diff --git a/goal_src/jak1/levels/finalboss/sage-finalboss-part.gc b/goal_src/jak1/levels/finalboss/sage-finalboss-part.gc index 50bb479943..0efa118310 100644 --- a/goal_src/jak1/levels/finalboss/sage-finalboss-part.gc +++ b/goal_src/jak1/levels/finalboss/sage-finalboss-part.gc @@ -349,22 +349,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg2 y) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2933) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2934) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 2933) gp-0 :rate 1.0) + (launch-particles (-> *part-id-table* 2934) gp-0 :rate 1.0) ) ) (none) @@ -1038,8 +1024,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg2 y) (-> arg2 z) 1.0) - (launch-particles :rate 1.0 (-> *part-id-table* 2962) gp-0) - (launch-particles :rate 1.0 (-> *part-id-table* 2963) gp-0) + (launch-particles (-> *part-id-table* 2962) gp-0 :rate 1.0) + (launch-particles (-> *part-id-table* 2963) gp-0 :rate 1.0) ) ) (none) diff --git a/goal_src/jak1/levels/jungle/darkvine.gc b/goal_src/jak1/levels/jungle/darkvine.gc index 45eea98410..0434d88c04 100644 --- a/goal_src/jak1/levels/jungle/darkvine.gc +++ b/goal_src/jak1/levels/jungle/darkvine.gc @@ -12,7 +12,6 @@ ;; DECOMP BEGINS - (deftype darkvine (process-drawable) ((root-override collide-shape :offset 112) (speed float :offset-assert 176) diff --git a/goal_src/jak1/levels/jungle/fisher.gc b/goal_src/jak1/levels/jungle/fisher.gc index 526ae38cb5..b0a95edc2c 100644 --- a/goal_src/jak1/levels/jungle/fisher.gc +++ b/goal_src/jak1/levels/jungle/fisher.gc @@ -9,7 +9,6 @@ ;; DECOMP BEGINS - (deftype fisher-bank (basic) ((width meters :offset-assert 4) (net-radius meters :offset-assert 8) @@ -1337,7 +1336,7 @@ ) (else (when (< (mod (-> *display* base-frame-counter) (seconds 1)) (seconds 0.5)) - ;; PAL patch here + ;; og:preserve-this PAL patch here (let ((gp-0 (new 'stack 'font-context @@ -1623,8 +1622,8 @@ ) ) +;; og:preserve-this pc port needs its own implementation of play-anim for cutscene skipping (#when PC_PORT -;; pc port needs its own implementation of play-anim for cutscene skipping (define *fisher-camera-backup-fov* (degrees 46.2356)) (define *fisher-camera-backup-trans* (new 'static 'vector :x 1095664.2500 :y 15926.4003 :z -945203.3750 :w 1.0000)) (define *fisher-camera-backup-matrix* (new 'static 'matrix :vector (new 'static 'inline-array vector 4 @@ -1674,9 +1673,9 @@ ) (none) ) + ;; og:preserve-this needed for cutscene skipping :exit (behavior () (#when PC_PORT - ;; needed for cutscene skipping (set! (-> self cur-trans-hook) nothing) ) ((-> (method-of-type process-taskable play-anim) exit))) diff --git a/goal_src/jak1/levels/jungle/jungle-mirrors.gc b/goal_src/jak1/levels/jungle/jungle-mirrors.gc index 8ac69508e1..1d2554eb09 100644 --- a/goal_src/jak1/levels/jungle/jungle-mirrors.gc +++ b/goal_src/jak1/levels/jungle/jungle-mirrors.gc @@ -11,7 +11,6 @@ ;; DECOMP BEGINS - (defpartgroup group-jungle-binoculars :id 176 :flags (screen-space) @@ -652,7 +651,7 @@ (when (not (or (paused?) (-> (the-as periscope (-> self change-event-from 0)) aligned?))) (vector-reset! s5-0) (when *camera-read-analog* - ;; Mirror controls changed to respect PC Port settings + ;; og:preserve-this Mirror controls changed to respect PC Port settings (let ((f26-0 (analog-input-horizontal-first (the-as int (+ (-> *cpad-list* cpads 0 rightx) -256 (-> *cpad-list* cpads 0 leftx))) 0.0 diff --git a/goal_src/jak1/levels/maincave/maincave-obs.gc b/goal_src/jak1/levels/maincave/maincave-obs.gc index 9144c2bdcc..6721a32d03 100644 --- a/goal_src/jak1/levels/maincave/maincave-obs.gc +++ b/goal_src/jak1/levels/maincave/maincave-obs.gc @@ -7,7 +7,6 @@ ;; DECOMP BEGINS - (deftype maincavecam (pov-camera) ((seq uint64 :offset-assert 224) ) diff --git a/goal_src/jak1/levels/maincave/maincave-part.gc b/goal_src/jak1/levels/maincave/maincave-part.gc index 2553abedc2..c2836c9eb9 100644 --- a/goal_src/jak1/levels/maincave/maincave-part.gc +++ b/goal_src/jak1/levels/maincave/maincave-part.gc @@ -293,8 +293,8 @@ (sound-play "water-drop") ) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (launch-particles :rate 1.0 (-> *part-id-table* 2231) gp-0) - (launch-particles :system *sp-particle-system-3d* :rate 1.0 (-> *part-id-table* 2232) gp-0) + (launch-particles (-> *part-id-table* 2231) gp-0 :rate 1.0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2232) gp-0 :rate 1.0) ) ) (none) diff --git a/goal_src/jak1/levels/misty/misty-obs.gc b/goal_src/jak1/levels/misty/misty-obs.gc index bbd4d7b255..74bef464eb 100644 --- a/goal_src/jak1/levels/misty/misty-obs.gc +++ b/goal_src/jak1/levels/misty/misty-obs.gc @@ -7,7 +7,6 @@ ;; DECOMP BEGINS - (defpartgroup group-windturbine-particles :id 191 :bounds (static-bspherem 0 0 0 12) @@ -1034,6 +1033,7 @@ (let ((f30-0 1274.3112) (f28-0 (the float s4-0)) ) + ;; og:preserve-this (set! s4-0 (/-0-guard (the int (* 65536.0 (ja-frame-num 0))) (+ (-> (ja-group) data 0 length) -1))) (set! (-> *part-id-table* 943 init-specs 17 initial-valuef) (+ f30-0 (- f28-0 (* (the float (the int (/ (the float s4-0) 8192.0))) 8192.0))) @@ -1386,7 +1386,7 @@ (defstate breakaway-about-to-fall (breakaway) :code (behavior () (sound-play "falling-bones") - (launch-particles (-> *part-id-table* 281) (-> self root-override trans)) + (launch-particles (-> *part-id-table* 281) (-> self root-override trans)) (let ((gp-1 #f) (s5-1 (-> *display* base-frame-counter)) ) diff --git a/goal_src/jak1/levels/misty/muse.gc b/goal_src/jak1/levels/misty/muse.gc index 420f3eb97e..654197aabf 100644 --- a/goal_src/jak1/levels/misty/muse.gc +++ b/goal_src/jak1/levels/misty/muse.gc @@ -7,7 +7,6 @@ ;; DECOMP BEGINS - (deftype muse (nav-enemy) ((root-override collide-shape-moving :offset 112) (current-path-index float :offset-assert 400) @@ -143,7 +142,10 @@ (defmethod nav-enemy-method-51 muse ((obj muse)) (dotimes (s5-0 2) (let ((v1-2 (rand-vu-int-range 3 (+ (-> obj node-list length) -1)))) - (launch-particles (-> *part-id-table* 271) (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data v1-2))) + (launch-particles + (-> *part-id-table* 271) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data v1-2)) + ) ) ) 0 diff --git a/goal_src/jak1/levels/racer_common/target-racer.gc b/goal_src/jak1/levels/racer_common/target-racer.gc index c21dd5e709..d34b92c231 100644 --- a/goal_src/jak1/levels/racer_common/target-racer.gc +++ b/goal_src/jak1/levels/racer_common/target-racer.gc @@ -306,8 +306,9 @@ (not (-> self racer stick-lock)) (not (-> self racer stick-off)) ) - (* (- 1.0 (* 0.0125 DISPLAY_FPS_RATIO)) f0-13) ;; changed for high fps - (* (- 0.5 (* 0.00625 DISPLAY_FPS_RATIO)) (+ 1.0 f0-13)) ;; changed for high fps + ;; og:preserve-this changed for high fps + (* (- 1.0 (* 0.0125 DISPLAY_FPS_RATIO)) f0-13) + (* (- 0.5 (* 0.00625 DISPLAY_FPS_RATIO)) (+ 1.0 f0-13)) ) ) (else @@ -648,10 +649,11 @@ (when (< 0.0 (-> *part-id-table* 2212 init-specs 11 initial-valuef)) (set! (-> *part-id-table* 2212 init-specs 14 initial-valuef) (the-as float gp-0)) (set! (-> *part-id-table* 2212 init-specs 3 initial-valuef) 15155.2) - (launch-particles :system *sp-particle-system-3d* - (-> *part-id-table* 2212) - (vector<-cspace! (new 'stack-no-clear 'vector) (-> self manipy 0 node-list data 4)) - ) + (launch-particles + :system *sp-particle-system-3d* + (-> *part-id-table* 2212) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self manipy 0 node-list data 4)) + ) ) ) (let ((gp-2 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> self control unknown-quaternion00)))) @@ -664,10 +666,11 @@ (when (< 0.0 (-> *part-id-table* 2212 init-specs 11 initial-valuef)) (set! (-> *part-id-table* 2212 init-specs 14 initial-valuef) (the-as float gp-2)) (set! (-> *part-id-table* 2212 init-specs 3 initial-valuef) 10240.0) - (launch-particles :system *sp-particle-system-3d* - (-> *part-id-table* 2212) - (vector<-cspace! (new 'stack-no-clear 'vector) (-> self manipy 0 node-list data 10)) - ) + (launch-particles + :system *sp-particle-system-3d* + (-> *part-id-table* 2212) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self manipy 0 node-list data 10)) + ) ) ) (when (and (racer-on-ground?) (< (-> self control unknown-float01) 90112.0)) @@ -729,10 +732,14 @@ ) (set! (-> s5-2 y) (-> self control shadow-pos y)) (if (nonzero? a1-13) - (launch-particles :system (if gp-4 *sp-particle-system-3d* *sp-particle-system-2d*) - a1-13 - s5-2 - ) + (launch-particles + :system (if gp-4 + *sp-particle-system-3d* + *sp-particle-system-2d* + ) + a1-13 + s5-2 + ) ) ) (let* ((gp-5 #f) @@ -759,10 +766,14 @@ ) (set! (-> a2-7 y) (-> self control shadow-pos y)) (if (nonzero? s5-3) - (launch-particles :system (if gp-5 *sp-particle-system-3d* *sp-particle-system-2d*) - (the-as sparticle-launcher s5-3) - a2-7 - ) + (launch-particles + :system (if gp-5 + *sp-particle-system-3d* + *sp-particle-system-2d* + ) + (the-as sparticle-launcher s5-3) + a2-7 + ) ) ) ) @@ -840,6 +851,7 @@ (if (and (>= (-> self racer heat) (-> *RACER-bank* heat-max)) (= (-> self game mode) 'play)) (send-event self 'attack #f (static-attack-info ((mode 'heat)))) ) + ;; og:preserve-this allow boost with debug segment enabled (if (and *cheat-mode* (or *debug-segment* PC_PORT) (cpad-pressed? 0 l2)) (send-event self 'boost 1.0) ) @@ -877,9 +889,10 @@ (when (!= (-> self racer boost-output) 0.0) (dotimes (gp-7 8) (let ((v1-258 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) - (launch-particles (-> *part-id-table* 2229) - (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-258)) - ) + (launch-particles + (-> *part-id-table* 2229) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-258)) + ) ) ) (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 1 (seconds 0.1)) @@ -928,12 +941,11 @@ (sound-play "warning") ) (when (rand-vu-percent? (/ (-> self racer heat) (-> *RACER-bank* heat-max))) - (let ((a2-28 - (process-drawable-random-point! - (the-as process-drawable (ppointer->process (-> self manipy))) - (new 'stack-no-clear 'vector) - ) - ) + (let ((a2-28 (process-drawable-random-point! + (the-as process-drawable (ppointer->process (-> self manipy))) + (new 'stack-no-clear 'vector) + ) + ) ) (launch-particles (-> *part-id-table* 2227) a2-28) ) @@ -1058,7 +1070,8 @@ (ja :num-func num-func-identity :frame-num (ja-aframe (-> self racer turn-anim-frame) 0)) (ja :chan 1 :num! (chan 0) :frame-interp (+ 0.5 (* 0.025 (-> self racer tail-anim-frame)))) (let ((gp-2 (-> self skel root-channel 2))) - (let ((f0-82 (lerp (-> self racer slide-interp) f30-2 (* DISPLAY_FPS_RATIO 0.125)))) ;; changed for high fps + ;; og:preserve-this changed for high fps + (let ((f0-82 (lerp (-> self racer slide-interp) f30-2 (* DISPLAY_FPS_RATIO 0.125)))) (set! (-> self racer slide-interp) f0-82) (set! (-> gp-2 frame-interp) f0-82) ) diff --git a/goal_src/jak1/levels/rolling/rolling-lightning-mole.gc b/goal_src/jak1/levels/rolling/rolling-lightning-mole.gc index e522ecced4..a7fcde156b 100644 --- a/goal_src/jak1/levels/rolling/rolling-lightning-mole.gc +++ b/goal_src/jak1/levels/rolling/rolling-lightning-mole.gc @@ -8,7 +8,6 @@ ;; DECOMP BEGINS - (defun find-adjacent-bounds-one ((arg0 nav-mesh) (arg1 nav-poly) (arg2 int) (arg3 (array int8)) (arg4 (array int8)) (arg5 vector)) (local-vars (v0-2 object) (v1-2 int) (v1-30 int) (a0-2 int) (a0-12 int) (sv-16 nav-poly) (sv-32 int)) (let ((v1-1 (+ arg2 1))) @@ -174,6 +173,7 @@ (defbehavior fleeing-nav-enemy-adjust-nav-info fleeing-nav-enemy () (let ((f30-0 (vector-vector-distance (-> *camera* tpos-curr-adj) (-> *camera* tpos-old-adj)))) + ;; og:preserve-this ;; High FPS fix: stop-chase and notice distances are calculated between a min/max range where ;; the further the camera moved since last frame decides how close the chosen value is to the ;; max distance. Since this is called more often above 60 FPS, the distance is skewed to the @@ -923,11 +923,11 @@ :neck-joint 5 :player-look-at-joint 5 :run-travel-speed (meters 30) - :run-rotate-speed (degrees 3000.0) + :run-rotate-speed (degrees 3000) :run-acceleration (meters 1) :run-turn-time (seconds 0.1) :walk-travel-speed (meters 30) - :walk-rotate-speed (degrees 3000.0) + :walk-rotate-speed (degrees 3000) :walk-acceleration (meters 1) :walk-turn-time (seconds 0.1) :attack-shove-back (meters 3) @@ -1158,7 +1158,7 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (launch-particles :rate 1.0 (-> *part-id-table* 1771) gp-0) + (launch-particles (-> *part-id-table* 1771) gp-0 :rate 1.0) ) ) (none) @@ -1172,7 +1172,7 @@ (sound-play "land-grass") ) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (launch-particles :rate 1.0 (-> *part-id-table* 1772) gp-0) + (launch-particles (-> *part-id-table* 1772) gp-0 :rate 1.0) ) ) (none) diff --git a/goal_src/jak1/levels/sunken/orbit-plat.gc b/goal_src/jak1/levels/sunken/orbit-plat.gc index d86a7624f7..d405291030 100644 --- a/goal_src/jak1/levels/sunken/orbit-plat.gc +++ b/goal_src/jak1/levels/sunken/orbit-plat.gc @@ -9,7 +9,6 @@ ;; DECOMP BEGINS - (deftype orbit-plat-bottom (process-drawable) ((parent-override (pointer orbit-plat) :offset 12) (part2 sparticle-launch-control :offset-assert 176) diff --git a/goal_src/jak1/levels/sunken/sun-exit-chamber.gc b/goal_src/jak1/levels/sunken/sun-exit-chamber.gc index 720c8af182..539ccd35c1 100644 --- a/goal_src/jak1/levels/sunken/sun-exit-chamber.gc +++ b/goal_src/jak1/levels/sunken/sun-exit-chamber.gc @@ -10,7 +10,6 @@ ;; DECOMP BEGINS - (deftype blue-eco-charger-orb (process-drawable) ((parent-process (pointer blue-eco-charger) :offset 12) (orbit-rot vector :inline :offset-assert 176) @@ -284,6 +283,7 @@ (eco-blue-glow gp-1) ) (suspend) + ;; og:preserve-this (init-vf0-vector) ) (none) diff --git a/goal_src/jak1/levels/training/training-part.gc b/goal_src/jak1/levels/training/training-part.gc index e13e7ca0eb..6ebcf701f0 100644 --- a/goal_src/jak1/levels/training/training-part.gc +++ b/goal_src/jak1/levels/training/training-part.gc @@ -293,22 +293,8 @@ (sound-play "water-drop") ) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 763) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 764) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 763) gp-0 :rate 1.0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 764) gp-0 :rate 1.0) ) ) (none) diff --git a/goal_src/jak1/levels/village1/assistant.gc b/goal_src/jak1/levels/village1/assistant.gc index 4f0acf6c4c..ab2f22b4ed 100644 --- a/goal_src/jak1/levels/village1/assistant.gc +++ b/goal_src/jak1/levels/village1/assistant.gc @@ -7,7 +7,6 @@ ;; DECOMP BEGINS - (deftype assistant (process-taskable) ((sound-id sound-id :offset-assert 380) ) @@ -358,7 +357,7 @@ (sound-play "water-drop") ) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (launch-particles :rate 1.0 (-> *part-id-table* 367) gp-0) + (launch-particles (-> *part-id-table* 367) gp-0 :rate 1.0) ) ) (none) diff --git a/goal_src/jak1/levels/village1/fishermans-boat.gc b/goal_src/jak1/levels/village1/fishermans-boat.gc index 957a0f6dca..1fadecaa7c 100644 --- a/goal_src/jak1/levels/village1/fishermans-boat.gc +++ b/goal_src/jak1/levels/village1/fishermans-boat.gc @@ -9,7 +9,6 @@ ;; DECOMP BEGINS - (define *fishermans-boat-constants* (new 'static 'rigid-body-platform-constants :drag-factor 2.0 :buoyancy-factor 1.5 diff --git a/goal_src/jak1/levels/village1/village1-part.gc b/goal_src/jak1/levels/village1/village1-part.gc index a8fb09a006..7d921e4d58 100644 --- a/goal_src/jak1/levels/village1/village1-part.gc +++ b/goal_src/jak1/levels/village1/village1-part.gc @@ -1198,22 +1198,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 434) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - (the-as float 1.0) - ) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 435) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - (the-as float 1.0) - ) + (launch-particles (-> *part-id-table* 434) gp-0 :rate 1.0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 435) gp-0 :rate 1.0) ) ) (none) diff --git a/goal_src/jak1/levels/village1/village1-part2.gc b/goal_src/jak1/levels/village1/village1-part2.gc index 6b06c3956d..2846e664fe 100644 --- a/goal_src/jak1/levels/village1/village1-part2.gc +++ b/goal_src/jak1/levels/village1/village1-part2.gc @@ -1613,22 +1613,8 @@ (sound-play "water-drop") ) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 502) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - (the-as float 1.0) - ) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 503) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - (the-as float 1.0) - ) + (launch-particles (-> *part-id-table* 502) gp-0 :rate 1.0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 503) gp-0 :rate 1.0) ) ) (none) diff --git a/goal_src/jak1/levels/village2/assistant-village2.gc b/goal_src/jak1/levels/village2/assistant-village2.gc index a3e9b58947..3bf4d5e8db 100644 --- a/goal_src/jak1/levels/village2/assistant-village2.gc +++ b/goal_src/jak1/levels/village2/assistant-village2.gc @@ -7,7 +7,6 @@ ;; DECOMP BEGINS - (deftype assistant-levitator (process-taskable) ((boulder entity-actor :offset-assert 380) (particle sparticle-launch-control 4 :offset-assert 384) @@ -685,14 +684,7 @@ (sound-play "water-drop") ) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 1324) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 1324) gp-0 :rate 1.0) ) ) (none) diff --git a/goal_src/jak1/levels/village2/swamp-blimp.gc b/goal_src/jak1/levels/village2/swamp-blimp.gc index e32e5506e4..6ba8558f8b 100644 --- a/goal_src/jak1/levels/village2/swamp-blimp.gc +++ b/goal_src/jak1/levels/village2/swamp-blimp.gc @@ -10,7 +10,6 @@ ;; DECOMP BEGINS - (defskelgroup *swamp-tetherrock-sg* swamp-tetherrock swamp-tetherrock-lod0-jg swamp-tetherrock-idle-ja ((swamp-tetherrock-lod0-mg (meters 999999))) :bounds (static-spherem 0 4 0 6) @@ -1019,7 +1018,7 @@ (let ((a2-1 (new 'static 'vector))) (set! (-> a2-1 quad) (-> self root-override trans quad)) (set! (-> a2-1 y) 0.0) - (launch-particles :rate 1.0 (-> *part-id-table* 2017) a2-1) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2017) a2-1 :rate 1.0) ) ) (none) diff --git a/goal_src/jak1/levels/village2/village2-part.gc b/goal_src/jak1/levels/village2/village2-part.gc index 3e48034d9e..f7cf109a40 100644 --- a/goal_src/jak1/levels/village2/village2-part.gc +++ b/goal_src/jak1/levels/village2/village2-part.gc @@ -1831,14 +1831,7 @@ (sound-play "water-drop") ) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 1207) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - (the-as float 1.0) - ) + (launch-particles (-> *part-id-table* 1207) gp-0 :rate 1.0) ) ) (none) diff --git a/goal_src/jak2/engine/ai/enemy.gc b/goal_src/jak2/engine/ai/enemy.gc index c97c0d92ec..3bcd13a649 100644 --- a/goal_src/jak2/engine/ai/enemy.gc +++ b/goal_src/jak2/engine/ai/enemy.gc @@ -302,6 +302,7 @@ (enemy-method-100 self) ) (when *target* + ;; og:preserve-this macro (target-look-at-me! :trans (the-as vector (-> self root root-prim prim-core)) :message (if (logtest? (-> self enemy-flags) (enemy-flag use-notice-distance)) 'attacking @@ -980,7 +981,7 @@ (defmethod enemy-method-111 enemy ((obj enemy)) (let ((v1-0 (-> obj root))) (when (logtest? (-> v1-0 status) (collide-status touch-surface)) - (let ((f0-1 (fmax 0.0 (+ 1.0 (* 60.0 (-> self clock seconds-per-frame) (+ -1.0 (-> obj enemy-info friction))))))) + (let ((f0-1 (fmax 0.0 (+ 1.0 (* 60.0 (seconds-per-frame) (+ -1.0 (-> obj enemy-info friction))))))) (vector-float*! (-> v1-0 transv) (-> v1-0 transv) f0-1) ) 0 @@ -1716,6 +1717,7 @@ This commonly includes things such as: (send-event (ppointer->process (-> obj parent)) 'child-hit) 0 (when (not *debug-unkillable*) + ;; og:preserve-this for damage numbers cheat (#cond (PC_PORT (let ((old-hp (-> obj hit-points)) @@ -2172,14 +2174,12 @@ This commonly includes things such as: ) (defmethod enemy-method-47 enemy ((obj enemy) (arg0 vector)) - (with-pp - (let* ((f2-0 0.8) - (f0-1 (fmax 0.0 (+ 1.0 (* 60.0 (-> pp clock seconds-per-frame) (+ -1.0 f2-0))))) - ) - (vector-float*! arg0 arg0 f0-1) - ) - (set! (-> arg0 y) (+ (-> arg0 y) (* -204800.0 (-> pp clock seconds-per-frame)))) + (let* ((f2-0 0.8) + (f0-1 (fmax 0.0 (+ 1.0 (* 60.0 (seconds-per-frame) (+ -1.0 f2-0))))) + ) + (vector-float*! arg0 arg0 f0-1) ) + (set! (-> arg0 y) (+ (-> arg0 y) (* -204800.0 (seconds-per-frame)))) ) (defbehavior enemy-die-falling-post enemy () @@ -3036,62 +3036,60 @@ This commonly includes things such as: ;; WARN: Return type mismatch vector vs symbol. (defmethod enemy-method-100 enemy ((obj enemy)) (local-vars (v0-1 vector)) - (with-pp - (when (not (-> obj enemy-info move-to-ground)) - (enemy-method-103 obj) - (return (the-as symbol #f)) - ) - (when (not (logtest? (enemy-flag directed) (-> obj enemy-flags))) - (let ((s5-0 (-> obj root))) - (if (focus-test? obj under-water) - (enemy-method-47 obj (-> s5-0 transv)) - (+! (-> s5-0 transv y) (* (-> obj enemy-info movement-gravity) (-> pp clock seconds-per-frame))) - ) - (let ((a2-0 (new 'stack-no-clear 'move-above-ground-params))) - (let ((v1-16 (-> obj enemy-info))) - (set! (-> a2-0 gnd-collide-with) (-> v1-16 recover-gnd-collide-with)) - (set! (-> a2-0 popup) 8192.0) - (set! (-> a2-0 dont-move-if-overlaps?) #t) - (set! (-> a2-0 hover-if-no-ground?) (-> v1-16 hover-if-no-ground)) - (set! (-> a2-0 overlaps-params options) (overlaps-others-options oo0 oo2)) - (set! (-> a2-0 overlaps-params collide-with-filter) (-> v1-16 overlaps-others-collide-with-filter)) - ) - (set! (-> a2-0 overlaps-params tlist) *touching-list*) - (-> a2-0 overlaps-params) - (enemy-method-128 obj (-> s5-0 transv) a2-0) + (when (not (-> obj enemy-info move-to-ground)) + (enemy-method-103 obj) + (return (the-as symbol #f)) + ) + (when (not (logtest? (enemy-flag directed) (-> obj enemy-flags))) + (let ((s5-0 (-> obj root))) + (if (focus-test? obj under-water) + (enemy-method-47 obj (-> s5-0 transv)) + (+! (-> s5-0 transv y) (* (-> obj enemy-info movement-gravity) (seconds-per-frame))) ) + (let ((a2-0 (new 'stack-no-clear 'move-above-ground-params))) + (let ((v1-16 (-> obj enemy-info))) + (set! (-> a2-0 gnd-collide-with) (-> v1-16 recover-gnd-collide-with)) + (set! (-> a2-0 popup) 8192.0) + (set! (-> a2-0 dont-move-if-overlaps?) #t) + (set! (-> a2-0 hover-if-no-ground?) (-> v1-16 hover-if-no-ground)) + (set! (-> a2-0 overlaps-params options) (overlaps-others-options oo0 oo2)) + (set! (-> a2-0 overlaps-params collide-with-filter) (-> v1-16 overlaps-others-collide-with-filter)) + ) + (set! (-> a2-0 overlaps-params tlist) *touching-list*) + (-> a2-0 overlaps-params) + (enemy-method-128 obj (-> s5-0 transv) a2-0) ) ) - (logclear! (-> obj enemy-flags) (enemy-flag directed)) - (if (and (enemy-method-102 obj) (not (logtest? (-> obj focus-status) (focus-status dead)))) - (kill-prefer-falling obj) + ) + (logclear! (-> obj enemy-flags) (enemy-flag directed)) + (if (and (enemy-method-102 obj) (not (logtest? (-> obj focus-status) (focus-status dead)))) + (kill-prefer-falling obj) + ) + (let ((s5-1 (-> obj root)) + (a1-2 (new 'stack-no-clear 'collide-query)) + (s3-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) ) - (let ((s5-1 (-> obj root)) - (a1-2 (new 'stack-no-clear 'collide-query)) - (s3-0 (new 'stack-no-clear 'vector)) - (s4-0 (new 'stack-no-clear 'vector)) - ) - (set! (-> s3-0 quad) (-> s5-1 gspot-pos quad)) - (set! (-> s4-0 quad) (-> s5-1 gspot-normal quad)) - (the-as symbol (cond - ((find-ground s5-1 a1-2 (-> obj enemy-info gnd-collide-with) 8192.0 81920.0 1024.0) - (let ((f0-4 (- (-> s5-1 trans y) (-> s5-1 gspot-pos y)))) - (when (>= 409.6 (fabs f0-4)) - (enemy-method-103 obj) - (return (the-as symbol #f)) - v0-1 - ) + (set! (-> s3-0 quad) (-> s5-1 gspot-pos quad)) + (set! (-> s4-0 quad) (-> s5-1 gspot-normal quad)) + (the-as symbol (cond + ((find-ground s5-1 a1-2 (-> obj enemy-info gnd-collide-with) 8192.0 81920.0 1024.0) + (let ((f0-4 (- (-> s5-1 trans y) (-> s5-1 gspot-pos y)))) + (when (>= 409.6 (fabs f0-4)) + (enemy-method-103 obj) + (return (the-as symbol #f)) + v0-1 ) ) - (else - (set! (-> s5-1 gspot-pos quad) (-> s3-0 quad)) - (set! v0-1 (-> s5-1 gspot-normal)) - (set! (-> v0-1 quad) (-> s4-0 quad)) - v0-1 - ) + ) + (else + (set! (-> s5-1 gspot-pos quad) (-> s3-0 quad)) + (set! v0-1 (-> s5-1 gspot-normal)) + (set! (-> v0-1 quad) (-> s4-0 quad)) + v0-1 ) - ) - ) + ) + ) ) ) diff --git a/goal_src/jak2/engine/ambient/ambient.gc b/goal_src/jak2/engine/ambient/ambient.gc index 67ccdc1041..ce38632b27 100644 --- a/goal_src/jak2/engine/ambient/ambient.gc +++ b/goal_src/jak2/engine/ambient/ambient.gc @@ -496,8 +496,8 @@ (not (paused?)) ) (if (logtest? (-> self message flags) 32) - (seek! (-> self interp) 1.0 (* 0.5 (-> self clock seconds-per-frame))) - (seek! (-> self interp) 1.0 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> self interp) 1.0 (* 0.5 (seconds-per-frame))) + (seek! (-> self interp) 1.0 (* 4.0 (seconds-per-frame))) ) (talker-method-17 self) ) @@ -507,8 +507,8 @@ (when (and (nonzero? (-> self message-id)) (logtest? (-> self message flags) 96)) (while (!= (-> self interp) 0.0) (if (logtest? (-> self message flags) 32) - (seek! (-> self interp) 0.0 (* 0.5 (-> self clock seconds-per-frame))) - (seek! (-> self interp) 0.0 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> self interp) 0.0 (* 0.5 (seconds-per-frame))) + (seek! (-> self interp) 0.0 (* 4.0 (seconds-per-frame))) ) (talker-method-17 self) (suspend) diff --git a/goal_src/jak2/engine/anim/joint-exploder.gc b/goal_src/jak2/engine/anim/joint-exploder.gc index dd722799dd..32561187d5 100644 --- a/goal_src/jak2/engine/anim/joint-exploder.gc +++ b/goal_src/jak2/engine/anim/joint-exploder.gc @@ -449,38 +449,36 @@ ) (defmethod integrate-and-kill joint-exploder ((obj joint-exploder) (arg0 joint-exploder-list)) - (with-pp - (set! (-> arg0 bbox-valid?) #f) - (set! (-> arg0 pre-moved?) #t) - (let ((s4-0 (-> obj joints)) - (f30-0 (* (-> obj tuning gravity) (-> pp clock seconds-per-frame))) - (s3-0 (-> arg0 head)) - ) - (while (>= s3-0 0) - (let* ((s2-0 (-> s4-0 joint s3-0)) - (s1-0 (-> s2-0 mat trans)) - ) - (set! (-> s2-0 prev-pos quad) (-> s1-0 quad)) - (+! (-> s2-0 transv y) f30-0) - (vector-v+! s1-0 s1-0 (-> s2-0 transv)) - (matrix*! (-> s2-0 rmat) (-> s2-0 rmat) (-> s2-0 update-rmat)) - (cond - ((or (< (-> s1-0 y) (-> obj die-if-below-y)) - (< (-> obj die-if-beyond-xz-dist-sqrd) (vector-vector-xz-distance s1-0 (-> obj root trans))) - ) - (set! s3-0 (remove-from-list-and-reset obj arg0 s3-0)) + (set! (-> arg0 bbox-valid?) #f) + (set! (-> arg0 pre-moved?) #t) + (let ((s4-0 (-> obj joints)) + (f30-0 (* (-> obj tuning gravity) (seconds-per-frame))) + (s3-0 (-> arg0 head)) + ) + (while (>= s3-0 0) + (let* ((s2-0 (-> s4-0 joint s3-0)) + (s1-0 (-> s2-0 mat trans)) ) - (else - (update-bbox-for-joint obj arg0 s2-0) - (set! s3-0 (-> s2-0 next)) - ) + (set! (-> s2-0 prev-pos quad) (-> s1-0 quad)) + (+! (-> s2-0 transv y) f30-0) + (vector-v+! s1-0 s1-0 (-> s2-0 transv)) + (matrix*! (-> s2-0 rmat) (-> s2-0 rmat) (-> s2-0 update-rmat)) + (cond + ((or (< (-> s1-0 y) (-> obj die-if-below-y)) + (< (-> obj die-if-beyond-xz-dist-sqrd) (vector-vector-xz-distance s1-0 (-> obj root trans))) + ) + (set! s3-0 (remove-from-list-and-reset obj arg0 s3-0)) + ) + (else + (update-bbox-for-joint obj arg0 s2-0) + (set! s3-0 (-> s2-0 next)) ) ) ) ) - 0 - (none) ) + 0 + (none) ) (defmethod do-collision-response joint-exploder ((obj joint-exploder) (arg0 joint-exploder-list)) diff --git a/goal_src/jak2/engine/anim/joint-mod-h.gc b/goal_src/jak2/engine/anim/joint-mod-h.gc index eab1d6c21a..a2b2a369d8 100644 --- a/goal_src/jak2/engine/anim/joint-mod-h.gc +++ b/goal_src/jak2/engine/anim/joint-mod-h.gc @@ -434,23 +434,19 @@ (defun joint-mod-spinner-callback ((arg0 cspace) (arg1 transformq)) - (with-pp - (let ((gp-0 (the-as joint-mod-spinner (-> arg0 param1)))) - (when (-> gp-0 enable) - (let ((f30-0 - (the float - (sar (shl (the int (+ (-> gp-0 angle) (* (-> gp-0 spin-rate) (-> pp clock seconds-per-frame)))) 48) 48) - ) - ) + (let ((gp-0 (the-as joint-mod-spinner (-> arg0 param1)))) + (when (-> gp-0 enable) + (let ((f30-0 + (the float (sar (shl (the int (+ (-> gp-0 angle) (* (-> gp-0 spin-rate) (seconds-per-frame)))) 48) 48)) ) - (quaternion-vector-angle! (-> arg1 quat) (-> gp-0 spin-axis) f30-0) - (set! (-> gp-0 angle) f30-0) - ) + ) + (quaternion-vector-angle! (-> arg1 quat) (-> gp-0 spin-axis) f30-0) + (set! (-> gp-0 angle) f30-0) ) ) - (cspace<-parented-transformq-joint! arg0 arg1) - (none) ) + (cspace<-parented-transformq-joint! arg0 arg1) + (none) ) (defmethod new joint-mod-spinner ((allocation symbol) (type-to-make type) (arg0 process-drawable) (arg1 int) (arg2 vector) (arg3 float)) @@ -640,7 +636,7 @@ ) ) - +;; og:preserve-this added macro (defmacro target-look-at-me! (&key trans &key (message 'nothing-special)) "make target look at a trans in self. PC PORT NOTE : added check to see if lods have been set" `(if (and (not (logtest? (-> self draw status) (draw-control-status uninited no-draw-temp))) *target*) diff --git a/goal_src/jak2/engine/anim/joint-mod.gc b/goal_src/jak2/engine/anim/joint-mod.gc index b875c06395..d884ced028 100644 --- a/goal_src/jak2/engine/anim/joint-mod.gc +++ b/goal_src/jak2/engine/anim/joint-mod.gc @@ -55,13 +55,13 @@ (cspace<-parented-transformq-joint! arg0 arg1) (cond ((logtest? (-> gp-0 flags) (joint-mod-ik-flags enable)) - (+! (-> gp-0 blend) (* 4.0 (-> self clock seconds-per-frame))) + (+! (-> gp-0 blend) (* 4.0 (seconds-per-frame))) (if (< 1.0 (-> gp-0 blend)) (set! (-> gp-0 blend) 1.0) ) ) (else - (set! (-> gp-0 blend) (- (-> gp-0 blend) (* 4.0 (-> self clock seconds-per-frame)))) + (set! (-> gp-0 blend) (- (-> gp-0 blend) (* 4.0 (seconds-per-frame)))) (if (< (-> gp-0 blend) 0.0) (set! (-> gp-0 blend) 0.0) ) @@ -246,6 +246,7 @@ (f4-0 (-> v1-76 y)) (f5-0 (-> v1-76 z)) ) + ;; og:preserve-this inlined vector-dot ; (.mula.s f0-23 f3-5) ; (.madda.s f1-16 f4-0) ; (.madd.s f0-24 f2-6 f5-0) @@ -467,9 +468,9 @@ (+! (-> sv-16 trans z) (* 8.0 f0-43)) ) ) - (+! (-> sv-16 trans z) (* -260.0 (-> self clock seconds-per-frame) (-> sv-16 trans y))) + (+! (-> sv-16 trans z) (* -260.0 (seconds-per-frame) (-> sv-16 trans y))) (let ((f0-48 (-> sv-16 trans y))) - (+! (-> sv-16 trans y) (* (-> sv-16 trans z) (-> self clock seconds-per-frame))) + (+! (-> sv-16 trans y) (* (-> sv-16 trans z) (seconds-per-frame))) (set! (-> sv-16 trans y) (* 0.95 (-> sv-16 trans y))) (when (< (* f0-48 (-> sv-16 trans y)) 0.0) (set! (-> sv-16 trans y) 0.0) @@ -531,7 +532,7 @@ ) (vector-deg-slerp (-> s5-0 twist) (-> s5-0 twist) s4-0 0.3) (set! (-> s4-0 quad) (-> s5-0 twist quad)) - (seek! (-> s5-0 blend) (-> s5-0 flex-blend) (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> s5-0 blend) (-> s5-0 flex-blend) (* 4.0 (seconds-per-frame))) (let ((s3-1 (matrix->scale gp-0 (new 'stack-no-clear 'vector)))) (let ((s2-0 (matrix->quat gp-0 (new 'stack-no-clear 'quaternion))) (s0-0 (matrix->trans gp-0 (new 'stack-no-clear 'vector))) @@ -546,11 +547,7 @@ (let* ((f0-14 (vector-dot s4-0 (vector-! (new 'stack-no-clear 'vector) s0-0 (-> s5-0 trans)))) (f0-15 (lerp-scale 1.0 0.0 f0-14 819.2 2048.0)) ) - (seek! - (-> s5-0 polar-internal-tilt-max) - (* (-> s5-0 blend) f0-15 f30-1) - (* 15.0 (-> self clock seconds-per-frame)) - ) + (seek! (-> s5-0 polar-internal-tilt-max) (* (-> s5-0 blend) f0-15 f30-1) (* 15.0 (seconds-per-frame))) ) (quaternion-slerp! s1-0 s2-0 s1-0 (-> s5-0 polar-internal-tilt-max)) (matrix<-quat gp-0 s1-0) @@ -849,6 +846,7 @@ (f4-0 (-> s0-0 y)) (f5-0 (-> s0-0 z)) ) + ;; og:preserve-this inlined vector-dot ; (.mula.s f0-0 f3-0) ; (.madda.s f1-0 f4-0) ; (.madd.s f0-1 f2-0 f5-0) diff --git a/goal_src/jak2/engine/camera/cam-states.gc b/goal_src/jak2/engine/camera/cam-states.gc index 9b041c187c..e50781f2f0 100644 --- a/goal_src/jak2/engine/camera/cam-states.gc +++ b/goal_src/jak2/engine/camera/cam-states.gc @@ -859,22 +859,12 @@ (s4-0 (new 'stack-no-clear 'matrix)) ) (when (not (logtest? (-> *camera* settings master-options) (cam-master-options IGNORE_ANALOG))) - (let ((f24-0 (analog-input - (the-as int (-> *cpad-list* cpads 0 rightx)) - 128.0 - 32.0 - 110.0 - (* 8192.0 (-> self clock seconds-per-frame)) - ) - ) - (f1-2 (analog-input - (the-as int (-> *cpad-list* cpads 0 righty)) - 128.0 - 32.0 - 110.0 - (* 8192.0 (-> self clock seconds-per-frame)) - ) - ) + (let ((f24-0 + (analog-input (the-as int (-> *cpad-list* cpads 0 rightx)) 128.0 32.0 110.0 (* 8192.0 (seconds-per-frame))) + ) + (f1-2 + (analog-input (the-as int (-> *cpad-list* cpads 0 righty)) 128.0 32.0 110.0 (* 8192.0 (seconds-per-frame))) + ) (s2-0 (new-stack-matrix0)) ) (let ((v1-15 (new 'stack-no-clear 'vector))) @@ -895,9 +885,7 @@ (set! f1-2 (- f1-2)) ) (let* ((f1-3 (+ f24-0 f1-2)) - (f1-5 - (fmin (* 8192.0 (-> self clock seconds-per-frame)) (fmax (* -8192.0 (-> self clock seconds-per-frame)) f1-3)) - ) + (f1-5 (fmin (* 8192.0 (seconds-per-frame)) (fmax (* -8192.0 (seconds-per-frame)) f1-3))) ) (cond ((and (< 0.0 f1-5) (< 0.0 f0-10) (< (-> self max-angle-curr) f28-0)) @@ -1824,6 +1812,7 @@ ((or (< f0-7 0.0) (< 1.0 f0-7)) ) ((let ((f1-2 0.0)) + ;; og:preserve-this inlined vector-dot ;; (let* ((v1-23 arg1) ;; (f2-0 (-> v1-23 x)) ;; (f3-0 (-> v1-23 y)) @@ -2489,12 +2478,10 @@ 128.0 32.0 110.0 - (* 182.04445 - (-> self clock seconds-per-frame) - (if (logtest? (cam-slave-options-u32 GUN_CAM) (-> self options)) - 120.0 - 120.0 - ) + (* 182.04445 (seconds-per-frame) (if (logtest? (cam-slave-options-u32 GUN_CAM) (-> self options)) + 120.0 + 120.0 + ) ) ) ) @@ -2509,18 +2496,18 @@ (set! f30-2 (- f30-2)) ) (if (-> self have-phony-joystick) - (set! f30-2 (* 21845.334 (-> self phony-joystick-x) (-> self clock seconds-per-frame))) + (set! f30-2 (* 21845.334 (-> self phony-joystick-x) (seconds-per-frame))) ) (when (logtest? (cam-slave-options-u32 ALLOW_SHIFT_BUTTONS) (-> self options)) (when (logtest? (-> *camera* settings master-options) (cam-master-options READ_BUTTONS)) (if (cpad-hold? (-> *CAMERA-bank* joypad) r1) - (+! f30-2 (+ (* 10922.667 (-> self clock seconds-per-frame)) + (+! f30-2 (+ (* 10922.667 (seconds-per-frame)) (analog-input (the-as int (-> *cpad-list* cpads (-> *CAMERA-bank* joypad) abutton 9)) 0.0 32.0 230.0 - (* 21845.334 (-> self clock seconds-per-frame)) + (* 21845.334 (seconds-per-frame)) ) ) ) @@ -2528,13 +2515,13 @@ ) (when (logtest? (-> *camera* settings master-options) (cam-master-options READ_BUTTONS)) (if (cpad-hold? (-> *CAMERA-bank* joypad) l1) - (set! f30-2 (- f30-2 (+ (* 10922.667 (-> self clock seconds-per-frame)) + (set! f30-2 (- f30-2 (+ (* 10922.667 (seconds-per-frame)) (analog-input (the-as int (-> *cpad-list* cpads (-> *CAMERA-bank* joypad) abutton 8)) 0.0 32.0 230.0 - (* 21845.334 (-> self clock seconds-per-frame)) + (* 21845.334 (seconds-per-frame)) ) ) ) @@ -2548,7 +2535,7 @@ (fmax (-> self string-min-val z) (fmin (-> self string-max-val z) (vector-length (-> self view-flat)))) ) ) - (set! f30-2 (* 21845.334 (+ 0.1 (/ (-> self string-min-val z) f0-82)) (-> self clock seconds-per-frame))) + (set! f30-2 (* 21845.334 (+ 0.1 (/ (-> self string-min-val z) f0-82)) (seconds-per-frame))) ) ) ((and (= (-> self los-state) (slave-los-state cw)) (< f30-2 0.0)) @@ -2556,7 +2543,7 @@ (fmax (-> self string-min-val z) (fmin (-> self string-max-val z) (vector-length (-> self view-flat)))) ) ) - (set! f30-2 (* -21845.334 (+ 0.1 (/ (-> self string-min-val z) f0-88)) (-> self clock seconds-per-frame))) + (set! f30-2 (* -21845.334 (+ 0.1 (/ (-> self string-min-val z) f0-88)) (seconds-per-frame))) ) ) ) @@ -2996,28 +2983,28 @@ (seek! (-> self string-min-val y) (-> (the-as vector s5-0) y) - (* (-> (the-as vector s5-0) w) (-> self clock seconds-per-frame)) + (* (-> (the-as vector s5-0) w) (seconds-per-frame)) ) ) (if (!= (-> (the-as vector s5-0) z) 4095996000.0) (seek! (-> self string-min-val z) (-> (the-as vector s5-0) z) - (* (-> (the-as vector s5-0) w) (-> self clock seconds-per-frame)) + (* (-> (the-as vector s5-0) w) (seconds-per-frame)) ) ) (if (!= (-> (the-as vector gp-1) y) 4095996000.0) (seek! (-> self string-max-val y) (-> (the-as vector gp-1) y) - (* (-> (the-as vector gp-1) w) (-> self clock seconds-per-frame)) + (* (-> (the-as vector gp-1) w) (seconds-per-frame)) ) ) (if (!= (-> (the-as vector gp-1) z) 4095996000.0) (seek! (-> self string-max-val z) (-> (the-as vector gp-1) z) - (* (-> (the-as vector gp-1) w) (-> self clock seconds-per-frame)) + (* (-> (the-as vector gp-1) w) (seconds-per-frame)) ) ) ) @@ -3428,14 +3415,9 @@ (lerp (-> *CAM_STICK-bank* min-z) (-> *CAM_STICK-bank* max-z) (-> self view-off-param)) ) (when (not (logtest? (-> *camera* settings master-options) (cam-master-options IGNORE_ANALOG))) - (let ((f0-16 (analog-input - (the-as int (-> *cpad-list* cpads 0 rightx)) - 128.0 - 32.0 - 110.0 - (* 21845.334 (-> self clock seconds-per-frame)) - ) - ) + (let ((f0-16 + (analog-input (the-as int (-> *cpad-list* cpads 0 rightx)) 128.0 32.0 110.0 (* 21845.334 (seconds-per-frame))) + ) (gp-0 (new-stack-matrix0)) (s3-0 (new-stack-vector0)) (s5-0 (new-stack-vector0)) @@ -3454,13 +3436,7 @@ (vector-negate! s3-0 s3-0) (set! (-> s4-0 quad) (-> s5-0 quad)) (vector-normalize-copy! s4-0 s3-0 1.0) - (matrix-from-two-vectors-max-angle-partial! - gp-0 - s5-0 - s4-0 - (* 10922.667 (-> self clock seconds-per-frame)) - 0.05 - ) + (matrix-from-two-vectors-max-angle-partial! gp-0 s5-0 s4-0 (* 10922.667 (seconds-per-frame)) 0.05) (vector-matrix*! (-> self view-flat) (-> self view-flat) gp-0) ) ) diff --git a/goal_src/jak2/engine/camera/camera.gc b/goal_src/jak2/engine/camera/camera.gc index 183efa1086..85a071f9bf 100644 --- a/goal_src/jak2/engine/camera/camera.gc +++ b/goal_src/jak2/engine/camera/camera.gc @@ -1175,12 +1175,12 @@ (f30-0 (vector-vector-distance (-> *camera* tpos-curr-adj) (-> *camera* tpos-old-adj))) (s2-0 (new 'stack-no-clear 'vector)) ) - (vector-flatten! s1-0 (the-as vector (&-> *camera* stack 320)) (-> *camera* local-down)) + (vector-flatten! s1-0 (-> *camera* tgt-face-mat vector 2) (-> *camera* local-down)) (vector-normalize! s1-0 1.0) (vector-! s0-0 (-> *camera* tpos-curr-adj) arg1) (vector-flatten! s0-0 s0-0 (-> *camera* local-down)) (vector-normalize! s0-0 1.0) - (vector-float*! s2-0 (the-as vector (&-> *camera* stack 320)) 32768.0) + (vector-float*! s2-0 (-> *camera* tgt-face-mat vector 2) 32768.0) (set! sv-128 lerp-clamp) (set! sv-144 (the-as float 0.7)) (set! sv-160 (the-as float 0.4)) @@ -1248,7 +1248,7 @@ (else (vector-! s2-1 (-> *camera* tpos-curr-adj) arg1) (vector-normalize! s2-1 1.0) - (let* ((f0-32 (vector-dot (the-as vector (&-> *camera* stack 256)) s2-1)) + (let* ((f0-32 (vector-dot (-> *camera* tgt-rot-mat vector 2) s2-1)) (f30-2 (cond ((< f0-32 0.0) 1.0 @@ -1268,14 +1268,14 @@ (let* ((f1-15 (* 0.000022194603 (+ -20480.0 (vector-length s2-1)))) (f0-37 (fmax 0.0 (fmin 1.0 f1-15))) ) - (vector-float*! s2-1 (the-as vector (&-> *camera* stack 256)) (* (lerp 2048.0 8192.0 f0-37) f30-2)) + (vector-float*! s2-1 (-> *camera* tgt-rot-mat vector 2) (* (lerp 2048.0 8192.0 f0-37) f30-2)) ) ) ) ) (cond (arg2 - (vector-seek-3d-smooth! (-> arg0 follow-off) s2-1 (* 20480.0 (-> pp clock seconds-per-frame)) 0.05) + (vector-seek-3d-smooth! (-> arg0 follow-off) s2-1 (* 20480.0 (seconds-per-frame)) 0.05) (if (logtest? (cam-slave-options VERTICAL_FOLLOW_MATCHES_CAMERA) (-> *camera* settings slave-options)) (set! (-> arg0 follow-height-extra vel) 0.0) (update! (-> arg0 follow-height-extra) 0.0) @@ -1599,6 +1599,7 @@ (set! sv-240 (new 'stack-no-clear 'matrix)) (set! sv-224 (new 'stack-no-clear 'vector)) (vector-normalize-copy! sv-224 s0-0 1.0) + ;; og:preserve-this inlined vector-dot ;; (let* ((v1-25 (-> *camera* local-down)) ;; (f0-8 (-> sv-224 x)) ;; (f1-1 (-> sv-224 y)) @@ -1765,6 +1766,7 @@ ) ) (let ((t9-10 acos)) + ;; og:preserve-this inlined vector-dot ;; (let* ((v1-22 s0-0) ;; (f0-9 (-> v1-22 x)) ;; (f1-2 (-> v1-22 y)) @@ -1851,6 +1853,7 @@ ) ) (let ((t9-10 acos)) + ;; og:preserve-this inlined vector-dot ;; (let* ((v1-10 s1-0) ;; (f0-6 (-> v1-10 x)) ;; (f1-0 (-> v1-10 y)) diff --git a/goal_src/jak2/engine/collide/collide-shape.gc b/goal_src/jak2/engine/collide/collide-shape.gc index 7c13607e77..8ad12cab06 100644 --- a/goal_src/jak2/engine/collide/collide-shape.gc +++ b/goal_src/jak2/engine/collide/collide-shape.gc @@ -1174,7 +1174,7 @@ it returns a triangle and normal direction to push in. (s2-0 (new 'stack-no-clear 'vector)) ) ;; figure out how far we want to move - (vector-float*! s2-0 arg1 (* arg2 (-> pp clock seconds-per-frame))) + (vector-float*! s2-0 arg1 (* arg2 (seconds-per-frame))) ;; setup collision query (set! (-> s5-0 move-dist quad) (-> s2-0 quad)) (set! (-> s5-0 best-dist) -100000000.0) @@ -1283,27 +1283,25 @@ it returns a triangle and normal direction to push in. (defmethod integrate-and-collide! collide-shape ((obj collide-shape) (arg0 vector)) ;; for the simple collide shape, just move, and ignore collision. (local-vars (at-0 int)) - (with-pp - (rlet ((vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (let ((t9-0 (method-of-object obj move-by-vector!)) - (v1-1 (new 'stack-no-clear 'vector)) - ) - (.lvf vf1 (&-> arg0 quad)) - (let ((f0-0 (-> pp clock seconds-per-frame))) - (.mov at-0 f0-0) + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) ) - (.mov vf2 at-0) - (.mov.vf vf1 vf0 :mask #b1000) - (.mul.x.vf vf1 vf1 vf2 :mask #b111) - (.svf (&-> v1-1 quad) vf1) - (t9-0 obj v1-1) + (init-vf0-vector) + (let ((t9-0 (method-of-object obj move-by-vector!)) + (v1-1 (new 'stack-no-clear 'vector)) + ) + (.lvf vf1 (&-> arg0 quad)) + (let ((f0-0 (seconds-per-frame))) + (.mov at-0 f0-0) ) - (none) + (.mov vf2 at-0) + (.mov.vf vf1 vf0 :mask #b1000) + (.mul.x.vf vf1 vf1 vf2 :mask #b111) + (.svf (&-> v1-1 quad) vf1) + (t9-0 obj v1-1) ) + (none) ) ) @@ -1422,7 +1420,7 @@ it returns a triangle and normal direction to push in. ) ;; and also rate limit it to prevent huge jumps in jak's animation when exiting an anim early. ;; in theory, this should follow the blending of animations, but this likely good enough. - (vector-seek! (-> obj cspace-offset) total-offset (* 16384.0 (-> pp clock seconds-per-frame))) + (vector-seek! (-> obj cspace-offset) total-offset (* 16384.0 (seconds-per-frame))) ) ;; compute the total extra velocity to add to collide. @@ -1525,7 +1523,7 @@ it returns a triangle and normal direction to push in. ) ) ;; increase a blocked counter. - (seek! (-> obj blocked-factor) 1.0 (* 4.0 (-> pp clock seconds-per-frame))) + (seek! (-> obj blocked-factor) 1.0 (* 4.0 (seconds-per-frame))) ;; and a "air block" counter. (seek! @@ -1534,15 +1532,15 @@ it returns a triangle and normal direction to push in. 1.0 0.0 ) - (* 4.0 (-> pp clock seconds-per-frame)) + (* 4.0 (seconds-per-frame)) ) ;; set block flag. (logior! (-> obj status) (collide-status blocked)) ) (else ;; not blocked, wind down counters. - (seek! (-> obj blocked-factor) 0.0 (* 2.0 (-> pp clock seconds-per-frame))) - (seek! (-> obj blocked-in-air-factor) 0.0 (* 2.0 (-> pp clock seconds-per-frame))) + (seek! (-> obj blocked-factor) 0.0 (* 2.0 (seconds-per-frame))) + (seek! (-> obj blocked-in-air-factor) 0.0 (* 2.0 (seconds-per-frame))) ) ) ) @@ -1700,59 +1698,57 @@ it returns a triangle and normal direction to push in. (defmethod integrate-no-collide! collide-shape-moving ((obj collide-shape-moving) (arg0 vector)) "Move, ignoring all collision." (local-vars (at-0 int)) - (with-pp - (rlet ((vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (update-transforms obj) - (set! (-> obj trans-old-old-old quad) (-> obj trans-old-old quad)) - (set! (-> obj trans-old-old quad) (-> obj trans-old quad)) - (set! (-> obj trans-old quad) (-> obj trans quad)) - (set! (-> obj prev-status) (-> obj status)) - (logclear! (-> obj status) (collide-status - on-surface - on-ground - touch-surface - touch-wall - touch-ceiling - touch-actor - on-special-surface - touch-edge - blocked - on-water - impact-surface - touch-background - stuck - glance - ) - ) - (when (not (logtest? (-> obj root-prim prim-core action) (collide-action no-normal-reset))) - (let ((v1-13 (-> obj dynam gravity-normal))) - (set! (-> obj local-normal quad) (-> v1-13 quad)) - (set! (-> obj surface-normal quad) (-> v1-13 quad)) - (set! (-> obj poly-normal quad) (-> v1-13 quad)) + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) ) - (set! (-> obj coverage) 0.0) - (set! (-> obj touch-angle) 0.0) + (init-vf0-vector) + (update-transforms obj) + (set! (-> obj trans-old-old-old quad) (-> obj trans-old-old quad)) + (set! (-> obj trans-old-old quad) (-> obj trans-old quad)) + (set! (-> obj trans-old quad) (-> obj trans quad)) + (set! (-> obj prev-status) (-> obj status)) + (logclear! (-> obj status) (collide-status + on-surface + on-ground + touch-surface + touch-wall + touch-ceiling + touch-actor + on-special-surface + touch-edge + blocked + on-water + impact-surface + touch-background + stuck + glance + ) + ) + (when (not (logtest? (-> obj root-prim prim-core action) (collide-action no-normal-reset))) + (let ((v1-13 (-> obj dynam gravity-normal))) + (set! (-> obj local-normal quad) (-> v1-13 quad)) + (set! (-> obj surface-normal quad) (-> v1-13 quad)) + (set! (-> obj poly-normal quad) (-> v1-13 quad)) ) - (let ((t9-1 (method-of-object obj move-by-vector!)) - (a1-5 (new 'stack-no-clear 'vector)) - ) - (.lvf vf1 (&-> arg0 quad)) - (let ((f0-2 (-> pp clock seconds-per-frame))) - (.mov at-0 f0-2) - ) - (.mov vf2 at-0) - (.mov.vf vf1 vf0 :mask #b1000) - (.mul.x.vf vf1 vf1 vf2 :mask #b111) - (.svf (&-> a1-5 quad) vf1) - (t9-1 obj a1-5) - ) - 0 - (none) + (set! (-> obj coverage) 0.0) + (set! (-> obj touch-angle) 0.0) ) + (let ((t9-1 (method-of-object obj move-by-vector!)) + (a1-5 (new 'stack-no-clear 'vector)) + ) + (.lvf vf1 (&-> arg0 quad)) + (let ((f0-2 (seconds-per-frame))) + (.mov at-0 f0-2) + ) + (.mov vf2 at-0) + (.mov.vf vf1 vf0 :mask #b1000) + (.mul.x.vf vf1 vf1 vf2 :mask #b111) + (.svf (&-> a1-5 quad) vf1) + (t9-1 obj a1-5) + ) + 0 + (none) ) ) @@ -1769,36 +1765,34 @@ it returns a triangle and normal direction to push in. (defmethod find-ground collide-shape-moving ((obj collide-shape-moving) (arg0 collide-query) (arg1 collide-spec) (arg2 float) (arg3 float) (arg4 float)) "Find the ground, return #t if we found it, and fill out gspot in the collide-query." - (with-pp - (set! (-> obj gspot-pos quad) (-> obj trans quad)) - (set! (-> arg0 start-pos quad) (-> obj trans quad)) - (vector-reset! (-> arg0 move-dist)) - (let ((f0-0 (-> obj transv y))) - (if (< f0-0 0.0) - (set! arg2 (- arg2 (fmax -40960.0 (* f0-0 (-> pp clock seconds-per-frame))))) - ) - ) - (+! (-> arg0 start-pos y) arg2) - (set! (-> arg0 move-dist y) (- (+ arg2 arg3))) - (let ((v1-7 arg0)) - (set! (-> v1-7 radius) arg4) - (set! (-> v1-7 collide-with) arg1) - (set! (-> v1-7 ignore-process0) (-> obj process)) - (set! (-> v1-7 ignore-process1) #f) - (set! (-> v1-7 ignore-pat) (logior (new 'static 'pat-surface :noendlessfall #x1) (-> obj pat-ignore-mask))) - (set! (-> v1-7 action-mask) (collide-action solid)) - ) - (cond - ((>= (fill-and-probe-using-line-sphere *collide-cache* arg0) 0.0) - (set! (-> obj gspot-pos y) (-> arg0 best-other-tri intersect y)) - (set! (-> obj gspot-normal quad) (-> arg0 best-other-tri normal quad)) - #t - ) - (else - (set! (-> obj gspot-pos y) -40959590.0) - (set! (-> obj gspot-normal quad) (-> *y-vector* quad)) - #f + (set! (-> obj gspot-pos quad) (-> obj trans quad)) + (set! (-> arg0 start-pos quad) (-> obj trans quad)) + (vector-reset! (-> arg0 move-dist)) + (let ((f0-0 (-> obj transv y))) + (if (< f0-0 0.0) + (set! arg2 (- arg2 (fmax -40960.0 (* f0-0 (seconds-per-frame))))) ) + ) + (+! (-> arg0 start-pos y) arg2) + (set! (-> arg0 move-dist y) (- (+ arg2 arg3))) + (let ((v1-7 arg0)) + (set! (-> v1-7 radius) arg4) + (set! (-> v1-7 collide-with) arg1) + (set! (-> v1-7 ignore-process0) (-> obj process)) + (set! (-> v1-7 ignore-process1) #f) + (set! (-> v1-7 ignore-pat) (logior (new 'static 'pat-surface :noendlessfall #x1) (-> obj pat-ignore-mask))) + (set! (-> v1-7 action-mask) (collide-action solid)) + ) + (cond + ((>= (fill-and-probe-using-line-sphere *collide-cache* arg0) 0.0) + (set! (-> obj gspot-pos y) (-> arg0 best-other-tri intersect y)) + (set! (-> obj gspot-normal quad) (-> arg0 best-other-tri normal quad)) + #t + ) + (else + (set! (-> obj gspot-pos y) -40959590.0) + (set! (-> obj gspot-normal quad) (-> *y-vector* quad)) + #f ) ) ) @@ -2030,31 +2024,29 @@ it returns a triangle and normal direction to push in. (defmethod fill-cache-integrate-and-collide collide-shape ((obj collide-shape) (arg0 vector) (arg1 collide-query) (arg2 meters)) "Helper to fill the collide cache and call integrate-and-collide." (local-vars (at-0 int)) - (with-pp - (rlet ((vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - ;; scale the cache fill volume by frame rate - (let ((v1-0 (new 'stack-no-clear 'vector))) - (let ((a0-1 v1-0)) - (.lvf vf1 (&-> arg0 quad)) - (let ((f0-0 (-> pp clock seconds-per-frame))) - (.mov at-0 f0-0) - ) - (.mov vf2 at-0) - (.mov.vf vf1 vf0 :mask #b1000) - (.mul.x.vf vf1 vf1 vf2 :mask #b111) - (.svf (&-> a0-1 quad) vf1) + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) ) - ;; fill the cache. - (fill-cache-for-shape obj (+ (vector-length v1-0) arg2) arg1) + (init-vf0-vector) + ;; scale the cache fill volume by frame rate + (let ((v1-0 (new 'stack-no-clear 'vector))) + (let ((a0-1 v1-0)) + (.lvf vf1 (&-> arg0 quad)) + (let ((f0-0 (seconds-per-frame))) + (.mov at-0 f0-0) + ) + (.mov vf2 at-0) + (.mov.vf vf1 vf0 :mask #b1000) + (.mul.x.vf vf1 vf1 vf2 :mask #b111) + (.svf (&-> a0-1 quad) vf1) ) - ;; move. - (integrate-and-collide! obj arg0) - (none) + ;; fill the cache. + (fill-cache-for-shape obj (+ (vector-length v1-0) arg2) arg1) ) + ;; move. + (integrate-and-collide! obj arg0) + (none) ) ) diff --git a/goal_src/jak2/engine/common_objs/collectables.gc b/goal_src/jak2/engine/common_objs/collectables.gc index c09fb5c2fb..04a2b8414a 100644 --- a/goal_src/jak2/engine/common_objs/collectables.gc +++ b/goal_src/jak2/engine/common_objs/collectables.gc @@ -617,18 +617,15 @@ 45.0 60.0 ) - (-> self clock seconds-per-frame) + (seconds-per-frame) ) ) (let ((s5-2 (vector-! (new 'stack-no-clear 'vector) (-> self base) gp-1))) - (vector-normalize! - s5-2 - (fmax 0.0 (- (vector-length s5-2) (* (-> self speed w) (-> self clock seconds-per-frame)))) - ) + (vector-normalize! s5-2 (fmax 0.0 (- (vector-length s5-2) (* (-> self speed w) (seconds-per-frame))))) (when (< (vector-length s5-2) 81920.0) - (+! (-> self speed y) (* 72817.78 (-> self clock seconds-per-frame))) + (+! (-> self speed y) (* 72817.78 (seconds-per-frame))) (set! (-> self speed y) (fmin (fmin 291271.12 (-> self speed y)) (-> self speed y))) - (vector-rotate-y! s5-2 s5-2 (* (-> self speed y) (-> self speed z) (-> self clock seconds-per-frame))) + (vector-rotate-y! s5-2 s5-2 (* (-> self speed y) (-> self speed z) (seconds-per-frame))) ) (set! (-> self suck-y-offset) (* 2048.0 (sin (* 873.81335 (the float (mod (- (current-time) (the-as int (-> self suck-time))) 75))))) @@ -1500,37 +1497,35 @@ This commonly includes things such as: ) (defmethod common-post money ((obj money)) - (with-pp - (quaternion-rotate-y! (-> obj root quat) (-> obj root quat) (* 40049.777 (-> pp clock seconds-per-frame))) - (let ((f30-0 (-> obj bob-amount))) - (when (< 0.0 f30-0) - (set! (-> obj root trans y) - (+ (-> obj base y) - (-> obj suck-y-offset) - (* f30-0 - (sin - (* 109.22667 - (the float - (mod (+ (- (current-time) (the-as int (-> obj birth-time))) (the-as time-frame (-> obj bob-offset))) 600) - ) - ) - ) + (quaternion-rotate-y! (-> obj root quat) (-> obj root quat) (* 40049.777 (seconds-per-frame))) + (let ((f30-0 (-> obj bob-amount))) + (when (< 0.0 f30-0) + (set! (-> obj root trans y) + (+ (-> obj base y) + (-> obj suck-y-offset) + (* f30-0 + (sin + (* 109.22667 + (the float + (mod (+ (- (current-time) (the-as int (-> obj birth-time))) (the-as time-frame (-> obj bob-offset))) 600) + ) + ) ) - ) - ) - (update-transforms (-> obj root)) - ) + ) + ) + ) + (update-transforms (-> obj root)) ) - (ja-post) - (none) ) + (ja-post) + (none) ) (defstate notice-blue (money) :virtual #t :code (behavior ((arg0 handle)) (until #f - (quaternion-rotate-y! (-> self root quat) (-> self root quat) (* 91022.22 (-> self clock seconds-per-frame))) + (quaternion-rotate-y! (-> self root quat) (-> self root quat) (* 91022.22 (seconds-per-frame))) (set! (-> self root trans quad) (-> self base quad)) (add-blue-motion #t #t #t #f) (let ((f30-0 (-> self bob-amount))) @@ -1713,25 +1708,19 @@ This commonly includes things such as: ) (defmethod common-post gem ((obj gem)) - (with-pp - (seek! (-> obj roty-speed) 20024.889 (* 65536.0 (-> pp clock seconds-per-frame))) - (quaternion-rotate-y! - (-> obj root quat) - (-> obj root quat) - (* (-> obj roty-speed) (-> pp clock seconds-per-frame)) - ) - (logclear! (-> obj draw status) (draw-control-status no-draw-temp uninited)) - (do-joint-math (-> obj draw) (-> obj node-list) (-> obj skel)) - (let ((a0-7 (-> obj part)) - (a1-3 (-> obj draw skeleton bones 3)) - ) - (if (nonzero? a0-7) - (spawn-with-matrix a0-7 (the-as matrix a1-3)) - ) - ) - 0 - (none) + (seek! (-> obj roty-speed) 20024.889 (* 65536.0 (seconds-per-frame))) + (quaternion-rotate-y! (-> obj root quat) (-> obj root quat) (* (-> obj roty-speed) (seconds-per-frame))) + (logclear! (-> obj draw status) (draw-control-status no-draw-temp uninited)) + (do-joint-math (-> obj draw) (-> obj node-list) (-> obj skel)) + (let ((a0-7 (-> obj part)) + (a1-3 (-> obj draw skeleton bones 3)) + ) + (if (nonzero? a0-7) + (spawn-with-matrix a0-7 (the-as matrix a1-3)) + ) ) + 0 + (none) ) (defstate deploy (gem) @@ -1796,7 +1785,7 @@ This commonly includes things such as: (vector-! (-> self root transv) s5-1 (-> self root trans)) (vector-normalize! (-> self root transv) 40960.0) (set! (-> self root transv y) (if (< 0.0 (-> self root transv y)) - (+ f30-0 (* 4.0 (-> self clock seconds-per-frame) (-> self root transv y))) + (+ f30-0 (* 4.0 (seconds-per-frame) (-> self root transv y))) f30-0 ) ) @@ -1860,7 +1849,7 @@ This commonly includes things such as: ) ) ) - (seek! (-> self roty-speed) 0.0 (* 16384.0 (-> self clock seconds-per-frame))) + (seek! (-> self roty-speed) 0.0 (* 16384.0 (seconds-per-frame))) (common-post self) (none) ) @@ -2279,12 +2268,10 @@ This commonly includes things such as: ) (defmethod common-post ammo-collectable ((obj ammo-collectable)) - (with-pp - (quaternion-rotate-y! (-> obj root quat) (-> obj root quat) (* 40049.777 (-> pp clock seconds-per-frame))) - ((method-of-type collectable common-post) obj) - 0 - (none) - ) + (quaternion-rotate-y! (-> obj root quat) (-> obj root quat) (* 40049.777 (seconds-per-frame))) + ((method-of-type collectable common-post) obj) + 0 + (none) ) (defstate die (ammo-collectable) @@ -2431,6 +2418,7 @@ This commonly includes things such as: (if arg5 (mem-copy! (&-> sv-56 type) (&-> arg5 type) 40) ) + ;; og:preserve-this pc port cheat (#when PC_PORT (when (and (pc-cheats? (-> *pc-settings* cheats) suck-in-all) (!= arg1 (pickup-type skill))) @@ -2752,7 +2740,7 @@ This commonly includes things such as: :flag-assert #xf00000080 ) - +;; og:preserve-this added macro (defmacro spawn-gem-near-target! (&key (count 5)) `(dotimes (i ,count) (birth-pickup-at-point diff --git a/goal_src/jak2/engine/common_objs/conveyor.gc b/goal_src/jak2/engine/common_objs/conveyor.gc index 08f0c6e4dc..944647e837 100644 --- a/goal_src/jak2/engine/common_objs/conveyor.gc +++ b/goal_src/jak2/engine/common_objs/conveyor.gc @@ -153,7 +153,7 @@ and return it as well. Otherwise, set it to `0`" (* f0-10 (-> (the-as (pointer float) (+ (the-as uint (-> obj speed-mult-array)) (* section-idx 4))))) ) ) - (vector-float*! a2-8 (-> section pull-dir) (* f0-10 (-> self clock seconds-per-frame))) + (vector-float*! a2-8 (-> section pull-dir) (* f0-10 (seconds-per-frame))) ) (send-event proc-focus 'push-trans a2-8 (seconds 10)) ) diff --git a/goal_src/jak2/engine/common_objs/elevator.gc b/goal_src/jak2/engine/common_objs/elevator.gc index 33a59c2913..dabcc9c4f1 100644 --- a/goal_src/jak2/engine/common_objs/elevator.gc +++ b/goal_src/jak2/engine/common_objs/elevator.gc @@ -690,9 +690,10 @@ do so. (seek! (-> self path-pos) (-> self path-dest) + ;; og:preserve-this pc port fast elevator option (* (/ (* (#if PC_PORT (if (eligible-for-fast-elevator? *pc-settings* self) 1.5 1.0) 1.0) - (-> self params move-rate)) (-> self move-dist)) (-> self clock seconds-per-frame)) + (-> self params move-rate)) (-> self move-dist)) (seconds-per-frame)) ) (let* ((f30-0 (-> self move-pos 0)) (f28-0 (-> self move-pos 1)) diff --git a/goal_src/jak2/engine/common_objs/powerups.gc b/goal_src/jak2/engine/common_objs/powerups.gc index 8bb14be311..17cb6865b1 100644 --- a/goal_src/jak2/engine/common_objs/powerups.gc +++ b/goal_src/jak2/engine/common_objs/powerups.gc @@ -497,24 +497,10 @@ ) (defun eco-blue-glow ((arg0 vector)) - (let ((t9-0 sp-launch-particles-var) - (a0-1 *sp-particle-system-2d*) - (a1-0 (-> *part-id-table* 539)) - (a2-0 *launch-matrix*) - ) - (set! (-> a2-0 trans quad) (-> arg0 quad)) - (t9-0 a0-1 a1-0 a2-0 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (when (rand-vu-percent? 0.5) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 541)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> arg0 quad)) - (t9-2 a0-3 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) + (launch-particles (-> *part-id-table* 539) arg0) + (if (rand-vu-percent? 0.5) + (launch-particles (-> *part-id-table* 541) arg0) ) - ) 0 (none) ) @@ -638,45 +624,26 @@ (set! (-> *part-id-table* 543 init-specs 4 random-rangef) 16384.0) ) ) - (let ((gp-5 sp-launch-particles-var) - (s5-4 *sp-particle-system-2d*) - (s4-4 (-> *part-id-table* 543)) - (s2-4 *launch-matrix*) - ) - (set! (-> s2-4 trans quad) - (-> (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-99)) quad) - ) - (gp-5 s5-4 s4-4 s2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) + (launch-particles + (-> *part-id-table* 543) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-99)) ) ) (let ((gp-6 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) - (let ((s5-5 sp-launch-particles-var) - (s4-5 *sp-particle-system-2d*) - (s3-5 (-> *part-id-table* (if (rand-vu-percent? 0.5) - 539 - 540 - ) - ) - ) - (s1-4 *launch-matrix*) + (launch-particles + (-> *part-id-table* (if (rand-vu-percent? 0.5) + 539 + 540 + ) ) - (set! (-> s1-4 trans quad) - (-> (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data gp-6)) quad) - ) - (s5-5 s4-5 s3-5 s1-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data gp-6)) ) - (when (rand-vu-percent? 0.5) - (let ((s5-6 sp-launch-particles-var) - (s4-6 *sp-particle-system-2d*) - (s3-6 (-> *part-id-table* 541)) - (s1-5 *launch-matrix*) - ) - (set! (-> s1-5 trans quad) - (-> (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data gp-6)) quad) - ) - (s5-6 s4-6 s3-6 s1-5 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) + (if (rand-vu-percent? 0.5) + (launch-particles + (-> *part-id-table* 541) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data gp-6)) + ) ) - ) ) (let ((v1-123 (rand-vu-int-range 3 (+ (-> self node-list length) -1))) (gp-7 sp-launch-particles-var) @@ -855,44 +822,30 @@ ) ) (let ((gp-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 38)))) - (when (and (< (fabs (vector-dot - (-> self control dynam gravity-normal) - (vector-! (new 'stack-no-clear 'vector) gp-0 (-> self control trans)) - ) + (if (and (< (fabs (vector-dot + (-> self control dynam gravity-normal) + (vector-! (new 'stack-no-clear 'vector) gp-0 (-> self control trans)) ) - 819.2 - ) - (rand-vu-percent? 0.5) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-15 *sp-particle-system-3d*) - (a1-2 (-> *part-id-table* 165)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-3 a0-15 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) + ) + 819.2 + ) + (rand-vu-percent? 0.5) + ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 165) gp-0) ) - ) ) (let ((gp-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 31)))) - (when (and (< (fabs (vector-dot - (-> self control dynam gravity-normal) - (vector-! (new 'stack-no-clear 'vector) gp-1 (-> self control trans)) - ) + (if (and (< (fabs (vector-dot + (-> self control dynam gravity-normal) + (vector-! (new 'stack-no-clear 'vector) gp-1 (-> self control trans)) ) - 819.2 - ) - (rand-vu-percent? 0.5) - ) - (let ((t9-6 sp-launch-particles-var) - (a0-19 *sp-particle-system-3d*) - (a1-5 (-> *part-id-table* 165)) - (a2-5 *launch-matrix*) - ) - (set! (-> a2-5 trans quad) (-> gp-1 quad)) - (t9-6 a0-19 a1-5 a2-5 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) + ) + 819.2 + ) + (rand-vu-percent? 0.5) + ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 165) gp-1) ) - ) ) (let ((f0-10 (lerp-scale 0.8 1.0 (-> self control ctrl-xz-vel) 0.0 81920.0))) (let ((v1-64 (ja-group))) @@ -900,7 +853,7 @@ (set! f0-10 (* 0.8 f0-10)) ) ) - (seek! (-> self control unknown-float45) f0-10 (-> self clock seconds-per-frame)) + (seek! (-> self control unknown-float45) f0-10 (seconds-per-frame)) ) (let ((f30-1 (-> self control unknown-float45)) (f0-14 (lerp-scale -0.3 0.3 (-> self control ctrl-xz-vel) 0.0 81920.0)) @@ -971,23 +924,23 @@ ((cpad-hold? (-> self control cpad number) r1) (update-rates! (-> *display* entity-clock) - (seek (-> *display* entity-clock clock-ratio) 60.0 (* 120.0 (-> self clock seconds-per-frame))) + (seek (-> *display* entity-clock clock-ratio) 60.0 (* 120.0 (seconds-per-frame))) ) (update-rates! (-> *display* bg-clock) (-> *display* entity-clock clock-ratio)) (update-rates! (-> *display* target-clock) - (seek (-> *display* target-clock clock-ratio) 2.0 (* 120.0 (-> self clock seconds-per-frame))) + (seek (-> *display* target-clock clock-ratio) 2.0 (* 120.0 (seconds-per-frame))) ) ) ((or (!= (-> *display* entity-clock clock-ratio) 2.0) (!= (-> *display* target-clock clock-ratio) 1.0)) (update-rates! (-> *display* entity-clock) - (seek (-> *display* entity-clock clock-ratio) 2.0 (* 120.0 (-> self clock seconds-per-frame))) + (seek (-> *display* entity-clock clock-ratio) 2.0 (* 120.0 (seconds-per-frame))) ) (update-rates! (-> *display* bg-clock) (-> *display* entity-clock clock-ratio)) (update-rates! (-> *display* target-clock) - (seek (-> *display* target-clock clock-ratio) 1.0 (* 120.0 (-> self clock seconds-per-frame))) + (seek (-> *display* target-clock clock-ratio) 1.0 (* 120.0 (seconds-per-frame))) ) ) ) @@ -1001,28 +954,29 @@ ((cpad-hold? (-> self control cpad number) r1) (update-rates! (-> *display* entity-clock) - (seek (-> *display* entity-clock clock-ratio) 0.3 (* 30.0 (-> self clock seconds-per-frame))) + (seek (-> *display* entity-clock clock-ratio) 0.3 (* 30.0 (seconds-per-frame))) ) (update-rates! (-> *display* bg-clock) (-> *display* entity-clock clock-ratio)) (update-rates! (-> *display* target-clock) - (seek (-> *display* target-clock clock-ratio) 0.5 (* 30.0 (-> self clock seconds-per-frame))) + (seek (-> *display* target-clock clock-ratio) 0.5 (* 30.0 (seconds-per-frame))) ) ) ((or (!= (-> *display* entity-clock clock-ratio) 1.0) (!= (-> *display* target-clock clock-ratio) 1.0)) (update-rates! (-> *display* entity-clock) - (seek (-> *display* entity-clock clock-ratio) 1.0 (* 30.0 (-> self clock seconds-per-frame))) + (seek (-> *display* entity-clock clock-ratio) 1.0 (* 30.0 (seconds-per-frame))) ) (update-rates! (-> *display* bg-clock) (-> *display* entity-clock clock-ratio)) (update-rates! (-> *display* target-clock) - (seek (-> *display* target-clock clock-ratio) 1.0 (* 30.0 (-> self clock seconds-per-frame))) + (seek (-> *display* target-clock clock-ratio) 1.0 (* 30.0 (seconds-per-frame))) ) ) ) ) ) + ;; og:preserve-this pc port time cheat (#when PC_PORT ;; time cheats (doesn't work properly) (cond @@ -1052,12 +1006,12 @@ (let ((f30-2 (-> self board camera-interp))) (cond ((focus-test? self board) - (seek! (-> self board camera-interp) 1.0 (* 0.1 (-> self clock seconds-per-frame))) + (seek! (-> self board camera-interp) 1.0 (* 0.1 (seconds-per-frame))) ) ((< (-> self control ctrl-xz-vel) 2048.0) ) (else - (seek! (-> self board camera-interp) 0.0 (* 0.1 (-> self clock seconds-per-frame))) + (seek! (-> self board camera-interp) 0.0 (* 0.1 (seconds-per-frame))) ) ) (let ((f28-0 (-> self board camera-interp))) diff --git a/goal_src/jak2/engine/common_objs/projectile.gc b/goal_src/jak2/engine/common_objs/projectile.gc index c02016a540..0aa4c6a07d 100644 --- a/goal_src/jak2/engine/common_objs/projectile.gc +++ b/goal_src/jak2/engine/common_objs/projectile.gc @@ -193,42 +193,40 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p (defun projectile-move-fill-line-sphere ((arg0 projectile)) (local-vars (at-0 int)) - (with-pp - (rlet ((vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (let ((gp-0 (-> arg0 root))) - (let ((a1-0 (new 'stack-no-clear 'collide-query))) - (let ((a2-0 (-> gp-0 root-prim))) - (set! (-> a1-0 start-pos quad) (-> gp-0 trans quad)) - (let ((v1-1 (-> a1-0 move-dist))) - (.lvf vf1 (&-> (-> gp-0 transv) quad)) - (let ((f0-0 (-> pp clock seconds-per-frame))) - (.mov at-0 f0-0) - ) - (.mov vf2 at-0) - (.mov.vf vf1 vf0 :mask #b1000) - (.mul.x.vf vf1 vf1 vf2 :mask #b111) - (.svf (&-> v1-1 quad) vf1) - ) - (let ((v1-2 a1-0)) - (set! (-> v1-2 radius) (-> a2-0 prim-core world-sphere w)) - (set! (-> v1-2 collide-with) (-> a2-0 prim-core collide-with)) - (set! (-> v1-2 ignore-process0) arg0) - (set! (-> v1-2 ignore-process1) (handle->process (-> arg0 ignore-handle))) - (set! (-> v1-2 ignore-pat) (-> gp-0 pat-ignore-mask)) - (set! (-> v1-2 action-mask) (collide-action solid)) + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (let ((gp-0 (-> arg0 root))) + (let ((a1-0 (new 'stack-no-clear 'collide-query))) + (let ((a2-0 (-> gp-0 root-prim))) + (set! (-> a1-0 start-pos quad) (-> gp-0 trans quad)) + (let ((v1-1 (-> a1-0 move-dist))) + (.lvf vf1 (&-> (-> gp-0 transv) quad)) + (let ((f0-0 (seconds-per-frame))) + (.mov at-0 f0-0) ) + (.mov vf2 at-0) + (.mov.vf vf1 vf0 :mask #b1000) + (.mul.x.vf vf1 vf1 vf2 :mask #b111) + (.svf (&-> v1-1 quad) vf1) + ) + (let ((v1-2 a1-0)) + (set! (-> v1-2 radius) (-> a2-0 prim-core world-sphere w)) + (set! (-> v1-2 collide-with) (-> a2-0 prim-core collide-with)) + (set! (-> v1-2 ignore-process0) arg0) + (set! (-> v1-2 ignore-process1) (handle->process (-> arg0 ignore-handle))) + (set! (-> v1-2 ignore-pat) (-> gp-0 pat-ignore-mask)) + (set! (-> v1-2 action-mask) (collide-action solid)) ) - (fill-using-line-sphere *collide-cache* a1-0) ) - (integrate-and-collide! gp-0 (-> gp-0 transv)) + (fill-using-line-sphere *collide-cache* a1-0) ) - 0 - (none) + (integrate-and-collide! gp-0 (-> gp-0 transv)) ) + 0 + (none) ) ) @@ -298,14 +296,14 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p ) ) (when (logtest? (-> self options) (projectile-options proj-options-2)) - (seek! (-> self tween) 1.0 (* 0.5 (-> self clock seconds-per-frame))) + (seek! (-> self tween) 1.0 (* 0.5 (seconds-per-frame))) (let ((f0-4 (vector-vector-distance (-> self root trans) (-> self target-pos)))) (cond ((< f0-4 20480.0) - (seek! (-> self tween) 1.0 (* 3.0 (-> self clock seconds-per-frame))) + (seek! (-> self tween) 1.0 (* 3.0 (seconds-per-frame))) ) ((< f0-4 40960.0) - (seek! (-> self tween) 1.0 (-> self clock seconds-per-frame)) + (seek! (-> self tween) 1.0 (seconds-per-frame)) ) ) ) @@ -507,7 +505,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p ) (defbehavior projectile-bounce-update-velocity projectile ((arg0 projectile-bounce)) - (set! (-> arg0 root transv y) (- (-> arg0 root transv y) (* 184320.0 (-> self clock seconds-per-frame)))) + (set! (-> arg0 root transv y) (- (-> arg0 root transv y) (* 184320.0 (seconds-per-frame)))) 0 (none) ) diff --git a/goal_src/jak2/engine/common_objs/voicebox.gc b/goal_src/jak2/engine/common_objs/voicebox.gc index b15e6d6181..4f3ea8f6aa 100644 --- a/goal_src/jak2/engine/common_objs/voicebox.gc +++ b/goal_src/jak2/engine/common_objs/voicebox.gc @@ -179,8 +179,8 @@ ) ) (if (< 0.0 f0-6) - (seek! (-> self twist) -0.4 (* 0.3 (-> self clock seconds-per-frame))) - (seek! (-> self twist) 0.4 (* 0.3 (-> self clock seconds-per-frame))) + (seek! (-> self twist) -0.4 (* 0.3 (seconds-per-frame))) + (seek! (-> self twist) 0.4 (* 0.3 (seconds-per-frame))) ) ) (let ((a1-9 (new 'stack-no-clear 'event-message-block))) @@ -444,6 +444,7 @@ (set! (-> *game-info* timer) (the-as time-frame v1-15)) ) ) + ;; og:preserve-this pc port trick tracker ;; Print trick text to screen if available (#when PC_PORT (render-combo *board-trick-tracker*)) @@ -469,6 +470,7 @@ (when (and s4-0 (begin (send-event s5-2 'change-mode 'board #f) (focus-test? s5-2 board))) (change-parent self (ppointer->process s4-0)) (try-update-focus (-> self focus) s5-2) + ;; og:preserve-this pc port trick tracker (#when PC_PORT (end-combo! *board-trick-tracker*) (reset-combo! *board-trick-tracker*)) diff --git a/goal_src/jak2/engine/common_objs/water-anim.gc b/goal_src/jak2/engine/common_objs/water-anim.gc index 6e1f4d1e42..d0db314572 100644 --- a/goal_src/jak2/engine/common_objs/water-anim.gc +++ b/goal_src/jak2/engine/common_objs/water-anim.gc @@ -350,7 +350,7 @@ ((#f) ) (('heat) - (send-event (the-as process-tree gp-0) 'heat (* 10.0 (-> self clock seconds-per-frame))) + (send-event (the-as process-tree gp-0) 'heat (* 10.0 (seconds-per-frame))) ) (('drown-death 'lava 'dark-eco-pool) (if (and (not (focus-test? (the-as process-focusable gp-0) board)) diff --git a/goal_src/jak2/engine/common_objs/water-flow.gc b/goal_src/jak2/engine/common_objs/water-flow.gc index a9b3d6d6ef..334bc61f39 100644 --- a/goal_src/jak2/engine/common_objs/water-flow.gc +++ b/goal_src/jak2/engine/common_objs/water-flow.gc @@ -83,93 +83,91 @@ ;; WARN: Function (method 11 flow-control) has a return type of none, but the expression builder found a return statement. (defmethod push-process flow-control ((obj flow-control) (arg0 process-focusable)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (let ((s5-0 (new 'stack-no-clear 'vector))) - (set! (-> s5-0 quad) (-> (get-trans arg0 0) quad)) - (set! (-> s5-0 w) 1.0) - (when (>= (vector4-dot s5-0 (the-as vector (-> obj leading))) 0.0) - (let* ((v1-7 (-> obj sections)) - (a0-3 (-> v1-7 length)) - (a3-0 (the-as object (-> obj leading))) - ) - (dotimes (s3-1 a0-3) - (let ((s2-0 (-> v1-7 data s3-1))) - (when (< (vector4-dot s5-0 (the-as vector (-> s2-0 trailing))) 0.0) - (let ((v1-8 (new 'stack-no-clear 'vector))) - (vector-! v1-8 s5-0 (-> s2-0 start)) - (when (>= (-> obj belt-radius) (fabs (vector-dot v1-8 (-> s2-0 radial-dir)))) - (let* ((f0-7 (vector-dot v1-8 (-> s2-0 pull-dir))) - (f0-9 (- (-> v1-8 y) (* (-> s2-0 pull-dir y) f0-7))) - ) - (when (and (>= f0-9 -41984.0) (>= 41779.2 f0-9)) - (let* ((a0-11 (new 'stack-no-clear 'vector)) - (s1-0 (new 'stack-no-clear 'vector)) - (f30-0 (ray-plane-equation-intersect a0-11 s5-0 (-> s2-0 pull-dir) (the-as vector a3-0))) - (f0-10 (ray-plane-equation-intersect s1-0 s5-0 (-> s2-0 pull-dir) (-> s2-0 trailing))) - ) - (let ((a0-13 (new 'stack-no-clear 'vector))) - (let ((v1-13 (-> s2-0 start))) - (let ((a1-12 (-> s2-0 pull-dir))) - (let ((a2-6 12288.0)) - (.mov vf7 a2-6) - ) - (.lvf vf5 (&-> a1-12 quad)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (new 'stack-no-clear 'vector))) + (set! (-> s5-0 quad) (-> (get-trans arg0 0) quad)) + (set! (-> s5-0 w) 1.0) + (when (>= (vector4-dot s5-0 (the-as vector (-> obj leading))) 0.0) + (let* ((v1-7 (-> obj sections)) + (a0-3 (-> v1-7 length)) + (a3-0 (the-as object (-> obj leading))) + ) + (dotimes (s3-1 a0-3) + (let ((s2-0 (-> v1-7 data s3-1))) + (when (< (vector4-dot s5-0 (the-as vector (-> s2-0 trailing))) 0.0) + (let ((v1-8 (new 'stack-no-clear 'vector))) + (vector-! v1-8 s5-0 (-> s2-0 start)) + (when (>= (-> obj belt-radius) (fabs (vector-dot v1-8 (-> s2-0 radial-dir)))) + (let* ((f0-7 (vector-dot v1-8 (-> s2-0 pull-dir))) + (f0-9 (- (-> v1-8 y) (* (-> s2-0 pull-dir y) f0-7))) + ) + (when (and (>= f0-9 -41984.0) (>= 41779.2 f0-9)) + (let* ((a0-11 (new 'stack-no-clear 'vector)) + (s1-0 (new 'stack-no-clear 'vector)) + (f30-0 (ray-plane-equation-intersect a0-11 s5-0 (-> s2-0 pull-dir) (the-as vector a3-0))) + (f0-10 (ray-plane-equation-intersect s1-0 s5-0 (-> s2-0 pull-dir) (-> s2-0 trailing))) + ) + (let ((a0-13 (new 'stack-no-clear 'vector))) + (let ((v1-13 (-> s2-0 start))) + (let ((a1-12 (-> s2-0 pull-dir))) + (let ((a2-6 12288.0)) + (.mov vf7 a2-6) ) - (.lvf vf4 (&-> v1-13 quad)) + (.lvf vf5 (&-> a1-12 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a0-13 quad) vf6) + (.lvf vf4 (&-> v1-13 quad)) ) - 0 - (let ((f0-12 (/ f30-0 (- f30-0 f0-10))) - (s2-1 (new 'stack-no-clear 'vector)) - ) - (displacement-between-two-points-normalized! (-> obj path) s2-1 (+ (the float s3-1) f0-12)) - (let ((v1-17 (new 'stack-no-clear 'vector))) - (vector-float*! v1-17 s2-1 (* (-> obj speed) (-> pp clock seconds-per-frame))) - (let ((a1-15 (new 'stack-no-clear 'vector))) - (let ((a0-17 v1-17)) - (let ((a2-9 2048.0)) - (.mov vf7 a2-9) - ) - (.lvf vf5 (&-> a0-17 quad)) - ) - (.lvf vf4 (&-> s5-0 quad)) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-15 quad) vf6) - ) - 0 - (send-event arg0 'push-trans v1-17 (seconds 10)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a0-13 quad) vf6) + ) + 0 + (let ((f0-12 (/ f30-0 (- f30-0 f0-10))) + (s2-1 (new 'stack-no-clear 'vector)) ) + (displacement-between-two-points-normalized! (-> obj path) s2-1 (+ (the float s3-1) f0-12)) + (let ((v1-17 (new 'stack-no-clear 'vector))) + (vector-float*! v1-17 s2-1 (* (-> obj speed) (seconds-per-frame))) + (let ((a1-15 (new 'stack-no-clear 'vector))) + (let ((a0-17 v1-17)) + (let ((a2-9 2048.0)) + (.mov vf7 a2-9) + ) + (.lvf vf5 (&-> a0-17 quad)) + ) + (.lvf vf4 (&-> s5-0 quad)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-15 quad) vf6) + ) + 0 + (send-event arg0 'push-trans v1-17 (seconds 10)) ) ) ) ) ) ) - (return #f) ) + (return #f) ) - (set! a3-0 (+ (the-as uint (-> v1-7 data 0 trailing)) (* s3-1 64))) ) + (set! a3-0 (+ (the-as uint (-> v1-7 data 0 trailing)) (* s3-1 64))) ) ) ) - 0 - (none) ) + 0 + (none) ) ) diff --git a/goal_src/jak2/engine/common_objs/water.gc b/goal_src/jak2/engine/common_objs/water.gc index 5947a26359..1fefdae26f 100644 --- a/goal_src/jak2/engine/common_objs/water.gc +++ b/goal_src/jak2/engine/common_objs/water.gc @@ -13,14 +13,7 @@ (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) (sound-play "water-drop" :position gp-0) - (let ((t9-3 sp-launch-particles-var) - (a0-4 *sp-particle-system-3d*) - (a1-3 (-> *part-id-table* 501)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-3 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 501) gp-0) ) ) 0 @@ -620,23 +613,9 @@ (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) (sound-play "water-drop" :position s3-0) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-3d*) - (a1-3 (-> *part-id-table* 501)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-3 a0-5 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 501) s3-0) (set! (-> *part-id-table* 536 init-specs 15 initial-valuef) (-> s3-0 y)) - (let ((t9-4 sp-launch-particles-var) - (a0-6 *sp-particle-system-2d*) - (a1-4 (-> *part-id-table* 536)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-0 quad)) - (t9-4 a0-6 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 536) s3-0) ) ) (sparticle-motion-blur arg0 arg1 arg2) @@ -822,7 +801,7 @@ (gp-0 (new 'stack-no-clear 'vector)) ) (set! (-> gp-0 quad) (-> (the-as process-drawable s5-0) water bottom 0 quad)) - (seek! (-> self root scale x) 2.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self root scale x) 2.0 (* 2.0 (seconds-per-frame))) (set! (-> self root scale z) (-> self root scale x)) (set! (-> gp-0 y) (-> (the-as process-drawable s5-0) water surface-height)) (let ((v0-1 (-> self root trans))) @@ -851,34 +830,13 @@ (set! (-> *part-id-table* 506 init-specs 13 initial-valuef) 0.7111111) (set! (-> *part-id-table* 506 init-specs 3 initial-valuef) (-> obj wake-size)) (set! (-> *part-id-table* 506 init-specs 5 initial-valuef) (-> obj wake-size)) - (let ((t9-13 sp-launch-particles-var) - (a0-62 *sp-particle-system-3d*) - (a1-16 (-> *part-id-table* 506)) - (a2-8 *launch-matrix*) - ) - (set! (-> a2-8 trans quad) (-> s3-0 quad)) - (t9-13 a0-62 a1-16 a2-8 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 506) s3-0) (set! (-> *part-id-table* 509 init-specs 1 initial-valuef) (* 0.000004150391 f28-0)) (set! (-> *part-id-table* 509 init-specs 18 initial-valuef) f30-0) - (let ((t9-14 sp-launch-particles-var) - (a0-63 *sp-particle-system-3d*) - (a1-17 (-> *part-id-table* 509)) - (a2-9 *launch-matrix*) - ) - (set! (-> a2-9 trans quad) (-> s3-0 quad)) - (t9-14 a0-63 a1-17 a2-9 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 509) s3-0) (when (< f28-0 4096.0) (set! (-> *part-id-table* 504 init-specs 2 random-rangef) (-> obj ripple-size)) - (let ((t9-15 sp-launch-particles-var) - (a0-64 *sp-particle-system-3d*) - (a1-18 (-> *part-id-table* 504)) - (a2-10 *launch-matrix*) - ) - (set! (-> a2-10 trans quad) (-> s3-0 quad)) - (t9-15 a0-64 a1-18 a2-10 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 504) s3-0) ) ) ) @@ -913,23 +871,9 @@ (+ f0-72 (* f1-26 (sqrtf (+ (* (-> v1-222 x) (-> v1-222 x)) (* (-> v1-222 z) (-> v1-222 z)))))) ) ) - (let ((t9-20 sp-launch-particles-var) - (a0-75 *sp-particle-system-2d*) - (a1-26 (-> *part-id-table* 502)) - (a2-14 *launch-matrix*) - ) - (set! (-> a2-14 trans quad) (-> s3-1 quad)) - (t9-20 a0-75 a1-26 a2-14 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 502) s3-1) (set! (-> *part-id-table* 503 init-specs 16 initial-valuef) (-> obj surface-height)) - (let ((t9-21 sp-launch-particles-var) - (a0-76 *sp-particle-system-2d*) - (a1-27 (-> *part-id-table* 503)) - (a2-15 *launch-matrix*) - ) - (set! (-> a2-15 trans quad) (-> s3-1 quad)) - (t9-21 a0-76 a1-27 a2-15 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 503) s3-1) ) ) ) @@ -1147,14 +1091,7 @@ (set! (-> *part-id-table* 537 init-specs 10 initial-valuef) (* 0.05 (- (-> v0-34 x) (-> obj drip-old-pos x)))) (set! (-> *part-id-table* 537 init-specs 11 initial-valuef) (* 0.05 (- (-> v0-34 y) (-> obj drip-old-pos y)))) (set! (-> *part-id-table* 537 init-specs 12 initial-valuef) (* 0.05 (- (-> v0-34 z) (-> obj drip-old-pos z)))) - (let ((t9-35 sp-launch-particles-var) - (a0-208 *sp-particle-system-2d*) - (a1-61 (-> *part-id-table* 537)) - (a2-22 *launch-matrix*) - ) - (set! (-> a2-22 trans quad) (-> v0-34 quad)) - (t9-35 a0-208 a1-61 a2-22 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 537) v0-34) ) (set! (-> obj drip-time) (current-time)) (logclear! (-> obj flags) (water-flags spawn-drip)) @@ -1374,34 +1311,13 @@ (set! (-> *part-id-table* 506 init-specs 13 initial-valuef) 0.7111111) (set! (-> *part-id-table* 506 init-specs 3 initial-valuef) arg3) (set! (-> *part-id-table* 506 init-specs 5 initial-valuef) arg3) - (let ((t9-0 sp-launch-particles-var) - (a0-1 *sp-particle-system-3d*) - (a1-1 (-> *part-id-table* 506)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> arg1 quad)) - (t9-0 a0-1 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 506) arg1) (set! (-> *part-id-table* 509 init-specs 1 initial-valuef) (* 0.000004150391 f30-0)) (set! (-> *part-id-table* 509 init-specs 18 initial-valuef) arg0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-3d*) - (a1-2 (-> *part-id-table* 509)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> arg1 quad)) - (t9-1 a0-2 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 509) arg1) (when (< f30-0 4096.0) (set! (-> *part-id-table* 504 init-specs 2 random-rangef) arg4) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-3d*) - (a1-3 (-> *part-id-table* 504)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> arg1 quad)) - (t9-2 a0-3 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 504) arg1) ) ) 0 @@ -1556,6 +1472,7 @@ (logtest? (-> s2-2 prim-core action) arg3) (nonzero? (-> s2-2 prim-core collide-with)) ) + ;; og:preserve-this scratchpad (set! (-> (scratchpad-object region-prim-area) pos quad) (-> s2-2 prim-core world-sphere quad)) (if (and (within-area? arg1 (scratchpad-object region-prim-area)) (begin @@ -1588,6 +1505,7 @@ (set! (-> arg0 flags) (water-flags)) (set! (-> arg0 handle) (the-as handle #f)) (set! (-> s3-0 extra-flags) (the-as uint 0)) + ;; og:preserve-this scratchpad (set! (-> (scratchpad-object region-prim-area) region-prim-list num-items) 0) (set! (-> (scratchpad-object region-prim-area) region-inside-count) 0) (set! (-> (scratchpad-object region-prim-area) pos quad) (-> obj root-prim prim-core world-sphere quad)) @@ -1601,6 +1519,7 @@ (let ((a0-10 (-> s1-0 sv-80))) (while (< sv-80 s0-0) (if (= (-> a0-10 name) 'water) + ;; og:preserve-this scratchpad (collect-regions a0-10 (the-as sphere (-> (scratchpad-object region-prim-area) pos)) @@ -1618,6 +1537,7 @@ ) ) ) + ;; og:preserve-this scratchpad (countdown (s2-1 (-> (scratchpad-object region-prim-area) region-prim-list num-items)) (water-info<-region s3-0 (-> (scratchpad-object region-prim-area) region-prim-list items s2-1) obj arg1) (when (and (logtest? (-> s3-0 flags) (water-flags active)) diff --git a/goal_src/jak2/engine/draw/drawable.gc b/goal_src/jak2/engine/draw/drawable.gc index 541de33201..5f99f5064c 100644 --- a/goal_src/jak2/engine/draw/drawable.gc +++ b/goal_src/jak2/engine/draw/drawable.gc @@ -32,7 +32,7 @@ (vf19 :class vf) (vf9 :class vf) ) - ;; modified for PC: these register would be loaded by the draw method of bsp. + ;; og:preserve-this modified for PC: these register would be loaded by the draw method of bsp. (let ((at-0 *math-camera*)) (.lvf vf16 (&-> at-0 plane 0 quad)) (.lvf vf17 (&-> at-0 plane 1 quad)) @@ -45,7 +45,7 @@ (.add.mul.y.vf acc vf17 vf10 acc) (.add.mul.z.vf acc vf18 vf10 acc) (.sub.mul.w.vf vf9 vf19 vf0 acc) - + ;; og:preserve-this ;; checking to see if we are inside all 4 planes. ;; using the inside part of the sphere @@ -57,7 +57,7 @@ ) ) - +;; og:preserve-this (defun sphere-cull-for-ocean ((arg0 vector)) "Is the given sphere in the view frustum? PC-port ocean version" @@ -71,7 +71,7 @@ (vf19 :class vf) (vf9 :class vf) ) - ;; modified for PC: these register would be loaded by the draw method of bsp. + ;; og:preserve-this modified for PC: these register would be loaded by the draw method of bsp. (cond ((-> *time-of-day-context* use-camera-other) (let ((at-0 *math-camera*)) @@ -123,7 +123,7 @@ (vf9 :class vf) ) (init-vf0-vector) - ;; modified for PC: these registers would be loaded in dma-add-process-drawable + ;; og:preserve-this modified for PC: these registers would be loaded in dma-add-process-drawable (let ((at-0 *math-camera*)) (.lvf vf20 (&-> at-0 guard-plane 0 quad)) (.lvf vf21 (&-> at-0 guard-plane 1 quad)) @@ -308,7 +308,11 @@ ) (defmethod collect-regions drawable ((obj drawable) (arg0 sphere) (arg1 int) (arg2 region-prim-list)) - "Collect a list of regions that we're in, recursively." + "Determines the number of [[drawable]]s in the `obj` that overlap the given `area-of-interest` this number is stored in the `region-list`'s item count +@param area-of-interest The area defined by a sphere that we care about overlaps +@param _count The amount of [[drawable]]s in the object to enumerate through +@param! region-list Stores the overlapping regions and a count for how many were found +@returns none" 0 (none) ) @@ -596,6 +600,7 @@ "Print info about a prototype." (local-vars (sv-16 uint) + ;; og:preserve-this uint -> uint32 (sv-32 uint32) (sv-48 uint32) (sv-64 int) @@ -940,7 +945,7 @@ ) (init-vf0-vector) (set! sv-16 pd) - + ;; og:preserve-this (reset! (-> *perf-stats* data (perf-stat-bucket foreground))) ;; skip drawing when in menu mode. @@ -955,6 +960,7 @@ ;; only if we should draw... (when (not (logtest? (-> dc status) (draw-control-status no-draw no-draw-temp uninited))) + ;; og:preserve-this scratchpad (let ((fg-bounds (-> (scratchpad-object foreground-work) bounds)) (fg-lights (-> (scratchpad-object foreground-work) lights)) ) @@ -1107,13 +1113,13 @@ ) ) (when (not (paused?)) - (vector-seek! current-shadow-dir target-shadow-dir (* 0.2 (-> pp clock seconds-per-frame))) + (vector-seek! current-shadow-dir target-shadow-dir (* 0.2 (seconds-per-frame))) (vector-normalize! current-shadow-dir 1.0) ) (set! (-> dc shadow-ctrl settings shadow-dir w) shadow-dir-w) ) ) - + ;; og:preserve-this (#when PC_PORT (add-debug-lights *display-lights* (bucket-id debug2) (-> lg lights) (-> dc origin))) ) ) @@ -1153,6 +1159,7 @@ (.lvf vf27 (&-> at-0 camera-rot trans quad)) ) + ;; og:preserve-this scratchpad ;; do distance math (let ((fg-dist (-> (scratchpad-object foreground-work) distance))) (.lvf vf15 (&-> fg-bounds quad)) @@ -1179,6 +1186,7 @@ (cond ((>= (-> dc force-lod) 0) (set! lod-idx (-> dc force-lod)) + ;; og:preserve-this force high lods (if (#if (not PC_PORT) (< (-> dc lod-set lod (-> dc lod-set max-lod) dist) dist-w) (and (-> *pc-settings* ps2-lod-dist?) (< (-> dc lod-set lod (-> dc lod-set max-lod) dist) dist-w))) @@ -1192,7 +1200,7 @@ ) ) ) - ;; lod hacks! + ;; og:preserve-this lod hacks! (with-pc (when (not (-> *pc-settings* ps2-lod-dist?)) (set! lod-idx (minmax (-> *pc-settings* lod-force-actor) 0 (-> dc lod-set max-lod))) @@ -1257,7 +1265,7 @@ (set! (-> pp clock) (-> sv-16 clock)) ;; draw! - ;; PC port note : we ALWAYS disable the envmap hack when a process-drawable has warp effect enabled + ;; og:preserve-this PC port note: we ALWAYS disable the envmap hack when a process-drawable has warp effect enabled (when (or (= lod-idx (-> dc cur-lod)) (logtest? (-> dc status) (draw-control-status lod-set))) (protect ((-> *pc-settings* force-envmap?)) (when (not (movie?)) @@ -1270,9 +1278,9 @@ ) ) - ;; trick to do joint math twice if we're changing lods. + ;; og:preserve-this trick to do joint math twice if we're changing lods. (when (and (< lod-idx (-> dc cur-lod)) (logtest? (-> dc status) (draw-control-status math-skel))) - ;; NOTE : added this check for PC port to prevent memory corruption + ;; og:preserve-this added this check for PC port to prevent memory corruption (if (< (-> *matrix-engine* length) (-> *matrix-engine* allocated-length)) (let ((v1-159 *matrix-engine*)) (set! (-> v1-159 (-> v1-159 length)) (process->handle sv-16)) @@ -1288,6 +1296,7 @@ ) ) ) + ;; og:preserve-this (read! (-> *perf-stats* data (perf-stat-bucket foreground))) (none) ) @@ -1312,7 +1321,7 @@ ;; only draw if we're enabled (when (not (logtest? (-> arg1 status) (draw-control-status no-draw no-draw-temp uninited))) - + ;; og:preserve-this scratchpad ;; copy *hud-lights* to the scratchpad lights. (let ((v1-6 (-> (scratchpad-object foreground-work) lights)) (a0-3 *hud-lights*) @@ -1365,6 +1374,7 @@ (let ((gp-0 (-> *display* frames (-> *display* on-screen) global-buf base))) (with-profiler 'foreground *profile-foreground-color* (let ((s4-1 (-> arg1 global-buf))) + ;; og:preserve-this ; (let ((v1-29 (-> s4-1 base))) ; (.sync.l) ; (.cache dxwbin v1-29 0) @@ -1463,6 +1473,7 @@ (local-vars (a0-96 int) (a0-98 int)) (with-pp (when *slow-frame-rate* + ;; og:preserve-this (dotimes (v1-2 128000000) ;; was 12800000 (nop!) (nop!) @@ -1512,6 +1523,7 @@ (set! (-> pp clock) (-> *display* bg-clock)) (set! (-> pp clock) (-> *display* real-clock)) ) + ;; og:preserve-this ; (if (not (paused?)) ; (update-wind *wind-work* *wind-scales*) ; ) @@ -1554,7 +1566,7 @@ (foreground-execute-cpu-vu0-engines) (set! (-> pp clock) gp-6) ) - + ;; og:preserve-this ;; ?? ; (when *add-sphere* ; ) @@ -1729,7 +1741,7 @@ (defun display-frame-start ((arg0 display) (arg1 int) (arg2 float)) "Advance clocks, poll pads/mouse, set up buckets." - ;; workaround for PS2 HW bug + ;; og:preserve-this workaround for PS2 HW bug ; (set! (-> (the-as vif-bank #x10003c00) err me0) 1) ;; tick frame clocks (set-time-ratios *display* 1.0) @@ -1750,7 +1762,7 @@ (tick! (-> arg0 bg-clock)) (set! (-> arg0 bg-clock frame-counter) (the-as time-frame (mod (-> arg0 bg-clock frame-counter) #x69780))) (tick! (-> arg0 part-clock)) - + ;; og:preserve-this screenshot stuff ; (when (and (nonzero? *screen-shot-work*) (!= (-> *screen-shot-work* count) -1)) ; (let ((v1-43 (-> *screen-shot-work* size))) ; (if (!= (-> *screen-shot-work* count) (* v1-43 v1-43)) @@ -1791,6 +1803,7 @@ (debug-reset-buffers) (clear! *simple-sprite-system*) ) + ;; og:preserve-this (set! (-> s5-1 bucket-group) (dma-buffer-add-buckets (-> s5-1 calc-buf) (enum-length bucket-id))) ) @@ -1800,6 +1813,7 @@ (none) ) +;; og:preserve-this pc port function (defun pc-maybe-vsync () "PC Port implementation of the block of code in display-sync that computes frame-time-ratio and maybe vsyncs." ;; for now, it's very simple. @@ -2044,6 +2058,7 @@ (tfrag-vu1-init-buffers) (tie-vu1-init-buffers) (merc-vu1-init-buffers) + ;; og:preserve-this ; (emerc-vu1-init-buffers) (generic-vu1-init-buffers) diff --git a/goal_src/jak2/engine/entity/entity.gc b/goal_src/jak2/engine/entity/entity.gc index ee038a665d..e85a43bfe3 100644 --- a/goal_src/jak2/engine/entity/entity.gc +++ b/goal_src/jak2/engine/entity/entity.gc @@ -1543,7 +1543,7 @@ (s1-3 (-> s4-8 bsp region-trees s2-4)) ) (while (< s2-4 s3-5) - ;; pc port note : added this name check + ;; og:preserve-this pc port note: added this name check (let ((tree-name (-> s1-3 name))) (set! *debug-region-color-alt* (= tree-name 'camera)) @@ -1608,7 +1608,10 @@ ) ((begin (set! (-> s4-0 type) s5-0) - (and s5-0 (valid? s5-0 type (the-as string #f) #f 0) (valid? (method-of-object s4-0 init-from-entity!) function (the-as string #f) #f 0)) + (and s5-0 + (valid? s5-0 type (the-as string #f) #f 0) + (valid? (method-of-object s4-0 init-from-entity!) function (the-as string #f) #f 0) + ) ) (init-entity s4-0 obj s5-0) ) @@ -2093,147 +2096,147 @@ (sv-80 string) (sv-96 float) ) - (with-pp - (when *compact-actors* - (if (and (= *compact-actors* 'debug) (= (-> *nk-dead-pool* alive-list prev) (-> *nk-dead-pool* first-gap))) - (churn *nk-dead-pool* 1) - ) - (let ((s5-0 - (the int - (lerp-scale 8.0 1.0 (the float (-> *display* frames (-> *display* last-screen) run-time)) 2000.0 8000.0) - ) - ) - ) - (if (nonzero? *debug-dead-pool*) - (compact *debug-dead-pool* 10) - ) - (compact *nk-dead-pool* s5-0) - (compact *city-dead-pool* s5-0) + (when *compact-actors* + (if (and (= *compact-actors* 'debug) (= (-> *nk-dead-pool* alive-list prev) (-> *nk-dead-pool* first-gap))) + (churn *nk-dead-pool* 1) ) - ) - (update-actor-hash) - (when (not (paused?)) - (let ((s5-1 (-> *display* frames (-> *display* last-screen) run-time))) - (let ((f0-5 (fmax 327680.0 (fmin (+ 327680.0 (* 204.8 (the float (- 7000 s5-1)))) (-> *ACTOR-bank* birth-dist))))) - (seek! (-> *ACTOR-bank* pause-dist) f0-5 (* 81920.0 (-> pp clock seconds-per-frame))) - ) - (seekl! (-> *ACTOR-bank* birth-max) (the int (lerp-scale 25.0 2.0 (the float s5-1) 2000.0 7000.0)) 10) - ) - (if (movie?) - (set! (-> *ACTOR-bank* birth-max) 1000) - ) - ) - (when *spawn-actors* - (set! sv-16 (if (movie?) - (math-camera-pos) - (camera-pos) - ) + (let ((s5-0 + (the int + (lerp-scale 8.0 1.0 (the float (-> *display* frames (-> *display* last-screen) run-time)) 2000.0 8000.0) + ) ) - (set! sv-24 0) - (dotimes (s5-2 (-> obj length)) - (let ((s4-1 (-> obj level s5-2))) - (when (= (-> s4-1 status) 'active) - (set! sv-32 (-> s4-1 task-mask)) - (cond - ((= (-> s4-1 display?) 'special) - (let* ((s4-2 (-> s4-1 entity)) - (s3-1 (-> s4-2 length)) - ) - (dotimes (s2-0 s3-1) - (let ((v1-54 (-> s4-2 data s2-0))) - (cond - ((and (logtest? (-> v1-54 kill-mask) (task-mask special)) (not (logtest? (-> v1-54 kill-mask) sv-32))) - (when (not (or (-> v1-54 process) (logtest? (-> v1-54 perm status) (entity-perm-status bit-0 dead)))) - (birth! (-> v1-54 entity)) - (set! sv-24 (+ sv-24 1)) - (if (>= sv-24 (-> *ACTOR-bank* birth-max)) - (return #f) - ) - ) + ) + (if (nonzero? *debug-dead-pool*) + (compact *debug-dead-pool* 10) + ) + (compact *nk-dead-pool* s5-0) + (compact *city-dead-pool* s5-0) + ) + ) + (update-actor-hash) + (when (not (paused?)) + (let ((s5-1 (-> *display* frames (-> *display* last-screen) run-time))) + (let ((f0-5 (fmax 327680.0 (fmin (+ 327680.0 (* 204.8 (the float (- 7000 s5-1)))) (-> *ACTOR-bank* birth-dist))))) + (seek! (-> *ACTOR-bank* pause-dist) f0-5 (* 81920.0 (seconds-per-frame))) + ) + (seekl! (-> *ACTOR-bank* birth-max) (the int (lerp-scale 25.0 2.0 (the float s5-1) 2000.0 7000.0)) 10) + ) + (if (movie?) + (set! (-> *ACTOR-bank* birth-max) 1000) + ) + ) + (when *spawn-actors* + (set! sv-16 (if (movie?) + (math-camera-pos) + (camera-pos) + ) + ) + (set! sv-24 0) + (dotimes (s5-2 (-> obj length)) + (let ((s4-1 (-> obj level s5-2))) + (when (= (-> s4-1 status) 'active) + (set! sv-32 (-> s4-1 task-mask)) + (cond + ((= (-> s4-1 display?) 'special) + (let* ((s4-2 (-> s4-1 entity)) + (s3-1 (-> s4-2 length)) + ) + (dotimes (s2-0 s3-1) + (let ((v1-54 (-> s4-2 data s2-0))) + (cond + ((and (logtest? (-> v1-54 kill-mask) (task-mask special)) (not (logtest? (-> v1-54 kill-mask) sv-32))) + (when (not (or (-> v1-54 process) (logtest? (-> v1-54 perm status) (entity-perm-status bit-0 dead)))) + (birth! (-> v1-54 entity)) + (set! sv-24 (+ sv-24 1)) + (if (>= sv-24 (-> *ACTOR-bank* birth-max)) + (return #f) + ) ) - (else - (if (and (-> v1-54 process) - (not (logtest? (-> v1-54 perm status) (entity-perm-status no-kill))) - (not (logtest? (-> v1-54 process mask) (process-mask no-kill))) - ) - (kill! (-> v1-54 entity)) - ) - ) + ) + (else + (if (and (-> v1-54 process) + (not (logtest? (-> v1-54 perm status) (entity-perm-status no-kill))) + (not (logtest? (-> v1-54 process mask) (process-mask no-kill))) + ) + (kill! (-> v1-54 entity)) + ) ) ) ) ) ) - ((= (-> s4-1 display?) 'actor) - (let* ((s4-3 (-> s4-1 entity)) - (s3-2 (-> s4-3 length)) - ) - (dotimes (s2-1 s3-2) - (let ((v1-67 (-> s4-3 data s2-1))) - (cond - ((not (logtest? (-> v1-67 kill-mask) sv-32)) - (when (not (or (-> v1-67 process) (logtest? (-> v1-67 perm status) (entity-perm-status bit-0 dead)))) - (birth! (-> v1-67 entity)) - (set! sv-24 (+ sv-24 1)) - (if (>= sv-24 (-> *ACTOR-bank* birth-max)) - (return #f) - ) - ) + ) + ((= (-> s4-1 display?) 'actor) + (let* ((s4-3 (-> s4-1 entity)) + (s3-2 (-> s4-3 length)) + ) + (dotimes (s2-1 s3-2) + (let ((v1-67 (-> s4-3 data s2-1))) + (cond + ((not (logtest? (-> v1-67 kill-mask) sv-32)) + (when (not (or (-> v1-67 process) (logtest? (-> v1-67 perm status) (entity-perm-status bit-0 dead)))) + (birth! (-> v1-67 entity)) + (set! sv-24 (+ sv-24 1)) + (if (>= sv-24 (-> *ACTOR-bank* birth-max)) + (return #f) + ) ) - (else - (if (and (-> v1-67 process) - (not (logtest? (-> v1-67 perm status) (entity-perm-status no-kill))) - (not (logtest? (-> v1-67 process mask) (process-mask no-kill))) - ) - (kill! (-> v1-67 entity)) - ) - ) + ) + (else + (if (and (-> v1-67 process) + (not (logtest? (-> v1-67 perm status) (entity-perm-status no-kill))) + (not (logtest? (-> v1-67 process mask) (process-mask no-kill))) + ) + (kill! (-> v1-67 entity)) + ) ) ) ) ) ) - ((not *vis-actors*) - (let* ((s4-4 (-> s4-1 entity)) - (s3-3 (-> s4-4 length)) - ) - (dotimes (s2-2 s3-3) - (let ((s1-0 (-> s4-4 data s2-2))) - (cond - ((and (< (vector-vector-distance (-> s1-0 trans) sv-16) (-> *ACTOR-bank* birth-dist)) - (not (logtest? (-> s1-0 perm status) (entity-perm-status bit-9 bit-10))) - (not (logtest? (-> s1-0 kill-mask) sv-32)) - ) - (when (not (or (-> s1-0 process) (logtest? (-> s1-0 perm status) (entity-perm-status bit-0 dead)))) - (birth! (-> s1-0 entity)) - (set! sv-24 (+ sv-24 1)) - (if (>= sv-24 (-> *ACTOR-bank* birth-max)) - (return #f) - ) - ) + ) + ((not *vis-actors*) + (let* ((s4-4 (-> s4-1 entity)) + (s3-3 (-> s4-4 length)) + ) + (dotimes (s2-2 s3-3) + (let ((s1-0 (-> s4-4 data s2-2))) + (cond + ((and (< (vector-vector-distance (-> s1-0 trans) sv-16) (-> *ACTOR-bank* birth-dist)) + (not (logtest? (-> s1-0 perm status) (entity-perm-status bit-9 bit-10))) + (not (logtest? (-> s1-0 kill-mask) sv-32)) + ) + (when (not (or (-> s1-0 process) (logtest? (-> s1-0 perm status) (entity-perm-status bit-0 dead)))) + (birth! (-> s1-0 entity)) + (set! sv-24 (+ sv-24 1)) + (if (>= sv-24 (-> *ACTOR-bank* birth-max)) + (return #f) + ) ) - (else - (if (and (-> s1-0 process) - (not (logtest? (-> s1-0 perm status) (entity-perm-status no-kill))) - (not (logtest? (-> s1-0 process mask) (process-mask no-kill))) - ) - (kill! (-> s1-0 entity)) - ) - ) + ) + (else + (if (and (-> s1-0 process) + (not (logtest? (-> s1-0 perm status) (entity-perm-status no-kill))) + (not (logtest? (-> s1-0 process mask) (process-mask no-kill))) + ) + (kill! (-> s1-0 entity)) + ) ) ) ) ) ) - (*vis-actors* - (when (not (and (-> s4-1 vis-info 0) (-> s4-1 all-visible?))) - (let* ((s3-4 (-> s4-1 entity)) - (s2-3 (-> s3-4 length)) - (s0-0 #f) - ) - (dotimes (s1-1 s2-3) - (set! sv-48 (-> s3-4 data s1-1)) - (cond + ) + (*vis-actors* + (when (not (and (-> s4-1 vis-info 0) (-> s4-1 all-visible?))) + (let* ((s3-4 (-> s4-1 entity)) + (s2-3 (-> s3-4 length)) + (s0-0 #f) + ) + (dotimes (s1-1 s2-3) + (set! sv-48 (-> s3-4 data s1-1)) + (cond + ;; og:preserve-this entity blacklist ((and (#if PC_PORT (or (with-pc (and (not (-> *pc-settings* ps2-actor-vis?)) ;; ban specific entities (not (let ((name (res-lump-struct (-> sv-48 entity) 'name string))) @@ -2247,10 +2250,10 @@ (string= name "under-locking-2")))))) (is-object-visible? s4-1 (-> sv-48 vis-id))) (is-object-visible? s4-1 (-> sv-48 vis-id))) - (not (logtest? (-> sv-48 perm status) (entity-perm-status bit-9 bit-10))) - (not (logtest? (-> sv-48 kill-mask) sv-32)) - (or (-> s4-1 vis-info 0) (< (vector-vector-distance (-> sv-48 trans) sv-16) (-> sv-48 vis-dist))) - ;; PC port note : added this extra check to fix level types being used after deloaded because of bad entity placement + (not (logtest? (-> sv-48 perm status) (entity-perm-status bit-9 bit-10))) + (not (logtest? (-> sv-48 kill-mask) sv-32)) + (or (-> s4-1 vis-info 0) (< (vector-vector-distance (-> sv-48 trans) sv-16) (-> sv-48 vis-dist))) + ;; og:preserve-this PC port note: added this extra check to fix level types being used after deloaded because of bad entity placement (#if PC_PORT (or (not (type-type? (-> sv-48 entity type) entity-actor)) (and (valid? (-> (the-as entity-actor (-> sv-48 entity)) etype) type "entity-type-check etype" #f *stdcon*) (valid? (-> (the-as entity-actor (-> sv-48 entity)) etype symbol) symbol "entity-type-check symbol" #f *stdcon*) @@ -2258,39 +2261,38 @@ (= (-> (the-as entity-actor (-> sv-48 entity)) etype) (-> (the-as entity-actor (-> sv-48 entity)) etype symbol value)) )) #f) - ) - (when (not (or (-> sv-48 process) (logtest? (-> sv-48 perm status) (entity-perm-status bit-0 dead)) s0-0)) - (birth! (-> sv-48 entity)) - (set! sv-24 (+ sv-24 1)) - (when (< (/ (the float (memory-free *nk-dead-pool*)) (the float (memory-total *nk-dead-pool*))) 0.1) - (when *debug-segment* - (let ((s0-1 format)) - (set! sv-64 *stdcon*) - (set! sv-80 "low actor memory, no birth triggered!!! ~,,0fK/~,,0fK~%") - (set! sv-96 (* 0.0009765625 (the float (memory-free *nk-dead-pool*)))) - (let ((a3-2 (* 0.0009765625 (the float (memory-total *nk-dead-pool*))))) - (s0-1 sv-64 sv-80 sv-96 a3-2) - ) + ) + (when (not (or (-> sv-48 process) (logtest? (-> sv-48 perm status) (entity-perm-status bit-0 dead)) s0-0)) + (birth! (-> sv-48 entity)) + (set! sv-24 (+ sv-24 1)) + (when (< (/ (the float (memory-free *nk-dead-pool*)) (the float (memory-total *nk-dead-pool*))) 0.1) + (when *debug-segment* + (let ((s0-1 format)) + (set! sv-64 *stdcon*) + (set! sv-80 "low actor memory, no birth triggered!!! ~,,0fK/~,,0fK~%") + (set! sv-96 (* 0.0009765625 (the float (memory-free *nk-dead-pool*)))) + (let ((a3-2 (* 0.0009765625 (the float (memory-total *nk-dead-pool*))))) + (s0-1 sv-64 sv-80 sv-96 a3-2) ) ) - (set! s0-0 #t) ) + (set! s0-0 #t) ) ) - (else - (when (and (-> sv-48 process) - (not (logtest? (-> sv-48 perm status) (entity-perm-status no-kill))) - (not (logtest? (-> sv-48 process mask) (process-mask no-kill))) - ) - (kill! (-> sv-48 entity)) - (set! sv-24 (+ sv-24 1)) - ) + ) + (else + (when (and (-> sv-48 process) + (not (logtest? (-> sv-48 perm status) (entity-perm-status no-kill))) + (not (logtest? (-> sv-48 process mask) (process-mask no-kill))) + ) + (kill! (-> sv-48 entity)) + (set! sv-24 (+ sv-24 1)) ) ) - (if (>= sv-24 (-> *ACTOR-bank* birth-max)) - (return #f) - ) ) + (if (>= sv-24 (-> *ACTOR-bank* birth-max)) + (return #f) + ) ) ) ) @@ -2299,9 +2301,9 @@ ) ) ) - 0 - (none) ) + 0 + (none) ) (defun entity-birth-no-kill ((arg0 entity)) diff --git a/goal_src/jak2/engine/game/game-info.gc b/goal_src/jak2/engine/game/game-info.gc index 4b53a7131d..8815d83ae2 100644 --- a/goal_src/jak2/engine/game/game-info.gc +++ b/goal_src/jak2/engine/game/game-info.gc @@ -904,7 +904,7 @@ (set! (-> s5-0 flags) (font-flags shadow kerning large)) (let ((s3-1 (current-time))) (until (>= (- (current-time) s3-1) (+ arg2 -75)) - (+! (-> s5-0 origin y) (* -120.0 (-> self clock seconds-per-frame))) + (+! (-> s5-0 origin y) (* -120.0 (seconds-per-frame))) (let ((s2-0 print-game-text)) (format (clear *temp-string*) "~4,,0f" arg1) (s2-0 *temp-string* s5-0 #f 44 (bucket-id debug-no-zbuf1)) @@ -915,7 +915,7 @@ (let ((s4-1 (current-time))) (until (>= (- (current-time) s4-1) (seconds 0.25)) (set! (-> s5-0 alpha) (lerp-scale 1.0 0.0 (the float (- (current-time) s4-1)) 0.0 150.0)) - (+! (-> s5-0 origin y) (* -120.0 (-> self clock seconds-per-frame))) + (+! (-> s5-0 origin y) (* -120.0 (seconds-per-frame))) (let ((s3-2 print-game-text)) (format (clear *temp-string*) "~4,,0f" arg1) (s3-2 *temp-string* s5-0 #f 44 (bucket-id debug-no-zbuf1)) @@ -1285,6 +1285,7 @@ (if arg2 (format arg0 "~%") ) + ;; og:preserve-this level constant (dotimes (s4-2 LEVEL_MAX) (if (or (= (-> *level* level s4-2 status) 'active) (= (-> *level* level s4-2 status) 'alive) diff --git a/goal_src/jak2/engine/game/settings.gc b/goal_src/jak2/engine/game/settings.gc index d7cd6d9787..13168233f4 100644 --- a/goal_src/jak2/engine/game/settings.gc +++ b/goal_src/jak2/engine/game/settings.gc @@ -901,7 +901,7 @@ (mem-copy! (the-as pointer s4-0) (the-as pointer (-> obj user-default)) 528) (set! (-> s4-0 ambient-volume) (* (-> obj user-default sfx-volume) (-> obj user-default ambient-volume))) (user-setting-data-method-9 s4-0 (-> obj engine) (-> obj engine-pers) (-> obj engine-hi)) - ;; pc port note : check for target sound mode and music instead of current sound mode + ;; og:preserve-this check for target sound mode and music instead of current sound mode (when (= (-> s4-0 sound-mode) 1) (case (-> s4-0 music) (('sewer) @@ -1055,85 +1055,85 @@ (defmethod update setting-control ((obj setting-control)) (local-vars (v1-41 symbol)) - (with-pp - (run-pending-updates! (-> obj engine-pers) (-> *display* base-clock frame-counter)) - (apply-settings obj) - (let ((s5-0 (-> obj user-current))) - (let ((s4-0 (-> obj user-target))) - (when *sound-player-enable* - (when (!= (-> s5-0 sfx-volume) (-> s4-0 sfx-volume)) - (seek! (-> s5-0 sfx-volume) (-> s4-0 sfx-volume) (-> pp clock seconds-per-frame)) - (sound-set-volume (sound-group sfx) (-> s5-0 sfx-volume)) - ) - (when (!= (-> s5-0 music-volume) (-> s4-0 music-volume)) - (seek! (-> s5-0 music-volume) (-> s4-0 music-volume) (-> pp clock seconds-per-frame)) - (sound-set-volume (sound-group music) (* 0.75 (-> s5-0 music-volume))) - ) - (when (!= (-> s5-0 dialog-volume) (-> s4-0 dialog-volume)) - (seek! (-> s5-0 dialog-volume) (-> s4-0 dialog-volume) (-> pp clock seconds-per-frame)) - (sound-set-volume (sound-group dialog dialog2) (-> s5-0 dialog-volume)) - ) - (when (!= (-> s5-0 ambient-volume) (-> s4-0 ambient-volume)) - (seek! (-> s5-0 ambient-volume) (-> s4-0 ambient-volume) (-> pp clock seconds-per-frame)) - (sound-set-volume (sound-group ambient) (-> s5-0 ambient-volume)) + (run-pending-updates! (-> obj engine-pers) (-> *display* base-clock frame-counter)) + (apply-settings obj) + (let ((s5-0 (-> obj user-current))) + (let ((s4-0 (-> obj user-target))) + (when *sound-player-enable* + (when (!= (-> s5-0 sfx-volume) (-> s4-0 sfx-volume)) + (seek! (-> s5-0 sfx-volume) (-> s4-0 sfx-volume) (seconds-per-frame)) + (sound-set-volume (sound-group sfx) (-> s5-0 sfx-volume)) + ) + (when (!= (-> s5-0 music-volume) (-> s4-0 music-volume)) + (seek! (-> s5-0 music-volume) (-> s4-0 music-volume) (seconds-per-frame)) + (sound-set-volume (sound-group music) (* 0.75 (-> s5-0 music-volume))) + ) + (when (!= (-> s5-0 dialog-volume) (-> s4-0 dialog-volume)) + (seek! (-> s5-0 dialog-volume) (-> s4-0 dialog-volume) (seconds-per-frame)) + (sound-set-volume (sound-group dialog dialog2) (-> s5-0 dialog-volume)) + ) + (when (!= (-> s5-0 ambient-volume) (-> s4-0 ambient-volume)) + (seek! (-> s5-0 ambient-volume) (-> s4-0 ambient-volume) (seconds-per-frame)) + (sound-set-volume (sound-group ambient) (-> s5-0 ambient-volume)) + ) + ) + (when (!= (-> s5-0 language) (-> s4-0 language)) + (set! (-> s5-0 language) (-> s4-0 language)) + (case (-> s5-0 language) + (((language-enum uk-english)) + (set-language (language-enum english)) + ) + (else + (set-language (-> s5-0 language)) ) ) - (when (!= (-> s5-0 language) (-> s4-0 language)) - (set! (-> s5-0 language) (-> s4-0 language)) - (case (-> s5-0 language) - (((language-enum uk-english)) - (set-language (language-enum english)) - ) - (else - (set-language (-> s5-0 language)) - ) - ) - ) - (set! (-> s5-0 subtitle-language) (-> s4-0 subtitle-language)) - (when (!= (-> s5-0 stereo-mode) (-> s4-0 stereo-mode)) - (set! (-> s5-0 stereo-mode) (-> s4-0 stereo-mode)) - (sound-set-stereo-mode (the-as stereo-mode (-> s5-0 stereo-mode))) - ) - (when (and (!= (-> s4-0 music) (-> s5-0 music)) - (and (zero? (rpc-busy? 1)) - (or (not (-> s4-0 music)) - (and (< 0.0 (-> s5-0 music-volume)) (not (load-in-progress? *level*)) (not (-> s5-0 movie))) - ) - (begin - (countdown (v1-40 3) - (when (not (-> *level* sound-bank v1-40)) - (set! v1-41 #f) - (goto cfg-37) - ) - ) - (set! v1-41 #t) - (label cfg-37) - (and v1-41 (not *master-exit*)) + ) + (set! (-> s5-0 subtitle-language) (-> s4-0 subtitle-language)) + (when (!= (-> s5-0 stereo-mode) (-> s4-0 stereo-mode)) + (set! (-> s5-0 stereo-mode) (-> s4-0 stereo-mode)) + (sound-set-stereo-mode (the-as stereo-mode (-> s5-0 stereo-mode))) + ) + (when (and (!= (-> s4-0 music) (-> s5-0 music)) + (and (zero? (rpc-busy? 1)) + (or (not (-> s4-0 music)) + (and (< 0.0 (-> s5-0 music-volume)) (not (load-in-progress? *level*)) (not (-> s5-0 movie))) ) + (begin + (countdown (v1-40 3) + (when (not (-> *level* sound-bank v1-40)) + (set! v1-41 #f) + (goto cfg-37) + ) + ) + (set! v1-41 #t) + (label cfg-37) + (and v1-41 (not *master-exit*)) ) - ) - (cond - ((-> s4-0 music) - (format 0 "Load music ~A~%" (-> s4-0 music)) - (set! (-> s5-0 sound-flava) (the-as uint 0)) - (sound-music-load (string->sound-name (symbol->string (-> s4-0 music)))) - ) - (else - (format 0 "Unload music~%") - (sound-music-unload) - ) + ) + ) + (cond + ((-> s4-0 music) + (format 0 "Load music ~A~%" (-> s4-0 music)) + (set! (-> s5-0 sound-flava) (the-as uint 0)) + (sound-music-load (string->sound-name (symbol->string (-> s4-0 music)))) + ) + (else + (format 0 "Unload music~%") + (sound-music-unload) ) - (set! (-> s5-0 music) (-> s4-0 music)) ) - (set! (-> s4-0 sound-excitement) (fmax 0.0 (fmin 0.99 (-> s4-0 sound-excitement)))) - (set! (-> s4-0 sound-reverb) (fmax 0.0 (fmin 1.0 (-> s4-0 sound-reverb)))) - (when (and (nonzero? (-> obj user-default sound-stinger)) - (>= (- (-> *display* base-clock frame-counter) (-> obj sound-stinger-time)) (seconds 0.5)) - ) - (set! (-> obj user-default sound-stinger) 0) - 0 - ) - (when *sound-player-enable* + (set! (-> s5-0 music) (-> s4-0 music)) + ) + (set! (-> s4-0 sound-excitement) (fmax 0.0 (fmin 0.99 (-> s4-0 sound-excitement)))) + (set! (-> s4-0 sound-reverb) (fmax 0.0 (fmin 1.0 (-> s4-0 sound-reverb)))) + (when (and (nonzero? (-> obj user-default sound-stinger)) + (>= (- (-> *display* base-clock frame-counter) (-> obj sound-stinger-time)) (seconds 0.5)) + ) + (set! (-> obj user-default sound-stinger) 0) + 0 + ) + (when *sound-player-enable* + ;; og:preserve-this ;; PC port note : this was a huge cond which is not really the greatest idea since only one of the clauses can run ;; it seems that it's completely safe to change multiple midi registers at once. ;; it also only changed the registers when the settings changed, but this is undesirable as the sound driver itself @@ -1160,220 +1160,219 @@ (set! (-> obj sound-stinger-time) (-> *display* base-clock frame-counter)) ) (when (!= (the int (* 4.0 (-> s4-0 sound-excitement))) (the int (* 4.0 (-> obj sound-excitement-targ)))) - (let ((v1-87 (max 0 (min 3 (the int (* 4.0 (-> s4-0 sound-excitement))))))) - (when (and (< (-> obj sound-excitement-targ) (-> s4-0 sound-excitement)) + (let ((v1-87 (max 0 (min 3 (the int (* 4.0 (-> s4-0 sound-excitement))))))) + (when (and (< (-> obj sound-excitement-targ) (-> s4-0 sound-excitement)) (< (the-as int (-> obj sound-excitement-level)) v1-87) (zero? (-> obj user-default sound-stinger)) ) - (set! (-> obj sound-stinger-time) (-> *display* base-clock frame-counter)) - (set! (-> obj sound-stinger-change-time v1-87) (-> *display* base-clock frame-counter)) - (set! (-> obj user-default sound-stinger) (+ v1-87 9)) + (set! (-> obj sound-stinger-time) (-> *display* base-clock frame-counter)) + (set! (-> obj sound-stinger-change-time v1-87) (-> *display* base-clock frame-counter)) + (set! (-> obj user-default sound-stinger) (+ v1-87 9)) + ) + (cond + ((< (the-as int (-> obj sound-excitement-level)) v1-87) + (set! (-> obj sound-excitement-level) (the-as uint v1-87)) ) - (cond - ((< (the-as int (-> obj sound-excitement-level)) v1-87) - (set! (-> obj sound-excitement-level) (the-as uint v1-87)) - ) - ((< v1-87 (the-as int (+ (-> obj sound-excitement-level) -1))) - (set! (-> obj sound-excitement-level) (the-as uint (+ v1-87 1))) - ) - ((zero? v1-87) - (set! (-> obj sound-excitement-level) (the-as uint v1-87)) - ) + ((< v1-87 (the-as int (+ (-> obj sound-excitement-level) -1))) + (set! (-> obj sound-excitement-level) (the-as uint (+ v1-87 1))) ) - ) - (set! (-> obj sound-excitement-change-time) (-> *display* base-clock frame-counter)) - (set! (-> obj sound-excitement-targ) (-> s4-0 sound-excitement)) - ) + ((zero? v1-87) + (set! (-> obj sound-excitement-level) (the-as uint v1-87)) + ) + ) + ) + (set! (-> obj sound-excitement-change-time) (-> *display* base-clock frame-counter)) + (set! (-> obj sound-excitement-targ) (-> s4-0 sound-excitement)) + ) (when (and (!= (the int (* 4.0 (-> s5-0 sound-excitement))) (the int (* 4.0 (-> obj sound-excitement-targ)))) (>= (- (-> *display* base-clock frame-counter) (-> obj sound-excitement-change-time)) (seconds 0.8)) ) - (max 0 (min 3 (the int (* 4.0 (-> obj sound-excitement-targ))))) - (sound-set-midi-reg 2 (the int (* 100.0 (-> s5-0 sound-excitement)))) - (set! (-> s5-0 sound-excitement) (-> obj sound-excitement-targ)) - (sound-set-midi-reg 16 (the int (* 100.0 (-> s5-0 sound-excitement)))) + (max 0 (min 3 (the int (* 4.0 (-> obj sound-excitement-targ))))) + (sound-set-midi-reg 2 (the int (* 100.0 (-> s5-0 sound-excitement)))) + (set! (-> s5-0 sound-excitement) (-> obj sound-excitement-targ)) + (sound-set-midi-reg 16 (the int (* 100.0 (-> s5-0 sound-excitement)))) + ) + ) + (set! (-> s5-0 mode-sound-bank) (-> s4-0 mode-sound-bank)) + (when (!= (-> s5-0 aspect-ratio) (-> s4-0 aspect-ratio)) + (set! (-> s5-0 aspect-ratio) (-> s4-0 aspect-ratio)) + (set-aspect-ratio (-> s5-0 aspect-ratio)) + ) + (when (!= (-> s5-0 use-progressive-scan) (-> s4-0 use-progressive-scan)) + (set! (-> s5-0 use-progressive-scan) (-> s4-0 use-progressive-scan)) + (set! (-> *video-params* set-video-mode) #t) + ) + (when (!= (-> s5-0 video-mode) (-> s4-0 video-mode)) + (set! (-> s5-0 video-mode) (-> s4-0 video-mode)) + (set-video-mode (-> s5-0 video-mode)) + ) + (when (!= (-> s5-0 display-dx) (-> s4-0 display-dx)) + (set! (-> s5-0 display-dx) (-> s4-0 display-dx)) + (set! (-> *video-params* display-dx) (/ (-> s4-0 display-dx) 2)) + ) + (when (!= (-> s5-0 display-dy) (-> s4-0 display-dy)) + (set! (-> s5-0 display-dy) (-> s4-0 display-dy)) + (set! (-> *video-params* display-dy) (* (/ (-> s4-0 display-dy) 2) 2)) + ) + (set! (-> *blit-displays-work* horizontal-flip-flag) + (logtest? (-> *game-info* secrets) (game-secrets hflip-screen)) ) - ) - (set! (-> s5-0 mode-sound-bank) (-> s4-0 mode-sound-bank)) - (when (!= (-> s5-0 aspect-ratio) (-> s4-0 aspect-ratio)) - (set! (-> s5-0 aspect-ratio) (-> s4-0 aspect-ratio)) - (set-aspect-ratio (-> s5-0 aspect-ratio)) - ) - (when (!= (-> s5-0 use-progressive-scan) (-> s4-0 use-progressive-scan)) - (set! (-> s5-0 use-progressive-scan) (-> s4-0 use-progressive-scan)) - (set! (-> *video-params* set-video-mode) #t) - ) - (when (!= (-> s5-0 video-mode) (-> s4-0 video-mode)) - (set! (-> s5-0 video-mode) (-> s4-0 video-mode)) - (set-video-mode (-> s5-0 video-mode)) - ) - (when (!= (-> s5-0 display-dx) (-> s4-0 display-dx)) - (set! (-> s5-0 display-dx) (-> s4-0 display-dx)) - (set! (-> *video-params* display-dx) (/ (-> s4-0 display-dx) 2)) - ) - (when (!= (-> s5-0 display-dy) (-> s4-0 display-dy)) - (set! (-> s5-0 display-dy) (-> s4-0 display-dy)) - (set! (-> *video-params* display-dy) (* (/ (-> s4-0 display-dy) 2) 2)) - ) - (set! (-> *blit-displays-work* horizontal-flip-flag) - (logtest? (-> *game-info* secrets) (game-secrets hflip-screen)) + (set! (-> s5-0 allow-blackout) (-> s4-0 allow-blackout)) + (set! (-> s5-0 bg-a-speed) (-> s4-0 bg-a-speed)) + (set! (-> s5-0 bg-a-force) (-> s4-0 bg-a-force)) + (set! (-> s5-0 bg-r) (-> s4-0 bg-r)) + (set! (-> s5-0 bg-g) (-> s4-0 bg-g)) + (set! (-> s5-0 bg-b) (-> s4-0 bg-b)) + (seek! (-> s5-0 bg-a) (-> s4-0 bg-a) (* (-> s4-0 bg-a-speed) (seconds-per-frame))) + (let ((v1-133 *display*)) + (let ((f0-71 (-> s5-0 bg-a))) + (if (!= (-> s5-0 bg-a-force) 0.0) + (set! f0-71 (-> s5-0 bg-a-force)) ) - (set! (-> s5-0 allow-blackout) (-> s4-0 allow-blackout)) - (set! (-> s5-0 bg-a-speed) (-> s4-0 bg-a-speed)) - (set! (-> s5-0 bg-a-force) (-> s4-0 bg-a-force)) - (set! (-> s5-0 bg-r) (-> s4-0 bg-r)) - (set! (-> s5-0 bg-g) (-> s4-0 bg-g)) - (set! (-> s5-0 bg-b) (-> s4-0 bg-b)) - (seek! (-> s5-0 bg-a) (-> s4-0 bg-a) (* (-> s4-0 bg-a-speed) (-> pp clock seconds-per-frame))) - (let ((v1-133 *display*)) - (let ((f0-71 (-> s5-0 bg-a))) - (if (!= (-> s5-0 bg-a-force) 0.0) - (set! f0-71 (-> s5-0 bg-a-force)) - ) - (if (not (-> s5-0 allow-blackout)) - (set! f0-71 0.0) - ) - (set! (-> v1-133 bgcolor r) (the int (* 255.0 (-> s5-0 bg-r)))) - (set! (-> v1-133 bgcolor g) (the int (* 255.0 (-> s5-0 bg-g)))) - (set! (-> v1-133 bgcolor b) (the int (* 255.0 (-> s5-0 bg-b)))) - (set! (-> v1-133 pmode alp) (the int (* 255.0 (- 1.0 f0-71)))) - ) - (set! (-> v1-133 run-half-speed) (the-as basic (-> s5-0 half-speed))) + (if (not (-> s5-0 allow-blackout)) + (set! f0-71 0.0) + ) + (set! (-> v1-133 bgcolor r) (the int (* 255.0 (-> s5-0 bg-r)))) + (set! (-> v1-133 bgcolor g) (the int (* 255.0 (-> s5-0 bg-g)))) + (set! (-> v1-133 bgcolor b) (the int (* 255.0 (-> s5-0 bg-b)))) + (set! (-> v1-133 pmode alp) (the int (* 255.0 (- 1.0 f0-71)))) ) - (set! (-> s5-0 spotlight-color) (-> s4-0 spotlight-color)) + (set! (-> v1-133 run-half-speed) (the-as basic (-> s5-0 half-speed))) ) - (set! (-> *texture-pool* common-page-mask) (-> s5-0 unknown-int32-00)) - (set! (-> *cpad-list* cpads 0 buzz) (the-as basic (-> s5-0 vibration))) - (let ((v1-137 *ocean*)) - (case (-> s5-0 ocean-off) - ((#t) - (set! (-> v1-137 off) #t) - ) - (('mid) - (set! (-> v1-137 mid-off) #t) - ) - (('near) - (set! (-> v1-137 near-off) #t) - ) - ) - ) - (set! (-> *mouse* active) (-> s5-0 mouse)) - (set! (-> *mouse* cursor) (the-as basic (and (-> s5-0 mouse) (-> s5-0 cursor)))) + (set! (-> s5-0 spotlight-color) (-> s4-0 spotlight-color)) ) - (let ((s5-1 (-> obj cam-current))) - (let ((s4-1 (-> obj cam-target))) - (set! (-> s5-1 entity-or-mode-changed) #f) - (if (and (not (name= (-> s5-1 entity-name) (-> s4-1 entity-name))) - (or (not *target*) (not (logtest? (-> *target* focus-status) (-> s4-1 entity-mask)))) - ) - (set! (-> s4-1 entity-or-mode-changed) #t) - ) - (if (!= (-> s5-1 mode-name) (-> s4-1 mode-name)) - (set! (-> s4-1 entity-or-mode-changed) #t) - ) - (set! (-> s5-1 teleport-on-entity-change) (-> s4-1 teleport-on-entity-change)) - (cam-master-set-entity s4-1) - (cond - ((not (-> s4-1 entity-or-mode-changed)) - ) - ((or (= (-> s5-1 cam-mode) cam-eye) (= (-> s4-1 cam-mode) cam-eye)) - (set! (-> s4-1 no-intro) #t) - (set! (-> s4-1 interp-time) (the-as uint 60)) - (set! (-> s4-1 1Tinterp-time-priority) (the-as uint 2)) - ) - ((= (-> s4-1 cam-mode) cam-endlessfall) - (set! (-> s4-1 no-intro) #t) - (set! (-> s4-1 interp-time) (the-as uint 30)) - (set! (-> s4-1 1Tinterp-time-priority) (the-as uint 2)) - ) - ((or (= (-> s5-1 cam-mode) cam-free-floating) (= (-> s4-1 cam-mode) cam-free-floating)) - (set! (-> s4-1 interp-time) (the-as uint 0)) - (set! (-> s4-1 1Tinterp-time-priority) (the-as uint 2)) - ) - ) - (set! (-> s5-1 entity-name) (-> s4-1 entity-name)) - (set! (-> s5-1 entity-mask) (-> s4-1 entity-mask)) - (set! (-> s5-1 mode-name) (-> s4-1 mode-name)) - (let ((v1-173 (-> s4-1 entity-or-mode-changed))) - (set! (-> s5-1 entity-or-mode-changed) v1-173) - (when v1-173 - (set! (-> s5-1 real-entity-name) (-> s4-1 real-entity-name)) - (set! (-> s5-1 cam-mode) (-> s4-1 cam-mode)) - ) - ) - (+! (-> s5-1 fov) (fmax -182.04445 (fmin 182.04445 (* 0.1 (- (-> s4-1 fov) (-> s5-1 fov)))))) - (set! (-> s5-1 pov-handle) (-> s4-1 pov-handle)) - (set! (-> s5-1 pov-bone) (-> s4-1 pov-bone)) - (set! (-> s5-1 pov-offset quad) (-> s4-1 pov-offset quad)) - (set! (-> s5-1 string-default) (-> s4-1 string-default)) - (set! (-> s5-1 string-max-length-default) (-> s4-1 string-max-length-default)) - (set! (-> s5-1 string-min-length-default) (-> s4-1 string-min-length-default)) - (set! (-> s5-1 string-max-height-default) (-> s4-1 string-max-height-default)) - (set! (-> s5-1 string-min-height-default) (-> s4-1 string-min-height-default)) - (set! (-> s5-1 string-max-length) (-> s4-1 string-max-length)) - (set! (-> s5-1 string-min-length) (-> s4-1 string-min-length)) - (set! (-> s5-1 string-max-height) (-> s4-1 string-max-height)) - (set! (-> s5-1 string-min-height) (-> s4-1 string-min-height)) - (set! (-> s5-1 string-cliff-height) (-> s4-1 string-cliff-height)) - (set! (-> s5-1 string-camera-ceiling) (-> s4-1 string-camera-ceiling)) - (cond - ((-> s5-1 string-default) - (set! (-> s5-1 gun-min-height) (-> s4-1 gun-min-height)) - (set! (-> s5-1 gun-max-height) (-> s4-1 gun-max-height)) - ) - (else - (set! (-> s5-1 gun-min-height) (-> s4-1 string-min-height)) - (set! (-> s5-1 gun-max-height) (-> s4-1 string-max-height)) - ) - ) - (set! (-> s5-1 string-local-down quad) (-> s4-1 string-local-down quad)) - (set! (-> s5-1 slave-options) (-> s4-1 slave-options)) - (seek! (-> s5-1 matrix-blend-max-angle) (-> s4-1 matrix-blend-max-angle) 182.04445) - (seek! (-> s5-1 matrix-blend-max-partial) (-> s4-1 matrix-blend-max-partial) 0.05) - (set! (-> s5-1 string-spline-max-move) (-> s4-1 string-spline-max-move)) - (set! (-> s5-1 string-spline-accel) (-> s4-1 string-spline-accel)) - (set! (-> s5-1 string-spline-max-move-player) (-> s4-1 string-spline-max-move-player)) - (set! (-> s5-1 string-spline-accel-player) (-> s4-1 string-spline-accel-player)) - (set! (-> s5-1 target-height) (-> s4-1 target-height)) - (set! (-> s5-1 head-offset) (-> s4-1 head-offset)) - (set! (-> s5-1 foot-offset) (-> s4-1 foot-offset)) - (set! (-> s5-1 master-options) (-> s4-1 master-options)) - (set! (-> s5-1 no-intro) (-> s4-1 no-intro)) - (set! (-> s5-1 mouse-input) (-> s4-1 mouse-input)) - (set! (-> s5-1 cpad1-skip-buttons) (-> s4-1 cpad1-skip-buttons)) - (set! (-> s5-1 interp-time) (-> s4-1 interp-time)) - (set! (-> s5-1 1Tinterp-time-priority) (-> s4-1 1Tinterp-time-priority)) - (set! (-> s5-1 string-use-startup-vector) (-> s4-1 string-use-startup-vector)) - (set! (-> s5-1 string-startup-vector quad) (-> s4-1 string-startup-vector quad)) - (set! (-> s5-1 use-look-at-point) (-> s4-1 use-look-at-point)) - (set! (-> s5-1 look-at-point quad) (-> s4-1 look-at-point quad)) - (set! (-> s5-1 use-point-of-interest) (-> s4-1 use-point-of-interest)) - (set! (-> s5-1 point-of-interest quad) (-> s4-1 point-of-interest quad)) - (set! (-> s5-1 use-mouse-tumble-point) (-> s4-1 use-mouse-tumble-point)) - (set! (-> s5-1 mouse-tumble-point quad) (-> s4-1 mouse-tumble-point quad)) - (set! (-> s5-1 handle-of-interest) (-> s4-1 handle-of-interest)) - (let* ((s3-1 (handle->process (-> s5-1 handle-of-interest))) - (a0-147 (the-as process-focusable (if (type? s3-1 process-focusable) - (the-as process-focusable s3-1) - ) - ) - ) - ) - (when (the-as process a0-147) - (set! (-> s5-1 use-point-of-interest) #t) - (set! (-> s5-1 point-of-interest quad) (-> (get-trans a0-147 4) quad)) - ) - ) - (set! (-> obj cam-default point-of-interest quad) (-> s5-1 point-of-interest quad)) - (set! (-> s5-1 butt-handle) (-> s4-1 butt-handle)) - (set! (-> s5-1 butt-angle) (-> s4-1 butt-angle)) - (set! (-> s5-1 extra-follow-height) (-> s4-1 extra-follow-height)) + (set! (-> *texture-pool* common-page-mask) (-> s5-0 unknown-int32-00)) + (set! (-> *cpad-list* cpads 0 buzz) (the-as basic (-> s5-0 vibration))) + (let ((v1-137 *ocean*)) + (case (-> s5-0 ocean-off) + ((#t) + (set! (-> v1-137 off) #t) + ) + (('mid) + (set! (-> v1-137 mid-off) #t) + ) + (('near) + (set! (-> v1-137 near-off) #t) + ) ) - (if (-> s5-1 entity-or-mode-changed) - (cam-master-activate-slave #f) - ) ) - (-> obj user-current) + (set! (-> *mouse* active) (-> s5-0 mouse)) + (set! (-> *mouse* cursor) (the-as basic (and (-> s5-0 mouse) (-> s5-0 cursor)))) ) + (let ((s5-1 (-> obj cam-current))) + (let ((s4-1 (-> obj cam-target))) + (set! (-> s5-1 entity-or-mode-changed) #f) + (if (and (not (name= (-> s5-1 entity-name) (-> s4-1 entity-name))) + (or (not *target*) (not (logtest? (-> *target* focus-status) (-> s4-1 entity-mask)))) + ) + (set! (-> s4-1 entity-or-mode-changed) #t) + ) + (if (!= (-> s5-1 mode-name) (-> s4-1 mode-name)) + (set! (-> s4-1 entity-or-mode-changed) #t) + ) + (set! (-> s5-1 teleport-on-entity-change) (-> s4-1 teleport-on-entity-change)) + (cam-master-set-entity s4-1) + (cond + ((not (-> s4-1 entity-or-mode-changed)) + ) + ((or (= (-> s5-1 cam-mode) cam-eye) (= (-> s4-1 cam-mode) cam-eye)) + (set! (-> s4-1 no-intro) #t) + (set! (-> s4-1 interp-time) (the-as uint 60)) + (set! (-> s4-1 1Tinterp-time-priority) (the-as uint 2)) + ) + ((= (-> s4-1 cam-mode) cam-endlessfall) + (set! (-> s4-1 no-intro) #t) + (set! (-> s4-1 interp-time) (the-as uint 30)) + (set! (-> s4-1 1Tinterp-time-priority) (the-as uint 2)) + ) + ((or (= (-> s5-1 cam-mode) cam-free-floating) (= (-> s4-1 cam-mode) cam-free-floating)) + (set! (-> s4-1 interp-time) (the-as uint 0)) + (set! (-> s4-1 1Tinterp-time-priority) (the-as uint 2)) + ) + ) + (set! (-> s5-1 entity-name) (-> s4-1 entity-name)) + (set! (-> s5-1 entity-mask) (-> s4-1 entity-mask)) + (set! (-> s5-1 mode-name) (-> s4-1 mode-name)) + (let ((v1-173 (-> s4-1 entity-or-mode-changed))) + (set! (-> s5-1 entity-or-mode-changed) v1-173) + (when v1-173 + (set! (-> s5-1 real-entity-name) (-> s4-1 real-entity-name)) + (set! (-> s5-1 cam-mode) (-> s4-1 cam-mode)) + ) + ) + (+! (-> s5-1 fov) (fmax -182.04445 (fmin 182.04445 (* 0.1 (- (-> s4-1 fov) (-> s5-1 fov)))))) + (set! (-> s5-1 pov-handle) (-> s4-1 pov-handle)) + (set! (-> s5-1 pov-bone) (-> s4-1 pov-bone)) + (set! (-> s5-1 pov-offset quad) (-> s4-1 pov-offset quad)) + (set! (-> s5-1 string-default) (-> s4-1 string-default)) + (set! (-> s5-1 string-max-length-default) (-> s4-1 string-max-length-default)) + (set! (-> s5-1 string-min-length-default) (-> s4-1 string-min-length-default)) + (set! (-> s5-1 string-max-height-default) (-> s4-1 string-max-height-default)) + (set! (-> s5-1 string-min-height-default) (-> s4-1 string-min-height-default)) + (set! (-> s5-1 string-max-length) (-> s4-1 string-max-length)) + (set! (-> s5-1 string-min-length) (-> s4-1 string-min-length)) + (set! (-> s5-1 string-max-height) (-> s4-1 string-max-height)) + (set! (-> s5-1 string-min-height) (-> s4-1 string-min-height)) + (set! (-> s5-1 string-cliff-height) (-> s4-1 string-cliff-height)) + (set! (-> s5-1 string-camera-ceiling) (-> s4-1 string-camera-ceiling)) + (cond + ((-> s5-1 string-default) + (set! (-> s5-1 gun-min-height) (-> s4-1 gun-min-height)) + (set! (-> s5-1 gun-max-height) (-> s4-1 gun-max-height)) + ) + (else + (set! (-> s5-1 gun-min-height) (-> s4-1 string-min-height)) + (set! (-> s5-1 gun-max-height) (-> s4-1 string-max-height)) + ) + ) + (set! (-> s5-1 string-local-down quad) (-> s4-1 string-local-down quad)) + (set! (-> s5-1 slave-options) (-> s4-1 slave-options)) + (seek! (-> s5-1 matrix-blend-max-angle) (-> s4-1 matrix-blend-max-angle) 182.04445) + (seek! (-> s5-1 matrix-blend-max-partial) (-> s4-1 matrix-blend-max-partial) 0.05) + (set! (-> s5-1 string-spline-max-move) (-> s4-1 string-spline-max-move)) + (set! (-> s5-1 string-spline-accel) (-> s4-1 string-spline-accel)) + (set! (-> s5-1 string-spline-max-move-player) (-> s4-1 string-spline-max-move-player)) + (set! (-> s5-1 string-spline-accel-player) (-> s4-1 string-spline-accel-player)) + (set! (-> s5-1 target-height) (-> s4-1 target-height)) + (set! (-> s5-1 head-offset) (-> s4-1 head-offset)) + (set! (-> s5-1 foot-offset) (-> s4-1 foot-offset)) + (set! (-> s5-1 master-options) (-> s4-1 master-options)) + (set! (-> s5-1 no-intro) (-> s4-1 no-intro)) + (set! (-> s5-1 mouse-input) (-> s4-1 mouse-input)) + (set! (-> s5-1 cpad1-skip-buttons) (-> s4-1 cpad1-skip-buttons)) + (set! (-> s5-1 interp-time) (-> s4-1 interp-time)) + (set! (-> s5-1 1Tinterp-time-priority) (-> s4-1 1Tinterp-time-priority)) + (set! (-> s5-1 string-use-startup-vector) (-> s4-1 string-use-startup-vector)) + (set! (-> s5-1 string-startup-vector quad) (-> s4-1 string-startup-vector quad)) + (set! (-> s5-1 use-look-at-point) (-> s4-1 use-look-at-point)) + (set! (-> s5-1 look-at-point quad) (-> s4-1 look-at-point quad)) + (set! (-> s5-1 use-point-of-interest) (-> s4-1 use-point-of-interest)) + (set! (-> s5-1 point-of-interest quad) (-> s4-1 point-of-interest quad)) + (set! (-> s5-1 use-mouse-tumble-point) (-> s4-1 use-mouse-tumble-point)) + (set! (-> s5-1 mouse-tumble-point quad) (-> s4-1 mouse-tumble-point quad)) + (set! (-> s5-1 handle-of-interest) (-> s4-1 handle-of-interest)) + (let* ((s3-1 (handle->process (-> s5-1 handle-of-interest))) + (a0-147 (the-as process-focusable (if (type? s3-1 process-focusable) + (the-as process-focusable s3-1) + ) + ) + ) + ) + (when (the-as process a0-147) + (set! (-> s5-1 use-point-of-interest) #t) + (set! (-> s5-1 point-of-interest quad) (-> (get-trans a0-147 4) quad)) + ) + ) + (set! (-> obj cam-default point-of-interest quad) (-> s5-1 point-of-interest quad)) + (set! (-> s5-1 butt-handle) (-> s4-1 butt-handle)) + (set! (-> s5-1 butt-angle) (-> s4-1 butt-angle)) + (set! (-> s5-1 extra-follow-height) (-> s4-1 extra-follow-height)) + ) + (if (-> s5-1 entity-or-mode-changed) + (cam-master-activate-slave #f) + ) + ) + (-> obj user-current) ) (when (zero? *setting-control*) @@ -1416,6 +1415,7 @@ (set! (-> gp-0 display-dx) 0) (set! (-> gp-0 display-dy) 0) (set! (-> gp-0 vibration) + ;; og:preserve-this constant (if (or (= *kernel-boot-message* 'demo) (= *kernel-boot-message* 'demo-shared) (!= (scf-get-territory) GAME_TERRITORY_SCEA)) #f #t @@ -1426,12 +1426,14 @@ (set! (-> gp-0 play-hints) #t) (set! (-> gp-0 sound-bank-load) #t) (set! (-> gp-0 subtitle) + ;; og:preserve-this constant (if (or (= *kernel-boot-message* 'demo) (or (= *kernel-boot-message* 'demo-shared) (!= (scf-get-territory) GAME_TERRITORY_SCEE))) #f #t ) ) (let ((v1-31 (scf-get-territory))) + ;; og:preserve-this constant (set! (-> gp-0 beard) (if (or (= v1-31 GAME_TERRITORY_SCEI) (= v1-31 GAME_TERRITORY_SCEK)) #f #t diff --git a/goal_src/jak2/engine/game/task/task-arrow.gc b/goal_src/jak2/engine/game/task/task-arrow.gc index b9fdd2016f..4b8d84e29d 100644 --- a/goal_src/jak2/engine/game/task/task-arrow.gc +++ b/goal_src/jak2/engine/game/task/task-arrow.gc @@ -122,7 +122,7 @@ or collectable items on the ground (jetboard / weapon upgrades / etc)" ) (let ((f0-4 (- (-> obj dist) (-> obj smoothed-dist)))) (if (< (fabs f0-4) 40960.0) - (+! (-> obj smoothed-dist) (* 10.0 (-> self clock seconds-per-frame) f0-4)) + (+! (-> obj smoothed-dist) (* 10.0 (seconds-per-frame) f0-4)) (set! (-> obj smoothed-dist) (-> obj dist)) ) ) @@ -141,7 +141,7 @@ or collectable items on the ground (jetboard / weapon upgrades / etc)" ) (cond ((-> obj moving) - (set! (-> obj rod-of-god-scale) (- (-> obj rod-of-god-scale) (* 8.0 (-> self clock seconds-per-frame)))) + (set! (-> obj rod-of-god-scale) (- (-> obj rod-of-god-scale) (* 8.0 (seconds-per-frame)))) (when (< (-> obj rod-of-god-scale) 0.0) (set! (-> obj rod-of-god-scale) 0.0) (set! (-> obj moving) #f) @@ -161,7 +161,7 @@ or collectable items on the ground (jetboard / weapon upgrades / etc)" ) (else (set! (-> obj pos quad) (-> obj root trans quad)) - (+! (-> obj rod-of-god-scale) (* 8.0 (-> self clock seconds-per-frame))) + (+! (-> obj rod-of-god-scale) (* 8.0 (seconds-per-frame))) (if (< 1.0 (-> obj rod-of-god-scale)) (set! (-> obj rod-of-god-scale) 1.0) ) @@ -175,8 +175,8 @@ or collectable items on the ground (jetboard / weapon upgrades / etc)" (spawn (-> obj part) (-> obj root trans)) ) (else - (+! (-> obj theta) (* 32768.0 (-> self clock seconds-per-frame))) - (+! (-> obj phi) (* 9102.223 (-> self clock seconds-per-frame))) + (+! (-> obj theta) (* 32768.0 (seconds-per-frame))) + (+! (-> obj phi) (* 9102.223 (seconds-per-frame))) (set! (-> obj root trans quad) (-> obj pos quad)) (set! (-> obj root trans y) (+ 28672.0 (* 4096.0 (cos (-> obj theta))) (-> obj pos y))) ) diff --git a/goal_src/jak2/engine/geometry/geometry.gc b/goal_src/jak2/engine/geometry/geometry.gc index e19738db92..6c5f80af99 100644 --- a/goal_src/jak2/engine/geometry/geometry.gc +++ b/goal_src/jak2/engine/geometry/geometry.gc @@ -109,6 +109,7 @@ (let ((s4-0 (new 'stack-no-clear 'vector))) (set! (-> s4-0 quad) (-> arg1 quad)) (vector-reflect-flat! arg0 s4-0 arg2) + ;; og:preserve-this (let* ((s2-0 (vector-normalize-copy! (new 'stack-no-clear 'vector) s4-0 1.0)) ;; src normalized (f28-0 (vector-length s4-0)) ;; src original len (f30-0 (vector-length arg0)) ;; dst original len @@ -280,7 +281,7 @@ (vf6 :class vf) ) (init-vf0-vector) - (.lvf vf1 (&-> arg2 vec quad)) + (.lvf vf1 (&-> arg2 quad)) (.lvf vf6 (&-> arg1 quad)) (.add.vf vf5 vf1 vf1) (.add.w.vf vf2 vf0 vf1 :mask #b1) @@ -326,6 +327,7 @@ (vf7 :class vf) ) (init-vf0-vector) + ;; og:preserve-this ;; (.sub.vf vf7 vf7 vf7) (.xor.vf vf7 vf7 vf7) (.lvf vf1 (&-> arg2 vec quad)) @@ -544,6 +546,7 @@ ) ) +;; og:preserve-this ;; hack for the smoothed matrix from vectors to handle cases where they accidentally set turnvf to 0. ;; this causes the smoothing to go away on ps2, due to some behavior of inf/nan that differ. ;; if we cheat this to a small but nonzero value, it behaves like on ps2. @@ -560,33 +563,31 @@ arg3 is a rotations-per-frame rate. This limit takes frame rate into account (when lagging, the rotation is larger) arg4 is a 'slow down when getting close to the end' limit. This is used in rotate-toward-orientation, which is much improved from jak 1." - (with-pp - (let* ((s5-1 (vector-normalize! (vector-cross! (new 'stack-no-clear 'vector) arg2 arg1) 1.0)) - (f0-1 (vector-dot arg1 arg2)) - (f0-2 (acos f0-1)) - (f1-2 (fmin (* arg3 (-> pp clock seconds-per-frame)) (/ (* 5.0 (fabs f0-2)) (int-to-float-nonzero-hack arg4)))) - (f30-0 (fmax (fmin f0-2 f1-2) (- f1-2))) - ) - (matrix-axis-sin-cos! arg0 s5-1 (sin f30-0) (cos f30-0)) - ) - arg0 + (let* ((s5-1 (vector-normalize! (vector-cross! (new 'stack-no-clear 'vector) arg2 arg1) 1.0)) + (f0-1 (vector-dot arg1 arg2)) + (f0-2 (acos f0-1)) + ;; og:preserve-this + (f1-2 (fmin (* arg3 (seconds-per-frame)) (/ (* 5.0 (fabs f0-2)) (int-to-float-nonzero-hack arg4)))) + (f30-0 (fmax (fmin f0-2 f1-2) (- f1-2))) + ) + (matrix-axis-sin-cos! arg0 s5-1 (sin f30-0) (cos f30-0)) ) + arg0 ) (defun matrix-from-two-vectors-the-long-way-smooth! ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 float) (arg4 int)) "Same as above, but rotates you away from the target. Note that the 'near the end' smoothing will apply when you're near the target." - (with-pp - (let* ((s5-1 (vector-normalize! (vector-cross! (new 'stack-no-clear 'vector) arg2 arg1) 1.0)) - (f0-1 (vector-dot arg1 arg2)) - (f0-3 (- (acos f0-1))) - (f1-2 (fmin (* arg3 (-> pp clock seconds-per-frame)) (/ (* 5.0 (fabs f0-3)) (int-to-float-nonzero-hack arg4)))) - (f30-0 (fmax (fmin f0-3 f1-2) (- f1-2))) - ) - (matrix-axis-sin-cos! arg0 s5-1 (sin f30-0) (cos f30-0)) - ) - arg0 + (let* ((s5-1 (vector-normalize! (vector-cross! (new 'stack-no-clear 'vector) arg2 arg1) 1.0)) + (f0-1 (vector-dot arg1 arg2)) + (f0-3 (- (acos f0-1))) + ;; og:preserve-this + (f1-2 (fmin (* arg3 (seconds-per-frame)) (/ (* 5.0 (fabs f0-3)) (int-to-float-nonzero-hack arg4)))) + (f30-0 (fmax (fmin f0-3 f1-2) (- f1-2))) + ) + (matrix-axis-sin-cos! arg0 s5-1 (sin f30-0) (cos f30-0)) ) + arg0 ) (defun quaternion-from-two-vectors-smooth! ((arg0 quaternion) (arg1 vector) (arg2 vector) (arg3 float) (arg4 int)) @@ -687,7 +688,7 @@ (quaternion-negate! s5-0 s5-0) ) (let ((f30-1 (* 2.0 (acos (-> s5-0 w))))) - (set! (-> arg0 quad) (-> s5-0 vec quad)) + (set! (-> arg0 quad) (-> s5-0 quad)) (vector-negate! arg0 arg0) (if (= (vector-normalize-ret-len! arg0 1.0) 0.0) (set! (-> arg0 y) 1.0) @@ -835,12 +836,14 @@ "arg2 is the vertices of the triangle, arg3 is the normal, arg1 is the input point, arg0 is the output." ;; (declare (print-asm)) (local-vars + ;; og:preserve-this float -> uint (v1-0 uint) (v1-4 uint) (v1-5 uint) (v1-6 uint) (v1-7 uint) (v1-10 uint) + ;; og:preserve-this float -> uint (a0-1 uint) (a1-1 uint) ) @@ -868,13 +871,13 @@ (init-vf0-vector) (nop!) (nop!) - (.lvf vf3 (&-> arg2 vector 1 quad)) + (.lvf vf3 (&-> arg2 quad 1)) (nop!) - (.lvf vf4 (&-> arg2 vector 2 quad)) + (.lvf vf4 (&-> arg2 quad 2)) (nop!) (.lvf vf5 (&-> arg1 quad)) (.sub.vf vf6 vf3 vf4) - (.lvf vf2 (&-> arg2 vector 0 quad)) + (.lvf vf2 (&-> arg2 quad 0)) (.sub.vf vf7 vf3 vf5) (.lvf vf1 (&-> arg3 quad)) (.sub.vf vf8 vf3 vf2) @@ -895,7 +898,7 @@ (.add.z.vf vf11 vf11 vf11 :mask #b10) (.add.z.vf vf12 vf12 vf12 :mask #b10) (.add.z.vf vf13 vf13 vf13 :mask #b10) - ;; note: these types were changed to uint to make this copy 64 bits. + ;; og:preserve-this these types were changed to uint to make this copy 64 bits. (.mov v1-0 vf11) (.mov a1-1 vf12) (.mov a0-1 vf13) @@ -965,6 +968,7 @@ (defun point-in-triangle-cross ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector) (arg4 vector)) "Check if point is in the triangle using cross product check (so you have to get the order of points right)" + ;; og:preserve-this float -> int (local-vars (v1-0 int) (a0-1 int) (a1-1 int)) (rlet ((acc :class vf) (vf1 :class vf) @@ -1009,6 +1013,7 @@ (.mov a0-1 vf2) (.mov a1-1 vf3) (.mov v1-0 vf4) + ;; og:preserve-this (>= (the-as int (logior (logior a0-1 a1-1) v1-0)) 0) ) ) @@ -1198,11 +1203,13 @@ (defun calculate-basis-functions-vector! ((arg0 vector) (arg1 int) (arg2 float) (arg3 (pointer float))) "Calculate polynomial basis for a given control point." (local-vars (v1-0 int) (v1-1 object)) + ;; og:preserve-this ;;(.sll v1-0 arg1 2) (set! v1-0 (* 4 arg1)) ;; originally used 32-bit asm (let ((a1-1 #x3f800000) (f3-0 arg2) ) + ;; og:preserve-this ;;(.addu v1-1 arg3 v1-0) (set! v1-1 (&+ arg3 v1-0)) (let* ((f1-0 (the-as float a1-1)) ;; trick to load float constant. @@ -1325,6 +1332,7 @@ (nop!) (nop!) (label cfg-11) + ;; og:preserve-this ;; calculate coefficients for this knot's polynomial, store in s4-0 (calculate-basis-functions-vector! s4-0 @@ -1333,10 +1341,12 @@ (the-as (pointer float) arg4) ) ) + ;; og:preserve-this ;;(.addiu v1-7 s3-0 -3) (set! v1-7 (- s3-0 3)) (.lvf vf6 s4-0) ) + ;; og:preserve-this ;; evaluate polynomial! ;;(.sll v1-8 v1-7 4) (set! v1-8 (* v1-7 16)) @@ -1497,7 +1507,3 @@ ) ) ) - - - - diff --git a/goal_src/jak2/engine/gfx/foreground/lightning.gc b/goal_src/jak2/engine/gfx/foreground/lightning.gc index 77c14dd743..23e46bf447 100644 --- a/goal_src/jak2/engine/gfx/foreground/lightning.gc +++ b/goal_src/jak2/engine/gfx/foreground/lightning.gc @@ -32,8 +32,8 @@ :regs (new 'static 'gif-tag-regs-32 :regs0 (gif-reg-id st) :regs1 (gif-reg-id rgbaq) :regs2 (gif-reg-id xyzf2)) ) :adnops (new 'static 'inline-array gs-adcmd 2 - (new 'static 'gs-adcmd :word (new 'static 'array uint32 4 #x0 #x0 #x7f #x0)) - (new 'static 'gs-adcmd :word (new 'static 'array uint32 4 #x0 #x0 #x7f #x0)) + (new 'static 'gs-adcmd :cmds (gs-reg64 hack)) + (new 'static 'gs-adcmd :cmds (gs-reg64 hack)) ) ) ) @@ -334,7 +334,7 @@ (-> arg0 process 0 clock) (cond ((< (-> arg0 state counter) f0-0) - (+! (-> arg0 state counter) (* 300.0 (-> self clock seconds-per-frame))) + (+! (-> arg0 state counter) (* 300.0 (seconds-per-frame))) (let ((gp-0 (-> arg0 state))) (let* ((s5-0 (-> arg0 spec)) (f30-0 (fmax 0.0 (fmin 1.0 (* (- 1.0 (/ (-> gp-0 counter) f0-0)) (-> s5-0 fade-start-factor))))) @@ -814,7 +814,6 @@ (define *lightning* #t) -;; ERROR: Failed store: (s.w! (+ v1-31 8) 0) at op 89 (defun lightning-draw-all () (when (and *lightning* (not (-> *blit-displays-work* menu-mode))) (when (logtest? (-> *display* vu1-enable-user) (vu1-renderer-mask generic)) diff --git a/goal_src/jak2/engine/gfx/mood/mood-funcs.gc b/goal_src/jak2/engine/gfx/mood/mood-funcs.gc index 08163c6623..9cb37c3a33 100644 --- a/goal_src/jak2/engine/gfx/mood/mood-funcs.gc +++ b/goal_src/jak2/engine/gfx/mood/mood-funcs.gc @@ -679,7 +679,7 @@ (set! (-> arg0 times 6 w) (-> gp-1 shield)) (set! (-> arg0 times 7 w) 1.0) (when (not (paused?)) - (+! (-> gp-1 shield-count) (* 262144.0 (-> self clock seconds-per-frame))) + (+! (-> gp-1 shield-count) (* 262144.0 (seconds-per-frame))) (set! (-> gp-1 shield) (+ 0.875 (* 0.125 (cos (-> gp-1 shield-count))))) ) ) @@ -910,7 +910,7 @@ (update-mood-light arg0 5 0 1.0 0.0 arg1 0.0 2.0) (set! (-> arg0 times 7 w) (-> s4-1 explosion)) (if (not (paused?)) - (seek! (-> s4-1 explosion) 0.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> s4-1 explosion) 0.0 (* 2.0 (seconds-per-frame))) ) ) ) @@ -1004,12 +1004,12 @@ (if (and (task-node-closed? (game-task-node drill-mech-smash-consoles)) (not (task-node-closed? (game-task-node drill-mech-resolution))) ) - (update-mood-pulse arg0 7 52 0.75 0.25 (* 65536.0 (-> self clock seconds-per-frame)) 16384.0) + (update-mood-pulse arg0 7 52 0.75 0.25 (* 65536.0 (seconds-per-frame)) 16384.0) ) (when (not (paused?)) (if (-> gp-1 fire-floor-flag) - (seek! (-> gp-1 fire-floor-fade) 1.5 (* 3.0 (-> self clock seconds-per-frame))) - (seek! (-> gp-1 fire-floor-fade) 0.5 (* 3.0 (-> self clock seconds-per-frame))) + (seek! (-> gp-1 fire-floor-fade) 1.5 (* 3.0 (seconds-per-frame))) + (seek! (-> gp-1 fire-floor-fade) 0.5 (* 3.0 (seconds-per-frame))) ) (set! (-> gp-1 fire-floor) (+ (-> gp-1 fire-floor-fade) (* (-> gp-1 fire-floor-fade) (rand-vu-float-range 0.0 0.1))) @@ -1061,11 +1061,7 @@ (let ((s5-1 *math-camera*)) (set! (-> arg0 times 5 w) 1.0) (if (not (paused?)) - (quaternion-rotate-y! - (-> s5-1 quat-other) - (-> s5-1 quat-other) - (* 273.06668 (-> self clock seconds-per-frame)) - ) + (quaternion-rotate-y! (-> s5-1 quat-other) (-> s5-1 quat-other) (* 273.06668 (seconds-per-frame))) ) ) ) @@ -1073,6 +1069,7 @@ (none) ) +;; og:preserve-this (#when PC_PORT ;; added - drillmtn uses camera-other but only palout sets the trans (defun init-mood-drillmnt ((arg0 mood-context)) @@ -1112,12 +1109,12 @@ (if (and (task-node-closed? (game-task-node drill-mech-smash-consoles)) (not (task-node-closed? (game-task-node drill-mech-resolution))) ) - (update-mood-pulse arg0 7 12 0.75 0.25 (* 65536.0 (-> self clock seconds-per-frame)) 16384.0) + (update-mood-pulse arg0 7 12 0.75 0.25 (* 65536.0 (seconds-per-frame)) 16384.0) ) (when (not (paused?)) (if (-> gp-0 fire-floor-flag) - (seek! (-> gp-0 fire-floor-fade) 1.5 (* 3.0 (-> self clock seconds-per-frame))) - (seek! (-> gp-0 fire-floor-fade) 0.5 (* 3.0 (-> self clock seconds-per-frame))) + (seek! (-> gp-0 fire-floor-fade) 1.5 (* 3.0 (seconds-per-frame))) + (seek! (-> gp-0 fire-floor-fade) 0.5 (* 3.0 (seconds-per-frame))) ) (set! (-> gp-0 fire-floor) (+ (-> gp-0 fire-floor-fade) (* (-> gp-0 fire-floor-fade) (rand-vu-float-range 0.0 0.1))) @@ -1190,7 +1187,7 @@ (set! (-> arg0 times 6 w) 1.0) (set! (-> arg0 times 7 w) 0.0) (if (not (paused?)) - (set! (-> s4-1 explosion) (- (-> s4-1 explosion) (-> self clock seconds-per-frame))) + (set! (-> s4-1 explosion) (- (-> s4-1 explosion) (seconds-per-frame))) ) ) ) @@ -1278,11 +1275,7 @@ (update-mood-flames arg0 6 2 8 0.5 0.0009765625 1.5) (let ((gp-1 *math-camera*)) (if (not (paused?)) - (quaternion-rotate-y! - (-> gp-1 quat-other) - (-> gp-1 quat-other) - (* 273.06668 (-> self clock seconds-per-frame)) - ) + (quaternion-rotate-y! (-> gp-1 quat-other) (-> gp-1 quat-other) (* 273.06668 (seconds-per-frame))) ) ) ) @@ -1403,11 +1396,11 @@ (when (not (paused?)) (cond ((-> s5-1 green-flag) - (set! (-> s5-1 green) (fmin 1.9 (+ (-> s5-1 green) (* 2.0 (-> self clock seconds-per-frame))))) + (set! (-> s5-1 green) (fmin 1.9 (+ (-> s5-1 green) (* 2.0 (seconds-per-frame))))) (set! (-> s5-1 green-noise) (rand-vu-float-range 0.0 (-> s5-1 green))) ) (else - (set! (-> s5-1 green) (fmax 0.0 (- (-> s5-1 green) (* 2.0 (-> self clock seconds-per-frame))))) + (set! (-> s5-1 green) (fmax 0.0 (- (-> s5-1 green) (* 2.0 (seconds-per-frame))))) (set! (-> s5-1 green-noise) 0.0) ) ) @@ -1472,7 +1465,7 @@ ) (when (not (paused?)) (if (-> gp-1 interp-flag) - (seek! (-> gp-1 interp) 1.0 (* 0.5 (-> self clock seconds-per-frame))) + (seek! (-> gp-1 interp) 1.0 (* 0.5 (seconds-per-frame))) ) ) ) @@ -1551,7 +1544,7 @@ (update-mood-light arg0 5 0 1.0 0.0 arg1 0.0 2.0) (set! (-> arg0 times 6 w) (-> s4-1 flash)) (if (not (paused?)) - (set! (-> s4-1 flash) (fmax 0.0 (- (-> s4-1 flash) (* 2.0 (-> self clock seconds-per-frame))))) + (set! (-> s4-1 flash) (fmax 0.0 (- (-> s4-1 flash) (* 2.0 (seconds-per-frame))))) ) ) ) diff --git a/goal_src/jak2/engine/gfx/mood/mood-funcs2.gc b/goal_src/jak2/engine/gfx/mood/mood-funcs2.gc index 412ff4604e..5d62f1d2ba 100644 --- a/goal_src/jak2/engine/gfx/mood/mood-funcs2.gc +++ b/goal_src/jak2/engine/gfx/mood/mood-funcs2.gc @@ -103,16 +103,16 @@ ) (set! (-> arg0 times 4 w) (+ 1.2 (* 0.2 (cos (-> gp-0 3))))) (when (not (paused?)) - (let ((f0-17 (+ (-> gp-0 0) (* 18204.445 (-> self clock seconds-per-frame))))) + (let ((f0-17 (+ (-> gp-0 0) (* 18204.445 (seconds-per-frame))))) (set! (-> gp-0 0) (- f0-17 (* (the float (the int (/ f0-17 65536.0))) 65536.0))) ) - (let ((f0-20 (+ (-> gp-0 1) (* 196608.0 (-> self clock seconds-per-frame))))) + (let ((f0-20 (+ (-> gp-0 1) (* 196608.0 (seconds-per-frame))))) (set! (-> gp-0 1) (- f0-20 (* (the float (the int (/ f0-20 65536.0))) 65536.0))) ) - (let ((f0-23 (+ (-> gp-0 2) (* 163840.0 (-> self clock seconds-per-frame))))) + (let ((f0-23 (+ (-> gp-0 2) (* 163840.0 (seconds-per-frame))))) (set! (-> gp-0 2) (- f0-23 (* (the float (the int (/ f0-23 65536.0))) 65536.0))) ) - (let ((f0-26 (+ (-> gp-0 3) (* 32768.0 (-> self clock seconds-per-frame))))) + (let ((f0-26 (+ (-> gp-0 3) (* 32768.0 (seconds-per-frame))))) (set! (-> gp-0 3) (- f0-26 (* (the float (the int (/ f0-26 65536.0))) 65536.0))) ) ) @@ -873,7 +873,7 @@ ) (shr (shl (the int (* 16.0 f0-7)) 56) 40) ) - (-> (new 'static 'array uint64 1 #xffffffff00ffffff) 0) + (the-as uint #xffffffff00ffffff) ) (shl #x8000 16) ) @@ -885,7 +885,7 @@ (set! (-> arg0 times 7 w) (-> s4-0 turret-value)) (when (not (paused?)) (set! (-> s4-0 turret-value) (fmax 0.0 (+ -0.2 (-> s4-0 turret-value)))) - (seek! (-> s4-0 explosion) 0.0 (* 2.5 (-> self clock seconds-per-frame))) + (seek! (-> s4-0 explosion) 0.0 (* 2.5 (seconds-per-frame))) ) ) (when *ocean-map-sewer* @@ -1054,14 +1054,14 @@ ) ) (when (not (paused?)) - (seek! (-> s5-0 door-current) (-> s5-0 door-target) (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> s5-0 door-current) (-> s5-0 door-target) (* 4.0 (seconds-per-frame))) (cond ((-> s5-0 purple-flag) - (set! (-> s5-0 purple) (fmin 1.9 (+ (-> s5-0 purple) (* 2.0 (-> self clock seconds-per-frame))))) + (set! (-> s5-0 purple) (fmin 1.9 (+ (-> s5-0 purple) (* 2.0 (seconds-per-frame))))) (set! (-> s5-0 purple-noise) (rand-vu-float-range 0.0 (-> s5-0 purple))) ) (else - (set! (-> s5-0 purple) (fmax 0.0 (- (-> s5-0 purple) (* 2.0 (-> self clock seconds-per-frame))))) + (set! (-> s5-0 purple) (fmax 0.0 (- (-> s5-0 purple) (* 2.0 (seconds-per-frame))))) (set! (-> s5-0 purple-noise) 0.0) ) ) @@ -1606,7 +1606,7 @@ (else (set! (-> arg0 times 0 w) 1.0) (set! (-> arg0 times 1 w) 1.0) - (update-mood-pulse arg0 7 0 0.75 0.25 (* 65536.0 (-> self clock seconds-per-frame)) 0.0) + (update-mood-pulse arg0 7 0 0.75 0.25 (* 65536.0 (seconds-per-frame)) 0.0) ) ) 0 @@ -1640,7 +1640,7 @@ (else (set! (-> arg0 times 0 w) 1.0) (set! (-> arg0 times 1 w) 1.0) - (update-mood-pulse arg0 7 16 0.75 0.25 (* 65536.0 (-> self clock seconds-per-frame)) 0.0) + (update-mood-pulse arg0 7 16 0.75 0.25 (* 65536.0 (seconds-per-frame)) 0.0) (update-mood-electricity arg0 6 20 0.8 1.0) (let ((s5-0 (the-as fordumpa-states (-> arg0 state)))) (set! (-> arg0 times 2 w) (-> s5-0 turret-value 0)) @@ -1706,12 +1706,12 @@ ((begin (set! (-> arg0 times 0 w) 1.0) (set! (-> arg0 times 1 w) 1.0) - (update-mood-pulse arg0 3 4 0.75 0.25 (* 65536.0 (-> self clock seconds-per-frame)) 0.0) + (update-mood-pulse arg0 3 4 0.75 0.25 (* 65536.0 (seconds-per-frame)) 0.0) (-> arg0 state 0) ) (set! (-> arg0 times 2 w) 0.0) - (update-mood-pulse arg0 4 8 0.75 0.25 (* 65536.0 (-> self clock seconds-per-frame)) 16384.0) - (update-mood-strobe arg0 5 12 85 (* 16.0 (-> self clock seconds-per-frame))) + (update-mood-pulse arg0 4 8 0.75 0.25 (* 65536.0 (seconds-per-frame)) 16384.0) + (update-mood-strobe arg0 5 12 85 (* 16.0 (seconds-per-frame))) ) (else (set! (-> arg0 times 2 w) 1.0) @@ -1761,7 +1761,7 @@ (set! (-> arg0 times 1 w) 1.0) (update-mood-electricity arg0 5 4 0.8 1.0) (update-mood-electricity arg0 6 20 0.8 1.0) - (update-mood-pulse arg0 7 0 0.75 0.25 (* 65536.0 (-> self clock seconds-per-frame)) 0.0) + (update-mood-pulse arg0 7 0 0.75 0.25 (* 65536.0 (seconds-per-frame)) 0.0) ) ) 0 @@ -1895,12 +1895,12 @@ (set! (-> arg0 times 2 w) (-> gp-0 torture)) (when (not (paused?)) (set! (-> gp-0 pulse) (+ 1.125 (* 0.125 (cos (-> gp-0 angle))))) - (let ((f0-14 (+ (-> gp-0 angle) (* 32768.0 (-> self clock seconds-per-frame))))) + (let ((f0-14 (+ (-> gp-0 angle) (* 32768.0 (seconds-per-frame))))) (set! (-> gp-0 angle) (- f0-14 (* (the float (the int (/ f0-14 65536.0))) 65536.0))) ) (if (-> gp-0 torture-flag) - (seek! (-> gp-0 torture) 1.0 (-> self clock seconds-per-frame)) - (seek! (-> gp-0 torture) 0.0 (-> self clock seconds-per-frame)) + (seek! (-> gp-0 torture) 1.0 (seconds-per-frame)) + (seek! (-> gp-0 torture) 0.0 (seconds-per-frame)) ) ) ) @@ -2087,9 +2087,9 @@ (set! (-> arg0 times 5 w) 0.0) ) (when (not (paused?)) - (+! (-> gp-0 time) (* 300.0 (-> self clock seconds-per-frame))) - (+! (-> gp-0 rot) (* 32768.0 (-> self clock seconds-per-frame))) - (+! (-> gp-0 rot2) (* 16384.0 (-> self clock seconds-per-frame))) + (+! (-> gp-0 time) (* 300.0 (seconds-per-frame))) + (+! (-> gp-0 rot) (* 32768.0 (seconds-per-frame))) + (+! (-> gp-0 rot2) (* 16384.0 (seconds-per-frame))) (set! (-> gp-0 flicker) (rand-vu-float-range 0.0 0.1)) ) ) @@ -2364,7 +2364,7 @@ (s0-0 0.85) ) (set! sv-16 0.15) - (let ((t1-0 (* 182.04445 (-> self clock seconds-per-frame) (rand-vu-float-range 60.0 200.0))) + (let ((t1-0 (* 182.04445 (seconds-per-frame) (rand-vu-float-range 60.0 200.0))) (t2-0 0.0) ) (s4-0 s3-0 s2-0 s1-0 s0-0 sv-16 t1-0 t2-0) @@ -2377,7 +2377,7 @@ (s0-1 0.85) ) (set! sv-32 0.15) - (let ((t1-1 (* 182.04445 (-> self clock seconds-per-frame) (rand-vu-float-range 120.0 180.0))) + (let ((t1-1 (* 182.04445 (seconds-per-frame) (rand-vu-float-range 120.0 180.0))) (t2-1 16384.0) ) (s4-1 s3-1 s2-1 s1-1 s0-1 sv-32 t1-1 t2-1) @@ -2398,7 +2398,7 @@ ) (when (not (paused?)) (set! (-> gp-0 drillbit) (rand-vu-float-range 0.5 1.0)) - (seek! (-> gp-0 explosion) 0.0 (* 2.5 (-> self clock seconds-per-frame))) + (seek! (-> gp-0 explosion) 0.0 (* 2.5 (seconds-per-frame))) ) ) ) @@ -2618,7 +2618,7 @@ (set! (-> arg0 times 1 w) 1.0) (update-mood-caustics arg0 2 (-> gp-1 rot) 10922.667 0.75 0.25) (update-mood-caustics arg0 3 (-> gp-1 rot) 0.0 0.75 0.25) - ;; note : updated for pc port for nest revisit + ;; og:preserve-this updated for pc port for nest revisit (#if PC_PORT (if (process-by-name "blocking-plane-nestb" *active-pool*) (set! (-> arg0 times 4 w) 0.0) @@ -2626,9 +2626,9 @@ (update-mood-pulse arg0 4 0 0.875 0.125 (* 196608.0 (-> self clock seconds-per-frame)) 0.0)) (set! (-> arg0 times 5 w) (+ (-> gp-1 purple) (-> gp-1 purple-noise))) (when (not (paused?)) - (seek! (-> gp-1 purple) 0.0 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> gp-1 purple) 0.0 (* 4.0 (seconds-per-frame))) (set! (-> gp-1 purple-noise) (rand-vu-float-range 0.0 (* 0.2 (-> gp-1 purple)))) - (+! (-> gp-1 rot) (* 16384.0 (-> self clock seconds-per-frame))) + (+! (-> gp-1 rot) (* 16384.0 (seconds-per-frame))) ) ) ) @@ -2690,14 +2690,14 @@ (cond ((zero? v1-9) (set! (-> gp-1 flicker) (rand-vu-float-range 0.2 0.4)) - (set! (-> gp-1 flicker-count) (- (-> gp-1 flicker-count) (-> self clock seconds-per-frame))) + (set! (-> gp-1 flicker-count) (- (-> gp-1 flicker-count) (seconds-per-frame))) (when (>= 0.0 (-> gp-1 flicker-count)) (set! (-> gp-1 flicker-count) (rand-vu-float-range 0.25 1.0)) (set! (-> gp-1 flicker-state) 1) ) ) ((= v1-9 1) - (set! (-> gp-1 flicker-count) (- (-> gp-1 flicker-count) (-> self clock seconds-per-frame))) + (set! (-> gp-1 flicker-count) (- (-> gp-1 flicker-count) (seconds-per-frame))) (when (>= 0.0 (-> gp-1 flicker-count)) (set! (-> gp-1 flicker-count) (rand-vu-float-range 0.1 0.5)) (set! (-> gp-1 flicker-state) 2) @@ -2705,14 +2705,14 @@ ) ((= v1-9 2) (set! (-> gp-1 flicker) (rand-vu-float-range 0.25 0.75)) - (set! (-> gp-1 flicker-count) (- (-> gp-1 flicker-count) (-> self clock seconds-per-frame))) + (set! (-> gp-1 flicker-count) (- (-> gp-1 flicker-count) (seconds-per-frame))) (when (>= 0.0 (-> gp-1 flicker-count)) (set! (-> gp-1 flicker-count) (rand-vu-float-range 0.25 1.0)) (set! (-> gp-1 flicker-state) 3) ) ) (else - (set! (-> gp-1 flicker-count) (- (-> gp-1 flicker-count) (-> self clock seconds-per-frame))) + (set! (-> gp-1 flicker-count) (- (-> gp-1 flicker-count) (seconds-per-frame))) (when (>= 0.0 (-> gp-1 flicker-count)) (set! (-> gp-1 flicker-count) (rand-vu-float-range 0.1 0.5)) (set! (-> gp-1 flicker-state) 0) @@ -2844,12 +2844,12 @@ (set! (-> arg0 times 6 y) f0-7) ) (set! (-> arg0 times 6 w) 1.0) - (update-mood-pulse arg0 4 8 1.15 0.15 (* 43690.668 (-> self clock seconds-per-frame)) 0.0) - (update-mood-pulse arg0 5 24 1.3 0.2 (* 54613.332 (-> self clock seconds-per-frame)) 0.0) + (update-mood-pulse arg0 4 8 1.15 0.15 (* 43690.668 (seconds-per-frame)) 0.0) + (update-mood-pulse arg0 5 24 1.3 0.2 (* 54613.332 (seconds-per-frame)) 0.0) (update-mood-electricity arg0 7 0 0.9 1.0) (when (not (paused?)) - (+! (-> s5-0 rot) (* 13107.2 (-> self clock seconds-per-frame))) - (+! (-> s5-0 robot-rot) (* 32768.0 (-> self clock seconds-per-frame))) + (+! (-> s5-0 rot) (* 13107.2 (seconds-per-frame))) + (+! (-> s5-0 robot-rot) (* 32768.0 (seconds-per-frame))) ) ) ) diff --git a/goal_src/jak2/engine/gfx/mood/mood.gc b/goal_src/jak2/engine/gfx/mood/mood.gc index a7e156b66f..5cd2666617 100644 --- a/goal_src/jak2/engine/gfx/mood/mood.gc +++ b/goal_src/jak2/engine/gfx/mood/mood.gc @@ -954,131 +954,129 @@ Returns the current value of `lightning-id`" ;; WARN: disable def twice: 141. This may happen when a cond (no else) is nested inside of another conditional, but it should be rare. (defmethod gen-lightning-and-thunder! mood-control ((obj mood-control)) (local-vars (a1-1 (array float))) - (with-pp - (let ((v1-3 (-> obj mood-channel-group data (-> obj lightning-index) vecs)) - (a1-0 (-> obj lightning-val)) - (a0-4 (/ (-> obj lightning-time) 2)) - (f0-0 (-> obj lightning-time2)) + (let ((v1-3 (-> obj mood-channel-group data (-> obj lightning-index) vecs)) + (a1-0 (-> obj lightning-val)) + (a0-4 (/ (-> obj lightning-time) 2)) + (f0-0 (-> obj lightning-time2)) + ) + (set! (-> obj lightning-flash) 0.0) + (cond + ((>= 0.0 f0-0) + (cond + ((zero? a1-0) + (set! a1-1 *flash0*) ) - (set! (-> obj lightning-flash) 0.0) - (cond - ((>= 0.0 f0-0) - (cond - ((zero? a1-0) - (set! a1-1 *flash0*) - ) - ((= a1-0 1) - (set! a1-1 *flash1*) - ) - ((= a1-0 2) - (set! a1-1 *flash2*) - ) - ((= a1-0 3) - (set! a1-1 *flash3*) - ) - ((= a1-0 4) - (set! a1-1 *flash4*) - ) - ((= a1-0 5) - (set! a1-1 *flash5*) - ) - ((= a1-0 6) - (set! a1-1 *flash6*) - ) - (else - (set! a1-1 *flash7*) - ) - ) - (cond - ((< a0-4 (-> a1-1 length)) - (let ((f30-0 (-> a1-1 a0-4)) - (s5-0 (new 'stack-no-clear 'vector)) - ) - (cond - ((= (-> obj lightning-index) 4) - (set! (-> obj lightning-flash) f30-0) - ) - ((= (-> obj lightning-index) 5) - (set! (-> obj lightning-flash) f30-0) - (dotimes (s4-0 8) - (set-vector! s5-0 255.0 255.0 255.0 128.0) - (vector4-lerp! - (the-as vector (-> obj mood-fog-table data s4-0)) - (the-as vector (-> obj mood-fog-table data s4-0)) - s5-0 - f30-0 - ) - ) - ) - (else - (set! (-> obj lightning-flash) (* 1.9921875 f30-0)) - (set-vector! (-> v1-3 0) 1.0 1.0 1.0 1.0) - (set! (-> v1-3 1 quad) (-> v1-3 0 quad)) - (set! (-> v1-3 2 quad) (-> v1-3 0 quad)) - (set! (-> v1-3 3 quad) (-> v1-3 0 quad)) - (set! (-> v1-3 4 quad) (-> v1-3 0 quad)) - (set! (-> v1-3 5 quad) (-> v1-3 0 quad)) - ) - ) - ) - (when (not (paused?)) - (let ((v0-2 (the-as number (+ (-> obj lightning-time) 1)))) - (set! (-> obj lightning-time) (the-as int v0-2)) - v0-2 - ) - ) - ) - ((and (level-get-target-inside *level*) (= (-> (level-get-target-inside *level*) name) 'nest)) - (set! (-> obj lightning-time2) (rand-vu-float-range 3.0 5.0)) - ) - (else - (set! (-> obj lightning-time2) (rand-vu-float-range 15.0 20.0)) - ) + ((= a1-0 1) + (set! a1-1 *flash1*) + ) + ((= a1-0 2) + (set! a1-1 *flash2*) + ) + ((= a1-0 3) + (set! a1-1 *flash3*) + ) + ((= a1-0 4) + (set! a1-1 *flash4*) + ) + ((= a1-0 5) + (set! a1-1 *flash5*) + ) + ((= a1-0 6) + (set! a1-1 *flash6*) + ) + (else + (set! a1-1 *flash7*) ) ) - (else - (when (not (paused?)) - (set! (-> obj lightning-time2) (- (-> obj lightning-time2) (-> pp clock seconds-per-frame))) - (when (>= 0.0 (-> obj lightning-time2)) - (set! (-> obj lightning-index) (mod (the-as int (rand-uint31-gen *random-generator*)) 6)) - (set! (-> obj lightning-val) (the-as int (logand (rand-uint31-gen *random-generator*) 7))) - (set! (-> obj lightning-time) 0) - (cond - ((zero? (-> obj lightning-index)) - (play-or-stop-lightning! - obj - (static-sound-spec "thunder-b") - (new 'static 'vector :x 37109760.0 :y 16261120.0 :z 5857280.0) - ) - ) - ((= (-> obj lightning-index) 1) - (play-or-stop-lightning! - obj - (static-sound-spec "thunder-b") - (new 'static 'vector :x 20480000.0 :y 33341440.0 :z 12124160.0) - ) - ) - ((= (-> obj lightning-index) 2) - (play-or-stop-lightning! - obj - (static-sound-spec "thunder-b") - (new 'static 'vector :x -20480000.0 :y 33341440.0 :z 12124160.0) - ) - ) - ((= (-> obj lightning-index) 3) - (play-or-stop-lightning! - obj - (static-sound-spec "thunder-b") - (new 'static 'vector :x -37109760.0 :y 16261120.0 :z 5857280.0) - ) - ) - ((= (-> obj lightning-index) 4) - (play-or-stop-lightning! obj (static-sound-spec "thunder-c") (new 'static 'vector :y 40960000.0)) - ) - ((= (-> obj lightning-index) 5) - (play-or-stop-lightning! obj (static-sound-spec "thunder-a") (new 'static 'vector :y 40960000.0)) - ) + (cond + ((< a0-4 (-> a1-1 length)) + (let ((f30-0 (-> a1-1 a0-4)) + (s5-0 (new 'stack-no-clear 'vector)) ) + (cond + ((= (-> obj lightning-index) 4) + (set! (-> obj lightning-flash) f30-0) + ) + ((= (-> obj lightning-index) 5) + (set! (-> obj lightning-flash) f30-0) + (dotimes (s4-0 8) + (set-vector! s5-0 255.0 255.0 255.0 128.0) + (vector4-lerp! + (the-as vector (-> obj mood-fog-table data s4-0)) + (the-as vector (-> obj mood-fog-table data s4-0)) + s5-0 + f30-0 + ) + ) + ) + (else + (set! (-> obj lightning-flash) (* 1.9921875 f30-0)) + (set-vector! (-> v1-3 0) 1.0 1.0 1.0 1.0) + (set! (-> v1-3 1 quad) (-> v1-3 0 quad)) + (set! (-> v1-3 2 quad) (-> v1-3 0 quad)) + (set! (-> v1-3 3 quad) (-> v1-3 0 quad)) + (set! (-> v1-3 4 quad) (-> v1-3 0 quad)) + (set! (-> v1-3 5 quad) (-> v1-3 0 quad)) + ) + ) + ) + (when (not (paused?)) + (let ((v0-2 (the-as number (+ (-> obj lightning-time) 1)))) + (set! (-> obj lightning-time) (the-as int v0-2)) + v0-2 + ) + ) + ) + ((and (level-get-target-inside *level*) (= (-> (level-get-target-inside *level*) name) 'nest)) + (set! (-> obj lightning-time2) (rand-vu-float-range 3.0 5.0)) + ) + (else + (set! (-> obj lightning-time2) (rand-vu-float-range 15.0 20.0)) + ) + ) + ) + (else + (when (not (paused?)) + (set! (-> obj lightning-time2) (- (-> obj lightning-time2) (seconds-per-frame))) + (when (>= 0.0 (-> obj lightning-time2)) + (set! (-> obj lightning-index) (mod (the-as int (rand-uint31-gen *random-generator*)) 6)) + (set! (-> obj lightning-val) (the-as int (logand (rand-uint31-gen *random-generator*) 7))) + (set! (-> obj lightning-time) 0) + (cond + ((zero? (-> obj lightning-index)) + (play-or-stop-lightning! + obj + (static-sound-spec "thunder-b") + (new 'static 'vector :x 37109760.0 :y 16261120.0 :z 5857280.0) + ) + ) + ((= (-> obj lightning-index) 1) + (play-or-stop-lightning! + obj + (static-sound-spec "thunder-b") + (new 'static 'vector :x 20480000.0 :y 33341440.0 :z 12124160.0) + ) + ) + ((= (-> obj lightning-index) 2) + (play-or-stop-lightning! + obj + (static-sound-spec "thunder-b") + (new 'static 'vector :x -20480000.0 :y 33341440.0 :z 12124160.0) + ) + ) + ((= (-> obj lightning-index) 3) + (play-or-stop-lightning! + obj + (static-sound-spec "thunder-b") + (new 'static 'vector :x -37109760.0 :y 16261120.0 :z 5857280.0) + ) + ) + ((= (-> obj lightning-index) 4) + (play-or-stop-lightning! obj (static-sound-spec "thunder-c") (new 'static 'vector :y 40960000.0)) + ) + ((= (-> obj lightning-index) 5) + (play-or-stop-lightning! obj (static-sound-spec "thunder-a") (new 'static 'vector :y 40960000.0)) + ) ) ) ) @@ -1087,8 +1085,6 @@ Returns the current value of `lightning-id`" ) ) -;; definition for method 9 of type mood-control -;; WARN: Return type mismatch int vs none. (defmethod init-weather! mood-control ((obj mood-control)) (local-vars (v1-39 int)) (let ((s5-0 (level-get-target-inside *level*))) @@ -1133,15 +1129,15 @@ Returns the current value of `lightning-id`" (let ((a0-6 (-> s4-0 iweather fog)) (v1-30 (-> s4-0 iweather cloud)) ) - (set! (-> s4-0 index 0) (+ (* 3 (the-as int v1-30)) (the-as int a0-6))) - (set! (-> s4-0 index 1) (the-as int (+ a0-6 1 (* 3 (the-as int v1-30))))) - (set! (-> s4-0 index 2) (+ (* 3 (the-as int (+ v1-30 1))) (the-as int a0-6))) - (set! (-> s4-0 index 3) (the-as int (+ a0-6 1 (* 3 (the-as int (+ v1-30 1)))))) + (set! (-> s4-0 index 0) (+ (* 3 v1-30) a0-6)) + (set! (-> s4-0 index 1) (+ a0-6 1 (* 3 v1-30))) + (set! (-> s4-0 index 2) (+ (* 3 (+ v1-30 1)) a0-6)) + (set! (-> s4-0 index 3) (+ a0-6 1 (* 3 (+ v1-30 1)))) ) (let ((v1-34 (-> s4-0 iweather cloud))) (set! (-> s4-0 color-interp) (-> s4-0 interp cloud)) - (set! (-> s4-0 color-index 0) (the-as int v1-34)) - (set! (-> s4-0 color-index 1) (the-as int (+ v1-34 1))) + (set! (-> s4-0 color-index 0) v1-34) + (set! (-> s4-0 color-index 1) (+ v1-34 1)) ) 0 (let ((f0-23 (- (-> s4-0 weather cloud) (the float (-> s4-0 iweather cloud))))) @@ -1192,17 +1188,15 @@ Returns the current value of `lightning-id`" (seek! (-> obj current-interp cloud) (-> obj target-interp cloud) - (* (/ 1.0 (-> obj speed-interp cloud)) (-> self clock seconds-per-frame)) + (* (/ 1.0 (-> obj speed-interp cloud)) (seconds-per-frame)) ) (seek! (-> obj current-interp fog) (-> obj target-interp fog) - (* (/ 1.0 (-> obj speed-interp fog)) (-> self clock seconds-per-frame)) + (* (/ 1.0 (-> obj speed-interp fog)) (seconds-per-frame)) ) (when (!= (-> obj time-until-random cloud) -99.0) - (set! (-> obj time-until-random cloud) - (- (-> obj time-until-random cloud) (* 300.0 (-> self clock seconds-per-frame))) - ) + (set! (-> obj time-until-random cloud) (- (-> obj time-until-random cloud) (* 300.0 (seconds-per-frame)))) (when (< (-> obj time-until-random cloud) 0.0) (set! (-> obj time-until-random cloud) (rand-vu-float-range (-> obj time-until-random-min cloud) (-> obj time-until-random-max cloud)) @@ -1232,9 +1226,7 @@ Returns the current value of `lightning-id`" ) ) (when (!= (-> obj time-until-random fog) -99.0) - (set! (-> obj time-until-random fog) - (- (-> obj time-until-random fog) (* 300.0 (-> self clock seconds-per-frame))) - ) + (set! (-> obj time-until-random fog) (- (-> obj time-until-random fog) (* 300.0 (seconds-per-frame)))) (when (< (-> obj time-until-random fog) 0.0) (set! (-> obj time-until-random fog) (rand-vu-float-range (-> obj time-until-random-min fog) (-> obj time-until-random-max fog)) @@ -1322,11 +1314,11 @@ Returns the current value of `lightning-id`" (format *stdcon* "time until random cloud ~f~%" (* 0.0033333334 (-> obj time-until-random cloud))) (format *stdcon* "current cloud ~f~%" (-> obj current-interp cloud)) (format *stdcon* "target cloud ~f~%" (-> obj target-interp cloud)) - (format *stdcon* "speed cloud ~f~%" (* (/ 1.0 (-> obj speed-interp cloud)) (-> self clock seconds-per-frame))) + (format *stdcon* "speed cloud ~f~%" (* (/ 1.0 (-> obj speed-interp cloud)) (seconds-per-frame))) (format *stdcon* "time until random fog ~f~%" (* 0.0033333334 (-> obj time-until-random fog))) (format *stdcon* "current fog ~f~%" (-> obj current-interp fog)) (format *stdcon* "target fog ~f~%" (-> obj target-interp fog)) - (format *stdcon* "speed fog ~f~%" (* (/ 1.0 (-> obj speed-interp fog)) (-> self clock seconds-per-frame))) + (format *stdcon* "speed fog ~f~%" (* (/ 1.0 (-> obj speed-interp fog)) (seconds-per-frame))) ) ) ) @@ -1338,11 +1330,10 @@ Returns the current value of `lightning-id`" (none) ) -;; WARN: Return type mismatch int vs none. (defmethod update-mood-weather! mood-control ((obj mood-control) (cloud-target float) (fog-target float) (cloud-speed float) (fog-speed float)) "Set the `target-interp` and `speed-interp` for the clouds and fog - If `*-speed` is 0.0, use the `*-target` args to set `current-interp` - See [[mood-weather]]" +If `*-speed` is 0.0, use the `*-target` args to set `current-interp` +See [[mood-weather]]" (set! (-> obj target-interp cloud) cloud-target) (set! (-> obj target-interp fog) fog-target) (set! (-> obj speed-interp cloud) cloud-speed) diff --git a/goal_src/jak2/engine/gfx/mood/weather-part.gc b/goal_src/jak2/engine/gfx/mood/weather-part.gc index c176688664..cf65df7809 100644 --- a/goal_src/jak2/engine/gfx/mood/weather-part.gc +++ b/goal_src/jak2/engine/gfx/mood/weather-part.gc @@ -352,22 +352,8 @@ (set! (-> *part-id-table* 56 init-specs 1 initial-valuef) (* 4.0 f0-0)) ) (set! (-> *part-id-table* 56 init-specs 19 initial-valuef) (+ 32768.0 (vector-y-angle arg2))) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 58)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> arg1 quad)) - (t9-2 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 56)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> arg1 quad)) - (t9-3 a0-4 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 58) arg1) + (launch-particles (-> *part-id-table* 56) arg1) 0 (none) ) @@ -629,45 +615,17 @@ (set! (-> *part-id-table* 62 init-specs 22 initial-valuef) (- 16384.0 (vector-x-angle (-> gp-0 vector 1)))) (set! (-> *part-id-table* 62 init-specs 16 initial-valuef) f30-0) ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 62) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 62) gp-0 :origin-is-matrix #t) (case (-> arg1 datab 3) ((11 10) (sound-play "sizzle-drips") - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 66) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 65) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 66) gp-0 :origin-is-matrix #t) + (launch-particles (-> *part-id-table* 65) gp-0 :origin-is-matrix #t) ) (else (sound-play "dry-drips") (set! (-> *part-id-table* 64 init-specs 10 initial-valuef) (-> arg1 omega)) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 64) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 64) gp-0 :origin-is-matrix #t) ) ) ) @@ -721,22 +679,8 @@ ) (set! (-> *part-id-table* 60 init-specs 2 initial-valuef) arg0) (set! (-> *part-id-table* 61 init-specs 2 initial-valuef) (* 4.0 arg0)) - (let ((t9-6 sp-launch-particles-var) - (a0-10 *sp-particle-system-2d*) - (a1-7 (-> *part-id-table* 60)) - (a2-5 *launch-matrix*) - ) - (set! (-> a2-5 trans quad) (-> gp-1 quad)) - (t9-6 a0-10 a1-7 a2-5 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-7 sp-launch-particles-var) - (a0-11 *sp-particle-system-2d*) - (a1-8 (-> *part-id-table* 61)) - (a2-6 *launch-matrix*) - ) - (set! (-> a2-6 trans quad) (-> gp-1 quad)) - (t9-7 a0-11 a1-8 a2-6 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 60) gp-1) + (launch-particles (-> *part-id-table* 61) gp-1) ) ) 0 diff --git a/goal_src/jak2/engine/gfx/ocean/ocean-texture.gc b/goal_src/jak2/engine/gfx/ocean/ocean-texture.gc index 1128f58228..db08e4a6e7 100644 --- a/goal_src/jak2/engine/gfx/ocean/ocean-texture.gc +++ b/goal_src/jak2/engine/gfx/ocean/ocean-texture.gc @@ -5,8 +5,11 @@ ;; name in dgo: ocean-texture ;; dgos: ENGINE, GAME +;; og:ignore-form:(defun-debug check-normals + ;; DECOMP BEGINS +;; og:preserve-this (define ocean-texture-vu1-block (new 'static 'vu-function)) (defmethod ocean-texture-setup-constants ocean ((obj ocean) (arg0 ocean-texture-constants)) @@ -180,6 +183,7 @@ ) (ocean-texture-add-call-rest obj arg0) (ocean-texture-add-call-done obj arg0) + ;; og:preserve-this method 81 not handled for now ;; (ocean-method-81 obj arg0) ;; (reset-display-gs-state *display* arg0) 0 @@ -294,24 +298,22 @@ ) (defmethod do-tex-scroll! ocean ((obj ocean)) - (with-pp - (when (not (paused?)) - (+! (-> obj st-scroll x) (* 8.0 (-> pp clock seconds-per-frame))) - (set! (-> obj st-scroll y) (- (-> obj st-scroll y) (* 8.0 (-> pp clock seconds-per-frame)))) - (if (< 128.0 (-> obj st-scroll x)) - (+! (-> obj st-scroll x) -128.0) - ) - (if (< (-> obj st-scroll y) 0.0) - (+! (-> obj st-scroll y) 128.0) - ) - ) - (set! (-> obj uv-scroll-0 x) (the int (* 16.0 (-> obj st-scroll x)))) - (set! (-> obj uv-scroll-0 y) (the int (* 16.0 (+ 256.0 (-> obj st-scroll y))))) - (set! (-> obj uv-scroll-1 x) (the int (* 16.0 (+ 256.0 (-> obj st-scroll x))))) - (set! (-> obj uv-scroll-1 y) (the int (* 16.0 (-> obj st-scroll y)))) - 0 - (none) + (when (not (paused?)) + (+! (-> obj st-scroll x) (* 8.0 (seconds-per-frame))) + (set! (-> obj st-scroll y) (- (-> obj st-scroll y) (* 8.0 (seconds-per-frame)))) + (if (< 128.0 (-> obj st-scroll x)) + (+! (-> obj st-scroll x) -128.0) + ) + (if (< (-> obj st-scroll y) 0.0) + (+! (-> obj st-scroll y) 128.0) + ) ) + (set! (-> obj uv-scroll-0 x) (the int (* 16.0 (-> obj st-scroll x)))) + (set! (-> obj uv-scroll-0 y) (the int (* 16.0 (+ 256.0 (-> obj st-scroll y))))) + (set! (-> obj uv-scroll-1 x) (the int (* 16.0 (+ 256.0 (-> obj st-scroll x))))) + (set! (-> obj uv-scroll-1 y) (the int (* 16.0 (-> obj st-scroll y)))) + 0 + (none) ) (defmethod ocean-method-81 ocean ((obj ocean) (arg0 dma-buffer)) diff --git a/goal_src/jak2/engine/gfx/ocean/ocean.gc b/goal_src/jak2/engine/gfx/ocean/ocean.gc index 0b4e1ba405..61522eb6be 100644 --- a/goal_src/jak2/engine/gfx/ocean/ocean.gc +++ b/goal_src/jak2/engine/gfx/ocean/ocean.gc @@ -5,9 +5,7 @@ ;; name in dgo: ocean ;; dgos: ENGINE, GAME -(def-mips2c init-ocean-far-regs (function none)) -(def-mips2c draw-large-polygon-ocean (function none)) -(def-mips2c render-ocean-quad (function (inline-array ocean-vertex) dma-buffer symbol)) +;; og:ignore-form:(defmethod ocean-method-18 ;; DECOMP BEGINS @@ -103,9 +101,11 @@ ) ) -;; ERROR: function was not converted to expressions. Cannot decompile. +(def-mips2c init-ocean-far-regs (function none)) -;; ERROR: function was not converted to expressions. Cannot decompile. +(def-mips2c draw-large-polygon-ocean (function none)) + +(def-mips2c render-ocean-quad (function (inline-array ocean-vertex) dma-buffer symbol)) (defmethod add-colors! ocean ((obj ocean) (arg0 vector) (arg1 ocean-vertex)) (let ((s3-0 (new 'stack-no-clear 'vector)) @@ -114,7 +114,7 @@ (set! (-> s3-0 quad) (-> arg1 pos quad)) (set! (-> s3-0 y) 0.0) (vector-normalize! s3-0 1.0) - (set! (-> s3-0 y) (+ 0.1 (-> s3-0 y))) + (+! (-> s3-0 y) 0.1) (vector-normalize! s3-0 1.0) (let ((s5-0 (new 'stack-no-clear 'vector4))) (let* ((f0-4 (vector-dot (-> s4-0 sun0-normal) s3-0)) @@ -141,6 +141,7 @@ (defmethod ocean-method-60 ocean ((obj ocean) (arg0 dma-buffer)) (local-vars (sv-48 float) (sv-52 vector) (sv-56 vector)) + ;; og:preserve-this scratchpad (let ((vertices (scratchpad-object (inline-array ocean-vertex)))) (let ((f0-0 (-> obj start-corner z))) (let ((f1-1 (+ -5898240.0 f0-0))) @@ -240,6 +241,7 @@ (defmethod ocean-method-61 ocean ((obj ocean) (arg0 dma-buffer)) (local-vars (sv-48 float) (sv-52 vector) (sv-56 vector)) + ;; og:preserve-this scratchpad (let ((vertices (scratchpad-object (inline-array ocean-vertex)))) (let* ((f0-1 (+ 18874368.0 (-> obj start-corner z))) (f1-2 (+ 5898240.0 f0-1)) @@ -339,6 +341,7 @@ (defmethod ocean-method-62 ocean ((obj ocean) (arg0 dma-buffer)) (local-vars (sv-48 float) (sv-52 vector) (sv-56 vector)) + ;; og:preserve-this scratchpad (let ((vertices (scratchpad-object (inline-array ocean-vertex)))) (let* ((f0-0 (-> obj start-corner x)) (f1-1 (+ -5898240.0 f0-0)) @@ -438,6 +441,7 @@ (defmethod ocean-method-63 ocean ((obj ocean) (arg0 dma-buffer)) (local-vars (sv-48 float) (sv-52 vector) (sv-56 vector)) + ;; og:preserve-this scratchpad (let ((vertices (scratchpad-object (inline-array ocean-vertex)))) (let ((f0-1 (+ 18874368.0 (-> obj start-corner x)))) (let ((f1-2 (+ 5898240.0 f0-1))) @@ -536,6 +540,7 @@ ) (defmethod ocean-method-64 ocean ((obj ocean) (arg0 dma-buffer)) + ;; og:preserve-this scratchpad (let ((vertices (scratchpad-object (inline-array ocean-vertex)))) (let* ((v1-1 (-> obj ocean-colors)) (f30-0 (-> obj start-corner x)) @@ -644,6 +649,7 @@ ) (defmethod ocean-method-65 ocean ((obj ocean) (arg0 dma-buffer)) + ;; og:preserve-this scratchpad (let ((vertices (scratchpad-object (inline-array ocean-vertex)))) (let* ((v1-1 (-> obj ocean-colors)) (f30-0 (+ 18874368.0 (-> obj start-corner x))) @@ -752,6 +758,7 @@ ) (defmethod ocean-method-66 ocean ((obj ocean) (arg0 dma-buffer)) + ;; og:preserve-this scratchpad (let ((vertices (scratchpad-object (inline-array ocean-vertex)))) (let* ((v1-1 (-> obj ocean-colors)) (f30-0 (-> obj start-corner x)) @@ -854,6 +861,7 @@ ) (defmethod ocean-method-67 ocean ((obj ocean) (arg0 dma-buffer)) + ;; og:preserve-this scratchpad (let ((vertices (scratchpad-object (inline-array ocean-vertex)))) (let* ((v1-1 (-> obj ocean-colors)) (f30-0 (+ 18874368.0 (-> obj start-corner x))) @@ -956,6 +964,7 @@ ) (defmethod render-ocean-far ocean ((obj ocean) (arg1 dma-buffer) (facing int)) + ;; og:preserve-this scratchpad (let ((vertices (scratchpad-object (inline-array ocean-vertex)))) (let ((f0-0 (-> obj start-corner y))) (set! (-> vertices 0 pos y) f0-0) @@ -1035,6 +1044,7 @@ (none) ) +;; WARN: Return type mismatch pointer vs none. (defmethod init-buffer! ocean ((obj ocean) (arg0 dma-buffer)) "Initialize [[ocean]] DMA buffer." (dma-buffer-add-gs-set arg0 @@ -1089,140 +1099,138 @@ ) (defmethod update-map ocean ((obj ocean)) - (with-pp - (set! (-> obj heights) #f) - (set! (-> obj verts) #f) - (let ((s5-0 *mood-control*)) - (set! (-> obj constant w) (if (and (-> s5-0 overide-weather-flag) (not (movie?))) - (-> s5-0 overide cloud) - (-> s5-0 current-interp cloud) - ) - ) + (set! (-> obj heights) #f) + (set! (-> obj verts) #f) + (let ((s5-0 *mood-control*)) + (set! (-> obj constant w) (if (and (-> s5-0 overide-weather-flag) (not (movie?))) + (-> s5-0 overide cloud) + (-> s5-0 current-interp cloud) + ) + ) + ) + (set! (-> obj constant w) (fmin 1.0 (* 2.0 (-> obj constant w)))) + (let ((f0-5 1.0) + (f30-0 1.0) + ) + (when (= (-> *bigmap* bigmap-index) 13) + (set! f0-5 0.333) + (set! f30-0 0.75) ) - (set! (-> obj constant w) (fmin 1.0 (* 2.0 (-> obj constant w)))) - (let ((f0-5 1.0) - (f30-0 1.0) - ) - (when (= (-> *bigmap* bigmap-index) 13) - (set! f0-5 0.333) - (set! f30-0 0.75) + (set! (-> obj frame-speed) (* (+ 4.0 (-> *setting-control* user-current rain)) f0-5)) + (set! (-> obj frame-speed2) (* (+ 5.0 (-> *setting-control* user-current rain)) f0-5)) + (when (not (paused?)) + (let ((f0-8 (+ (-> obj frame-num) (* (-> obj frame-speed) (seconds-per-frame))))) + (set! (-> obj frame-num) (- f0-8 (* (the float (the int (/ f0-8 64.0))) 64.0))) ) - (set! (-> obj frame-speed) (* (+ 4.0 (-> *setting-control* user-current rain)) f0-5)) - (set! (-> obj frame-speed2) (* (+ 5.0 (-> *setting-control* user-current rain)) f0-5)) - (when (not (paused?)) - (let ((f0-8 (+ (-> obj frame-num) (* (-> obj frame-speed) (-> pp clock seconds-per-frame))))) - (set! (-> obj frame-num) (- f0-8 (* (the float (the int (/ f0-8 64.0))) 64.0))) - ) - (let ((f0-11 (+ (-> obj frame-num2) (* (-> obj frame-speed2) (-> pp clock seconds-per-frame))))) - (set! (-> obj frame-num2) (- f0-11 (* (the float (the int (/ f0-11 64.0))) 64.0))) - ) - ) - (let ((s5-1 (-> *display* frames (-> *display* on-screen) global-buf))) - (set! (-> obj heights) (the-as ocean-height-array (-> s5-1 base))) - (interp-wave obj (the-as ocean-wave-info (-> obj heights)) (the-as uint (-> obj frame-num)) (* 0.08325 f30-0)) - (&+! (-> s5-1 base) 4096) - (set! (-> obj heights2) (the-as ocean-height-array (-> s5-1 base))) - (interp-wave - obj - (the-as ocean-wave-info (-> obj heights2)) - (the-as uint (-> obj frame-num2)) - (* 0.01665 f30-0) - ) - (&+! (-> s5-1 base) 4096) - (ocean-method-15 obj (the-as matrix (-> obj heights)) (the-as matrix (-> obj heights2))) - (set! (-> obj verts) (the-as ocean-vert-array (-> s5-1 base))) - (&+! (-> s5-1 base) #x8000) + (let ((f0-11 (+ (-> obj frame-num2) (* (-> obj frame-speed2) (seconds-per-frame))))) + (set! (-> obj frame-num2) (- f0-11 (* (the float (the int (/ f0-11 64.0))) 64.0))) ) ) - (when (not (or (-> obj off) (-> *blit-displays-work* menu-mode))) - (when (logtest? (-> *display* vu1-enable-user) (vu1-renderer-mask ocean)) - (mem-copy! (the-as pointer (-> obj cloud-lights)) (the-as pointer (-> *sky-work* cloud-lights)) 156) - (mem-copy! (the-as pointer (-> obj haze-lights)) (the-as pointer (-> *sky-work* haze-lights)) 124) - (vector4-scale! - (the-as vector4 (-> obj sky-color)) - (the-as vector4 (-> *time-of-day-context* current-sky-color)) - 0.0078125 - ) - (generate-verts obj (-> obj verts) (-> obj heights)) - (let* ((s4-0 (-> *display* frames (-> *display* on-screen) global-buf)) - (s5-2 (-> s4-0 base)) - ) + (let ((s5-1 (-> *display* frames (-> *display* on-screen) global-buf))) + (set! (-> obj heights) (the-as ocean-height-array (-> s5-1 base))) + (interp-wave obj (the-as ocean-wave-info (-> obj heights)) (the-as uint (-> obj frame-num)) (* 0.08325 f30-0)) + (&+! (-> s5-1 base) 4096) + (set! (-> obj heights2) (the-as ocean-height-array (-> s5-1 base))) + (interp-wave + obj + (the-as ocean-wave-info (-> obj heights2)) + (the-as uint (-> obj frame-num2)) + (* 0.01665 f30-0) + ) + (&+! (-> s5-1 base) 4096) + (ocean-method-15 obj (the-as matrix (-> obj heights)) (the-as matrix (-> obj heights2))) + (set! (-> obj verts) (the-as ocean-vert-array (-> s5-1 base))) + (&+! (-> s5-1 base) #x8000) + ) + ) + (when (not (or (-> obj off) (-> *blit-displays-work* menu-mode))) + (when (logtest? (-> *display* vu1-enable-user) (vu1-renderer-mask ocean)) + (mem-copy! (the-as pointer (-> obj cloud-lights)) (the-as pointer (-> *sky-work* cloud-lights)) 156) + (mem-copy! (the-as pointer (-> obj haze-lights)) (the-as pointer (-> *sky-work* haze-lights)) 124) + (vector4-scale! + (the-as vector4 (-> obj sky-color)) + (the-as vector4 (-> *time-of-day-context* current-sky-color)) + 0.0078125 + ) + (generate-verts obj (-> obj verts) (-> obj heights)) + (let* ((s4-0 (-> *display* frames (-> *display* on-screen) global-buf)) + (s5-2 (-> s4-0 base)) + ) ;; TODO handle ocean::79 and ocean::89 ;; diasble tod ocean stuff ;; (if (-> *time-of-day-context* sky) ;; (ocean-method-89 obj s4-0) ;; ) - (draw-ocean-texture obj s4-0 (the-as int (-> obj verts))) + (draw-ocean-texture obj s4-0 (the-as int (-> obj verts))) ;; disable whatever this is ;; (ocean-method-79 obj s4-0) - (init-buffer! obj s4-0) - (if (-> obj far-on) - (draw-ocean-far obj s4-0) - ) - (if (not (-> obj mid-off)) - (draw-ocean-mid obj s4-0) - ) - (end-buffer! obj s4-0) - (set-dirty-mask! (-> *level* default-level) 9 #xc0000 #x2a000) - (let ((a3-3 (-> s4-0 base))) - (let ((v1-87 (the-as object (-> s4-0 base)))) - (set! (-> (the-as dma-packet v1-87) dma) (new 'static 'dma-tag :id (dma-tag-id next))) - (set! (-> (the-as dma-packet v1-87) vif0) (new 'static 'vif-tag)) - (set! (-> (the-as dma-packet v1-87) vif1) (new 'static 'vif-tag)) - (set! (-> s4-0 base) (&+ (the-as pointer v1-87) 16)) + (init-buffer! obj s4-0) + (if (-> obj far-on) + (draw-ocean-far obj s4-0) + ) + (if (not (-> obj mid-off)) + (draw-ocean-mid obj s4-0) + ) + (end-buffer! obj s4-0) + (set-dirty-mask! (-> *level* default-level) 9 #xc0000 #x2a000) + (let ((a3-3 (-> s4-0 base))) + (let ((v1-87 (the-as object (-> s4-0 base)))) + (set! (-> (the-as dma-packet v1-87) dma) (new 'static 'dma-tag :id (dma-tag-id next))) + (set! (-> (the-as dma-packet v1-87) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet v1-87) vif1) (new 'static 'vif-tag)) + (set! (-> s4-0 base) (&+ (the-as pointer v1-87) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) bucket-group) + (bucket-id ocean-mid-far) + s5-2 + (the-as (pointer dma-tag) a3-3) + ) + ) + ) + (when (not (or (-> obj near-off) + (or (-> obj mid-off) (< 196608.0 (fabs (- (-> obj start-corner y) (-> *math-camera* trans y))))) + ) + ) + (let* ((s4-1 (-> *display* frames (-> *display* on-screen) global-buf)) + (s5-3 (-> s4-1 base)) + ) + (draw-ocean-texture obj s4-1 (the-as int (-> obj verts))) + (draw-ocean-near obj s4-1) + (end-buffer! obj s4-1) + (set-dirty-mask! (-> *level* default-level) 7 #xc0000 #x2a000) + (let ((a3-5 (-> s4-1 base))) + (let ((v1-113 (the-as object (-> s4-1 base)))) + (set! (-> (the-as dma-packet v1-113) dma) (new 'static 'dma-tag :id (dma-tag-id next))) + (set! (-> (the-as dma-packet v1-113) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet v1-113) vif1) (new 'static 'vif-tag)) + (set! (-> s4-1 base) (&+ (the-as pointer v1-113) 16)) ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) bucket-group) - (bucket-id ocean-mid-far) - s5-2 - (the-as (pointer dma-tag) a3-3) - ) - ) - ) - (when (not (or (-> obj near-off) - (or (-> obj mid-off) (< 196608.0 (fabs (- (-> obj start-corner y) (-> *math-camera* trans y))))) - ) - ) - (let* ((s4-1 (-> *display* frames (-> *display* on-screen) global-buf)) - (s5-3 (-> s4-1 base)) - ) - (draw-ocean-texture obj s4-1 (the-as int (-> obj verts))) - (draw-ocean-near obj s4-1) - (end-buffer! obj s4-1) - (set-dirty-mask! (-> *level* default-level) 7 #xc0000 #x2a000) - (let ((a3-5 (-> s4-1 base))) - (let ((v1-113 (the-as object (-> s4-1 base)))) - (set! (-> (the-as dma-packet v1-113) dma) (new 'static 'dma-tag :id (dma-tag-id next))) - (set! (-> (the-as dma-packet v1-113) vif0) (new 'static 'vif-tag)) - (set! (-> (the-as dma-packet v1-113) vif1) (new 'static 'vif-tag)) - (set! (-> s4-1 base) (&+ (the-as pointer v1-113) 16)) - ) - (dma-bucket-insert-tag - (-> *display* frames (-> *display* on-screen) bucket-group) - (bucket-id ocean-near) - s5-3 - (the-as (pointer dma-tag) a3-5) - ) + (bucket-id ocean-near) + s5-3 + (the-as (pointer dma-tag) a3-5) ) ) ) ) ) - (when (not (paused?)) - (set! (-> obj off) #f) - (set! (-> obj mid-off) #f) - (set! (-> obj near-off) (if obj - (not (-> obj ocean-near-translucent?)) - #f - ) - ) - ) - 0 - (none) ) + (when (not (paused?)) + (set! (-> obj off) #f) + (set! (-> obj mid-off) #f) + (set! (-> obj near-off) (if obj + (not (-> obj ocean-near-translucent?)) + #f + ) + ) + ) + 0 + (none) ) -;; PC Port hack +;; og:preserve-this PC Port hack (define *ocean-generate-verts-vector* (new 'global 'vector)) (set-vector! *ocean-generate-verts-vector* diff --git a/goal_src/jak2/engine/gfx/sprite/particles/sparticle-launcher.gc b/goal_src/jak2/engine/gfx/sprite/particles/sparticle-launcher.gc index 9396234aa8..a1d13f77b0 100644 --- a/goal_src/jak2/engine/gfx/sprite/particles/sparticle-launcher.gc +++ b/goal_src/jak2/engine/gfx/sprite/particles/sparticle-launcher.gc @@ -22,6 +22,37 @@ (define-extern particle-adgif (function adgif-shader texture-id none)) ;; TODO - particle-adgif atomic ops, MIPS2C (define-extern sp-launch-particles-var (function sparticle-system sparticle-launcher matrix sparticle-launch-state sparticle-launch-control float none)) ;; TODO - mips2c +;; og:preserve-this added macro +;; TODO changing rate causes crashes at higher frame rates with certain particles, disabled for now +;; for future testing: at 165 fps, the blue gun particles should cause a crash +(defmacro launch-particles (&key (system *sp-particle-system-2d*) + particle + origin + &key (launch-state (the-as sparticle-launch-state #f)) + &key (launch-control (the-as sparticle-launch-control #f)) + &key (rate 1.0) + &key (origin-is-matrix #f)) + (if origin-is-matrix + `(sp-launch-particles-var + ,system + ,particle + (the matrix ,origin) + ,launch-state + ,launch-control + ,rate #|(if (= (get-video-mode) 'custom) (/ (-> *display* time-factor) 5.0) ,rate)|#) + `(begin + (vector-copy! (-> *launch-matrix* trans) (the vector ,origin)) + (sp-launch-particles-var + ,system + ,particle + *launch-matrix* + ,launch-state + ,launch-control + ,rate #|(if (= (get-video-mode) 'custom) (/ (-> *display* time-factor) 5.0) ,rate)|#) + ) + ) + ) + ;; DECOMP BEGINS ;; WARN: Return type mismatch int vs sparticle-launcher. @@ -95,7 +126,7 @@ 0 ) -;; this was rewritten from assembly +;; og:preserve-this this was rewritten from assembly (defun sp-init-fields! ((arg0 (pointer float)) (arg1 (inline-array sp-field-init-spec)) (arg2 sp-field-id) (arg3 sp-field-id) (write-missing-fields symbol)) (1+! arg2) (let ((cur-spec arg1)) @@ -269,6 +300,7 @@ (let ((s4-0 (-> arg0 alpha)) (s3-0 (-> arg0 clamp)) ) + ;; og:preserve-this ; (.svf (&-> s5-0 0 quad) vf16) ; (.svf (&-> s5-0 1 quad) vf17) ; (.svf (&-> s5-0 2 quad) vf18) @@ -278,6 +310,7 @@ (set! (-> arg0 alpha) s4-0) (set! (-> arg0 clamp) s3-0) ) + ;; og:preserve-this ; (.lvf vf16 (&-> s5-0 0 quad)) ; (.lvf vf17 (&-> s5-0 1 quad)) ; (.lvf vf18 (&-> s5-0 2 quad)) @@ -378,14 +411,14 @@ (cond ((< (-> s5-0 w) 0.0) (.lvf vf1 (&-> arg0 conerot quad)) - (.lvf vf2 (&-> s5-0 vec quad)) + (.lvf vf2 (&-> s5-0 quad)) (.sub.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> arg0 conerot quad) vf1) (.mov v1-1 vf1) ) (else (.lvf vf1 (&-> arg0 conerot quad)) - (.lvf vf2 (&-> s5-0 vec quad)) + (.lvf vf2 (&-> s5-0 quad)) (.add.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> arg0 conerot quad) vf1) (.mov v1-2 vf1) @@ -502,12 +535,12 @@ ) (set! (-> s5-0 vector 1 y) 0.0) (set! (-> s5-0 vector 1 z) (the float (sar (shl (the int (-> s5-0 vector 1 z)) 48) 48))) - (.lvf vf4 (&-> s5-0 vector 2 quad)) - (.lvf vf5 (&-> s5-0 vector 0 quad)) + (.lvf vf4 (&-> s5-0 quad 2)) + (.lvf vf5 (&-> s5-0 quad 0)) (.min.x.vf vf4 vf4 vf31 :mask #b111) (.add.vf vf5 vf5 vf30 :mask #b111) - (.svf (&-> s5-0 vector 2 quad) vf4) - (.svf (&-> s5-0 vector 0 quad) vf5) + (.svf (&-> s5-0 quad 2) vf4) + (.svf (&-> s5-0 quad 0) vf5) (when (not *death-adgif*) (set! *death-adgif* (new 'static 'adgif-shader)) (particle-adgif *death-adgif* (new 'static 'texture-id :index #xc9 :page #xc)) @@ -530,19 +563,19 @@ ) (set! (-> gp-0 clock-index) (the-as uint 8)) (.lvf vf4 (&-> (-> *time-of-day-context* current-prt-color) quad)) - (.lvf vf5 (&-> s5-0 vector 2 quad)) + (.lvf vf5 (&-> s5-0 quad 2)) (.lvf vf6 (&-> gp-0 fade quad)) (.mul.vf vf5 vf5 vf4 :mask #b111) (.mul.vf vf6 vf6 vf4 :mask #b111) - (.svf (&-> s5-0 vector 2 quad) vf5) + (.svf (&-> s5-0 quad 2) vf5) (.svf (&-> gp-0 fade quad) vf6) (.mov v1-26 vf6) (set! (-> gp-0 key) (the-as sparticle-launch-control 0)) (set! (-> gp-0 binding) #f) (let ((v1-27 (-> gp-0 sprite))) - (.lvf vf1 (&-> s5-0 vector 0 quad)) - (.lvf vf2 (&-> s5-0 vector 1 quad)) - (.lvf vf3 (&-> s5-0 vector 2 quad)) + (.lvf vf1 (&-> s5-0 quad 0)) + (.lvf vf2 (&-> s5-0 quad 1)) + (.lvf vf3 (&-> s5-0 quad 2)) (.svf (&-> v1-27 x-y-z-sx quad) vf1) (.svf (&-> v1-27 flag-rot-sy quad) vf2) (.sub.w.vf vf3 vf0 vf0 :mask #b1000) @@ -565,14 +598,7 @@ (dotimes (s4-0 (-> gp-0 in-use)) (let ((v1-4 (-> gp-0 queue s4-0))) (set! (-> s5-0 trans quad) (-> v1-4 pos quad)) - (sp-launch-particles-var - (-> v1-4 sp-system) - (-> v1-4 sp-launcher) - s5-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system (-> v1-4 sp-system) (-> v1-4 sp-launcher) s5-0 :origin-is-matrix #t) ) ) (set! (-> gp-0 in-use) 0) @@ -900,6 +926,7 @@ ) (add-debug-matrix *display-sprite-marks* (bucket-id debug2) (-> obj origin) (meters 2)) ) + ;; og:preserve-this ;; can we see it? (#if (not PC_PORT) (sphere-in-view-frustum? (the-as sphere s5-1)) @@ -918,14 +945,14 @@ (defmethod spawn-with-matrix sparticle-launch-control ((obj sparticle-launch-control) (arg0 matrix)) (let* ((a2-0 (-> obj origin)) (a3-0 arg0) - (v1-0 (-> a3-0 vector 0 quad)) - (a0-1 (-> a3-0 vector 1 quad)) - (a1-1 (-> a3-0 vector 2 quad)) + (v1-0 (-> a3-0 quad 0)) + (a0-1 (-> a3-0 quad 1)) + (a1-1 (-> a3-0 quad 2)) (a3-1 (-> a3-0 trans quad)) ) - (set! (-> a2-0 vector 0 quad) v1-0) - (set! (-> a2-0 vector 1 quad) a0-1) - (set! (-> a2-0 vector 2 quad) a1-1) + (set! (-> a2-0 quad 0) v1-0) + (set! (-> a2-0 quad 1) a0-1) + (set! (-> a2-0 quad 2) a1-1) (set! (-> a2-0 trans quad) a3-1) ) (let ((s4-0 (-> obj group))) @@ -964,14 +991,14 @@ (defmethod spawn-with-cspace sparticle-launch-control ((obj sparticle-launch-control) (arg0 cspace)) (let* ((v1-0 (-> obj origin)) (a3-0 (-> arg0 bone transform)) - (a0-2 (-> a3-0 vector 0 quad)) - (a1-1 (-> a3-0 vector 1 quad)) - (a2-0 (-> a3-0 vector 2 quad)) + (a0-2 (-> a3-0 quad 0)) + (a1-1 (-> a3-0 quad 1)) + (a2-0 (-> a3-0 quad 2)) (a3-1 (-> a3-0 trans quad)) ) - (set! (-> v1-0 vector 0 quad) a0-2) - (set! (-> v1-0 vector 1 quad) a1-1) - (set! (-> v1-0 vector 2 quad) a2-0) + (set! (-> v1-0 quad 0) a0-2) + (set! (-> v1-0 quad 1) a1-1) + (set! (-> v1-0 quad 2) a2-0) (set! (-> v1-0 trans quad) a3-1) ) (let ((s4-0 (-> obj group))) @@ -1043,7 +1070,7 @@ (set! f30-0 0.0) ) - ;; if we have ps2 particles off, say we're at the camera + ;; og:preserve-this if we have ps2 particles off, say we're at the camera (with-pc (if (not (-> *pc-settings* ps2-parts?)) (set! f30-0 0.0))) @@ -1158,16 +1185,17 @@ ) (cond ((logtest? (-> v1-33 flags) (sp-group-item-flag bit7)) - (sp-launch-particles-var - (if (logtest? (-> v1-33 flags) (sp-group-item-flag is-3d)) + (launch-particles + :system (if (logtest? (-> v1-33 flags) (sp-group-item-flag is-3d)) *sp-particle-system-3d* *sp-particle-system-2d* ) a1-4 (-> obj origin) - a3-0 - obj - f0-5 + :launch-state a3-0 + :launch-control obj + :rate f0-5 + :origin-is-matrix #t ) ) (else @@ -1241,14 +1269,7 @@ (set! (-> s2-0 quad) (-> (the-as vector s0-0) quad)) (set! (-> s2-0 w) 1.0) (vector-matrix*! (-> s3-0 trans) s2-0 s3-0) - (sp-launch-particles-var - gp-0 - sv-96 - s3-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system gp-0 sv-96 s3-0 :origin-is-matrix #t) ) ) ) @@ -1351,14 +1372,14 @@ (cond ((< (-> gp-0 w) 0.0) (.lvf vf1 (&-> arg2 qx-qy-qz-sy quad)) - (.lvf vf2 (&-> gp-0 vec quad)) + (.lvf vf2 (&-> gp-0 quad)) (.sub.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> arg2 qx-qy-qz-sy quad) vf1) (.mov v1-1 vf1) ) (else (.lvf vf1 (&-> arg2 qx-qy-qz-sy quad)) - (.lvf vf2 (&-> gp-0 vec quad)) + (.lvf vf2 (&-> gp-0 quad)) (.add.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> arg2 qx-qy-qz-sy quad) vf1) (.mov v1-2 vf1) @@ -1399,14 +1420,14 @@ (cond ((< (-> s4-0 w) 0.0) (.lvf vf1 (&-> v1-4 qx-qy-qz-sy quad)) - (.lvf vf2 (&-> s4-0 vec quad)) + (.lvf vf2 (&-> s4-0 quad)) (.sub.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> v1-4 qx-qy-qz-sy quad) vf1) (.mov v1-5 vf1) ) (else (.lvf vf1 (&-> v1-4 qx-qy-qz-sy quad)) - (.lvf vf2 (&-> s4-0 vec quad)) + (.lvf vf2 (&-> s4-0 quad)) (.add.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> v1-4 qx-qy-qz-sy quad) vf1) (.mov v1-6 vf1) @@ -1462,14 +1483,14 @@ (cond ((< (-> s4-0 w) 0.0) (.lvf vf1 (&-> v1-17 qx-qy-qz-sy quad)) - (.lvf vf2 (&-> s4-0 vec quad)) + (.lvf vf2 (&-> s4-0 quad)) (.sub.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> v1-17 qx-qy-qz-sy quad) vf1) (.mov v1-18 vf1) ) (else (.lvf vf1 (&-> v1-17 qx-qy-qz-sy quad)) - (.lvf vf2 (&-> s4-0 vec quad)) + (.lvf vf2 (&-> s4-0 quad)) (.add.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> v1-17 qx-qy-qz-sy quad) vf1) (.mov v1-19 vf1) @@ -1876,14 +1897,14 @@ (cond ((< (-> s5-1 w) 0.0) (.lvf vf1 (&-> arg2 conerot quad)) - (.lvf vf2 (&-> s5-1 vec quad)) + (.lvf vf2 (&-> s5-1 quad)) (.sub.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> arg2 conerot quad) vf1) (.mov v1-0 vf1) ) (else (.lvf vf1 (&-> arg2 conerot quad)) - (.lvf vf2 (&-> s5-1 vec quad)) + (.lvf vf2 (&-> s5-1 quad)) (.add.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> arg2 conerot quad) vf1) (.mov v1-1 vf1) @@ -1910,14 +1931,14 @@ (cond ((< (-> v1-0 w) 0.0) (.lvf vf1 (&-> a0-1 conerot quad)) - (.lvf vf2 (&-> v1-0 vec quad)) + (.lvf vf2 (&-> v1-0 quad)) (.sub.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> a0-1 conerot quad) vf1) (.mov a0-2 vf1) ) (else (.lvf vf1 (&-> a0-1 conerot quad)) - (.lvf vf2 (&-> v1-0 vec quad)) + (.lvf vf2 (&-> v1-0 quad)) (.add.vf vf1 vf0 vf2 :mask #b111) (.svf (&-> a0-1 conerot quad) vf1) (.mov a0-3 vf1) diff --git a/goal_src/jak2/engine/gfx/texture/texture-anim-funcs.gc b/goal_src/jak2/engine/gfx/texture/texture-anim-funcs.gc index 9b437a6b03..1001d1c714 100644 --- a/goal_src/jak2/engine/gfx/texture/texture-anim-funcs.gc +++ b/goal_src/jak2/engine/gfx/texture/texture-anim-funcs.gc @@ -51,7 +51,7 @@ (t0-1 (/ (-> v1-4 w) 2)) (a3-1 (/ (-> v1-4 h) 2)) ) - ;; modified + ;; og:preserve-this modified ;(upload-vram-data dma-buf (the-as int (-> v1-4 dest 0)) (the-as pointer (-> v1-4 pad 0)) a3-1 t0-1) (pc-texture-anim-flag upload-generic-vram dma-buf :qwc 1) (let ((upload-record (the texture-anim-pc-upload (-> dma-buf base)))) @@ -65,7 +65,8 @@ (&+! (-> dma-buf base) 16) ) - ;(dma-buffer-add-gs-set dma-buf (texflush 0)) don't need + ;; og:preserve-this don't need + ;(dma-buffer-add-gs-set dma-buf (texflush 0)) (texture-anim-layer-add-shader dma-buf layer 1) (texture-anim-layer-draw dma-buf width height layer) ) @@ -74,21 +75,19 @@ ) (defun cloud-texture-anim-func ((arg0 dma-buffer) (arg1 texture-anim)) - (with-pp - (when (>= (+ (-> arg1 frame-time) (* (-> arg1 frame-delta) (-> pp clock seconds-per-frame))) (-> arg1 frame-mod)) - (let ((s5-0 (-> arg1 data 0 tex)) - (s4-0 (-> arg1 data 1 tex)) - (s3-0 (-> arg1 data 0 tex w)) - ) - (when (not (paused?)) - (set! (-> arg1 data 0 tex) s4-0) - (set! (-> arg1 data 1 tex) s5-0) - (make-noise-texture (the-as pointer (-> s5-0 pad 0)) s3-0 s3-0 s3-0) + (when (>= (+ (-> arg1 frame-time) (* (-> arg1 frame-delta) (seconds-per-frame))) (-> arg1 frame-mod)) + (let ((s5-0 (-> arg1 data 0 tex)) + (s4-0 (-> arg1 data 1 tex)) + (s3-0 (-> arg1 data 0 tex w)) ) + (when (not (paused?)) + (set! (-> arg1 data 0 tex) s4-0) + (set! (-> arg1 data 1 tex) s5-0) + (make-noise-texture (the-as pointer (-> s5-0 pad 0)) s3-0 s3-0 s3-0) ) ) - 0 ) + 0 ) (defun fog-texture-anim-init ((arg0 texture-anim)) @@ -210,7 +209,7 @@ ) ) (let ((s5-1 (-> arg1 tex))) - + ;; og:preserve-this ;; they use bitbltbuf directly to upload in the format of the data, rather than ;; the usual PSM32 trick ; (dma-buffer-add-gs-set arg0 @@ -248,7 +247,7 @@ (&+! (-> arg0 base) 16) (set! (-> *texture-pool* ids (shr (-> s5-1 clutdest) 6)) (the-as uint 0)) - ;; just a texflush. + ;; og:preserve-this just a texflush. ; (let* ((v1-29 arg0) ; (a0-51 (the-as object (-> v1-29 base))) ; ) diff --git a/goal_src/jak2/engine/gfx/texture/texture-anim.gc b/goal_src/jak2/engine/gfx/texture/texture-anim.gc index c24ec2887e..bec2dc0774 100644 --- a/goal_src/jak2/engine/gfx/texture/texture-anim.gc +++ b/goal_src/jak2/engine/gfx/texture/texture-anim.gc @@ -7,6 +7,7 @@ ;; DECOMP BEGINS +;; og:preserve-this ;; The "texture animation" system modifies a texture according to a series of layers. (define *texture-anim-work* @@ -166,6 +167,7 @@ ) ) +;; og:preserve-this (defenum texture-anim-pc (start-anim-array 12) (finish-anim-array 13) @@ -243,6 +245,7 @@ "Add DMA to set the GS to use the given shader. This can be used to read from the texture." (let ((s5-0 (-> arg1 tex))) (when s5-0 + ;; og:preserve-this (pc-texture-anim-flag set-shader arg0) (dma-buffer-add-gs-set arg0 (tex0-1 (new 'static 'gs-tex0 @@ -271,6 +274,7 @@ "Add DMA to set the GS to use the clut as a ct32 texture. This is used to abuse the GS to blend cluts by pretending they are ct32's." (let ((a1-1 (-> arg1 tex))) (when a1-1 + ;; og:preserve-this (pc-texture-anim-flag set-shader arg0) (dma-buffer-add-gs-set arg0 (tex0-1 (new 'static 'gs-tex0 :tbw #x1 :tw #x4 :th #x4 :tcc arg2 :tbp0 (-> a1-1 clutdest))) @@ -290,7 +294,8 @@ Always draws a tristrip with two triangles. " (local-vars (v1-27 float) (sv-224 matrix) (sv-228 matrix) (sv-232 matrix) (sv-236 matrix)) - (pc-texture-anim-flag draw dma-buf) ;; added + ;; og:preserve-this added + (pc-texture-anim-flag draw dma-buf) (rlet ((acc :class vf) (vf0 :class vf) @@ -432,6 +437,7 @@ (texture-anim-layer-draw dma-buf 16 16 layer) ) ) + ;; og:preserve-this (format 0 "after blend-clut-texture-anim-layer-func ~X~%" (-> dma-buf base)) 0 @@ -440,7 +446,7 @@ (defun move-rg-to-ba-texture-anim-layer-func ((dma-buf dma-buffer) (fbp-to-draw uint) (width int) (height int) (layer texture-anim-layer) (time float)) "Some cursed texture drawing." - ;; HACK added: + ;; og:preserve-this HACK added: (pc-texture-anim-flag move-rg-to-ba dma-buf :qwc 1) (let ((transform (the texture-anim-pc-texture-transform (-> dma-buf base)))) (set! (-> transform src-tbp) (-> layer tex dest 0)) @@ -450,7 +456,7 @@ ) (&+! (-> dma-buf base) 16) (return 0) - ;; end added + ;; og:preserve-this end added (-> layer tex) (let ((tw (log2 (* width 2))) @@ -499,7 +505,7 @@ ) ) - ;; manually done from the stuff below. + ;; og:preserve-this manually done from the stuff below. (dma-buffer-add-gs-set-flusha dma-buf (xyoffset-1 (new 'static 'gs-xy-offset :ofx #x7000 :ofy #x7300)) (frame-1 (new 'static 'gs-frame :fbw (/ (+ width 63) 64) :fbp fbp-to-draw)) @@ -540,6 +546,7 @@ (vf2 :class vf) ) (let ((s5-0 (/ (+ width 63) 64))) + ;; og:preserve-this ;; set frame to mask alpha (dma-buffer-add-gs-set-flusha dma-buf (frame-1 (new 'static 'gs-frame :fbmsk #xff000000 :fbw s5-0 :fbp fbp-to-draw)) @@ -565,6 +572,7 @@ (set-vector! (the-as vector4w (&+ v1-4 64)) (* a0-8 16) (* a1-15 16) 0 0) ) (&+! (-> dma-buf base) 80) + ;; og:preserve-this ;; reset frame. (dma-buffer-add-gs-set-flusha dma-buf (frame-1 (new 'static 'gs-frame :fbw s5-0 :fbp fbp-to-draw)) @@ -597,6 +605,7 @@ ) ) +;; og:preserve-this (define-extern *sky-texture-anim-array* (texture-anim-array texture-anim)) (#when PC_PORT (define-extern *sky-hires-texture-anim-array* (texture-anim-array texture-anim))) @@ -624,7 +633,7 @@ (defun pc-update-anim-frame-time ((anim texture-anim)) (when (not (paused?)) (with-pp - (let ((f0-2 (+ (-> anim frame-time) (* (-> anim frame-delta) (-> pp clock seconds-per-frame)))) + (let ((f0-2 (+ (-> anim frame-time) (* (-> anim frame-delta) (seconds-per-frame)))) (f1-2 (-> anim frame-mod)) ) (set! (-> anim frame-time) (- f0-2 (* (the float (the int (/ f0-2 f1-2))) f1-2))) @@ -636,6 +645,7 @@ ) ) +;; og:preserve-this (defun pc-update-fixed-anim ((bucket bucket-id) (anim-id texture-anim-pc) (anim-array texture-anim-array)) "Run a 'fixed' texture-anim, which should run entirely in C++." (with-dma-buffer-add-bucket ((dma-buf (-> *display* frames (-> *display* on-screen) global-buf)) @@ -790,6 +800,7 @@ struct SlimeInput { ) ((= anim-array *sky-texture-anim-array*) (when (= bucket (bucket-id tex-lcom-sky-post)) + ;; og:preserve-this ;; skip. I believe this is only used to generate the envmap texture for the ocean. ;; it generates the exact same thing, so if we want this on PC one day, we can just ;; steal if from the beginning of the frame. @@ -993,7 +1004,6 @@ struct SlimeInput { ;; (return #f) ;; (local-vars (tex-height int) (fbp-for-tex uint) (layer-idx int)) - (with-pp (if (-> *blit-displays-work* menu-mode) (return #f) ) @@ -1003,6 +1013,7 @@ struct SlimeInput { (with-dma-buffer-add-bucket ((dma-buf (-> *display* frames (-> *display* on-screen) global-buf)) bucket ) + ;; og:preserve-this ;; added: flag for the PC port to indicate start of texture anim data: (pc-texture-anim-flag start-anim-array dma-buf) @@ -1102,7 +1113,7 @@ struct SlimeInput { ;; advance animation. (when (not (paused?)) - (let ((f0-2 (+ (-> anim frame-time) (* (-> anim frame-delta) (-> pp clock seconds-per-frame)))) + (let ((f0-2 (+ (-> anim frame-time) (* (-> anim frame-delta) (seconds-per-frame)))) (f1-2 (-> anim frame-mod)) ) (set! (-> anim frame-time) (- f0-2 (* (the float (the int (/ f0-2 f1-2))) f1-2))) @@ -1131,7 +1142,6 @@ struct SlimeInput { (none) ) ) - ) (defun no-alpha-texture-anim-layer-func ((dma-buf dma-buffer) (fbp-to-draw uint) (width int) (height int) (layer texture-anim-layer) (time float)) "Like others, but the tcc value is 0" @@ -1620,8 +1630,6 @@ struct SlimeInput { (none) ) -;; definition for function texture-anim-slime-clut-upload -;; WARN: Return type mismatch int vs none. (defun texture-anim-slime-clut-upload ((arg0 dma-buffer) (arg1 texture-anim)) (when (-> arg1 tex) (make-slime-clut (the-as (pointer uint32) (-> arg1 tex pad 0))) @@ -1632,8 +1640,6 @@ struct SlimeInput { (none) ) -;; definition for function texture-anim-slime-clut-init -;; WARN: Return type mismatch int vs none. (defun texture-anim-slime-clut-init ((arg0 texture-anim)) (let ((s5-0 (new 'loading-level 'texture)) (s4-0 (the int (-> arg0 extra x))) @@ -1647,7 +1653,6 @@ struct SlimeInput { (none) ) -;; definition for function make-ramp-clut ;; WARN: Return type mismatch symbol vs none. (defun make-ramp-clut ((arg0 (pointer uint32)) (arg1 pointer) (arg2 object)) (dotimes (v1-0 256) @@ -1693,7 +1698,7 @@ struct SlimeInput { ((128) (set! s4-0 (new 'loading-level 'noise128x128)) ) - ;; pc port note : added these two cases + ;; og:preserve-this added these two cases ((256) (set! s4-0 (new 'loading-level 'noise256x256)) ) @@ -1730,6 +1735,7 @@ struct SlimeInput { (defun texture-anim-alpha-ramp-clut-upload ((arg0 dma-buffer) (arg1 texture-anim)) (when (-> arg1 tex) + ;; og:preserve-this ;(upload-vram-data arg0 (the-as int (-> arg1 tex clutdest)) (the-as pointer (-> arg1 tex pad 0)) 16 16) (pc-texture-anim-flag upload-clut-16-16 arg0 :qwc 1) @@ -1831,7 +1837,6 @@ struct SlimeInput { obj ) -;; definition for method 10 of type texture-anim-array (defmethod clear! texture-anim-array ((obj texture-anim-array)) (dotimes (s5-0 (-> obj length)) (clear-textures! (-> obj array-data s5-0)) @@ -1839,6 +1844,7 @@ struct SlimeInput { obj ) +;; og:preserve-this added macro (defmacro assert-symbol-is-function (sym) `(begin (let ((sym-val (-> (the symbol ,sym) value))) @@ -1863,7 +1869,8 @@ struct SlimeInput { (set! (-> obj func) (the-as (function dma-buffer texture-anim int) (-> (the-as symbol (-> obj func)) value))) ) (when (logtest? (the-as int (-> obj init-func)) 1) - (assert-symbol-is-function (-> obj init-func)) ;; added + ;; og:preserve-this added + (assert-symbol-is-function (-> obj init-func)) (set! (-> obj init-func) (the-as (function texture-anim int) (-> (the-as symbol (-> obj init-func)) value))) (if (-> obj init-func) ((-> obj init-func) obj) @@ -1935,7 +1942,6 @@ struct SlimeInput { obj ) -;; definition for method 10 of type texture-anim (defmethod clear-textures! texture-anim ((obj texture-anim)) (set! (-> obj tex) #f) (dotimes (s5-0 (the-as int (-> obj num-layers))) @@ -1944,10 +1950,10 @@ struct SlimeInput { obj ) -;; definition for method 9 of type texture-anim-layer (defmethod initialize-texture! texture-anim-layer ((obj texture-anim-layer)) (when (logtest? (the-as int (-> obj func)) 1) - (assert-symbol-is-function (-> obj func)) ;; added + ;; og:preserve-this added + (assert-symbol-is-function (-> obj func)) (set! (-> obj func) (the-as (function dma-buffer uint int int texture-anim-layer float int) (-> (the-as symbol (-> obj func)) value) @@ -1955,7 +1961,8 @@ struct SlimeInput { ) ) (when (logtest? (the-as int (-> obj init-func)) 1) - (assert-symbol-is-function (-> obj init-func)) ;; added + ;; og:preserve-this added + (assert-symbol-is-function (-> obj init-func)) (set! (-> obj init-func) (the-as (function texture-anim-layer int) (-> (the-as symbol (-> obj init-func)) value)) ) @@ -1971,7 +1978,6 @@ struct SlimeInput { obj ) -;; definition for method 10 of type texture-anim-layer (defmethod clear-texture! texture-anim-layer ((obj texture-anim-layer)) (set! (-> obj tex) #f) obj diff --git a/goal_src/jak2/engine/gfx/texture/texture.gc b/goal_src/jak2/engine/gfx/texture/texture.gc index 63618303c1..332597b947 100644 --- a/goal_src/jak2/engine/gfx/texture/texture.gc +++ b/goal_src/jak2/engine/gfx/texture/texture.gc @@ -58,6 +58,7 @@ are needed or not, and skip segments if needed. additionally, some texture pages have a chunk system that allows more specific control. |# +;; DECOMP BEGINS (defmethod print texture-page ((obj texture-page)) "Print a texture page with name and size." @@ -87,7 +88,7 @@ additionally, some texture pages have a chunk system that allows more specific c (set! (-> arg0 length) (max 83 (-> arg0 length))) (set! (-> arg0 data 82 name) "texture") (+! (-> arg0 data 82 count) (-> obj length)) - ;; note: in jak 1 this + was a - for reasons I do not understand. + ;; og:preserve-this note: in jak 1 this + was a - for reasons I do not understand. (let ((v1-7 (+ (asize-of obj) (* (-> obj dram-size) 4)))) ;; also add the size of the texture objects. (dotimes (a0-6 (-> obj length)) @@ -578,6 +579,7 @@ additionally, some texture pages have a chunk system that allows more specific c (when tex (dotimes (mask-idx 3) (dotimes (mask-word 3) + ;; og:preserve-this (set! (-> tex masks data mask-idx mask data mask-word) 0) ;(set! (-> (the-as texture (+ (+ (* mask-idx 16) (* mask-word 4)) (the-as int tex))) masks data 0 mask x) 0) ) @@ -630,6 +632,7 @@ additionally, some texture pages have a chunk system that allows more specific c (when tex (dotimes (mask-idx 3) (dotimes (mask-word 3) + ;; og:preserve-this (set! (-> tex masks data mask-idx mask data mask-word) 0) ;(set! (-> (the-as texture (+ (+ (* mask-idx 16) (* mask-word 4)) (the-as int tex))) masks data 0 mask x) 0) ) @@ -661,6 +664,7 @@ additionally, some texture pages have a chunk system that allows more specific c ;; this assumes that the common-segment starts at 0. (let ((vram-loc 0)) + ;; og:preserve-this constant ;; loop over all active levels (countdown (level-idx LEVEL_TOTAL) (let ((lev (-> *level* level level-idx))) @@ -700,6 +704,7 @@ additionally, some texture pages have a chunk system that allows more specific c "Lay out hud/map textures from all levels so all can fit into VRAM at the same time." (let ((level-idx 0)) + ;; og:preserve-this constant (countdown (vram-loc LEVEL_TOTAL) (let ((lev (-> *level* level vram-loc))) (when (or (= (-> lev status) 'active) @@ -742,6 +747,7 @@ additionally, some texture pages have a chunk system that allows more specific c ;; again, assume that common-segment starts at 0 (let ((vram-loc 0)) + ;; og:preserve-this constant ;; iterate over active levels (countdown (level-idx LEVEL_TOTAL) (let ((lev (-> *level* level level-idx))) @@ -1073,6 +1079,7 @@ additionally, some texture pages have a chunk system that allows more specific c (+! num-chunks chunks-pending) ) + ;; og:preserve-this ;; add a texflush. (dma-buffer-add-gs-set dma-buf (texflush 1)) @@ -1154,7 +1161,7 @@ additionally, some texture pages have a chunk system that allows more specific c 0 ) - +;; og:preserve-this pc port function (defun upload-vram-pages-pris-pc ((pool texture-pool) (dest-seg texture-pool-segment) (tpage texture-page) @@ -1569,6 +1576,7 @@ additionally, some texture pages have a chunk system that allows more specific c (((tpage-category alpha)) ;; alpha has some special cases (cond + ;; og:preserve-this constant ((= (-> lev index) LEVEL_MAX) ;; default level ;; if the auto-save-icon-flag is set, clear flag and upload next time. (if (not (-> *bigmap* auto-save-icon-flag)) @@ -1645,6 +1653,7 @@ additionally, some texture pages have a chunk system that allows more specific c (((tpage-category map)) ;; map doesn't use masks for the default level. (cond + ;; og:preserve-this constant ((= (-> lev index) LEVEL_MAX) (set! (-> lev upload-size 8) (upload-vram-pages pool (-> pool segment-common) tpage (tex-upload-mode seg0-1-2) bucket) @@ -1671,6 +1680,7 @@ additionally, some texture pages have a chunk system that allows more specific c (let ((s2-0 (-> lev texture-anim-array cat))) (cond ((= cat (tpage-category warp)) + ;; og:preserve-this constant ;; warps put all their update-texture-anim's with the default level: (when (= (-> lev index) LEVEL_MAX) (dotimes (s2-1 LEVEL_TOTAL) @@ -1690,8 +1700,8 @@ additionally, some texture pages have a chunk system that allows more specific c ;; hack for a certain level here... (cond ((and (level-get-target-inside *level*) (= (-> (level-get-target-inside *level*) info taskname) 'nest)) - (let ((f30-0 (-> pp clock seconds-per-frame))) - (set! (-> pp clock seconds-per-frame) (* 10.0 (-> pp clock seconds-per-frame))) + (let ((f30-0 (seconds-per-frame))) + (set! (-> pp clock seconds-per-frame) (* 10.0 (seconds-per-frame))) (if s2-0 (update-texture-anim bucket s2-0) ) @@ -1770,6 +1780,7 @@ additionally, some texture pages have a chunk system that allows more specific c ) ) + ;; og:preserve-this constant ;; clear upload-size (dotimes (lev-idx LEVEL_TOTAL) (let ((lev (-> *level* level lev-idx))) @@ -1793,6 +1804,7 @@ additionally, some texture pages have a chunk system that allows more specific c ) (when (and src-level (logtest? (-> *texture-pool* texture-enable-user) (-> tpage-info texture-user))) (cond + ;; og:preserve-this constant ((= (-> tpage-info level-index) LEVEL_MAX) ;; always upload default-level textures (add-level-tpage-dma @@ -1818,6 +1830,7 @@ additionally, some texture pages have a chunk system that allows more specific c ) ) + ;; og:preserve-this constant ;; reset masks and closest array for the next frame! (dotimes (v1-16 LEVEL_TOTAL) (let ((a0-30 (-> *level* level v1-16))) @@ -1849,6 +1862,7 @@ additionally, some texture pages have a chunk system that allows more specific c "Send the given texture-page to VRAM right now. This function doesn't return until it has happened, and only should be used during boot." + ;; og:preserve-this (#when PC_PORT ;; load it to the PC Port's texture pool. (__pc-texture-upload-now obj arg0) @@ -1913,7 +1927,7 @@ additionally, some texture pages have a chunk system that allows more specific c Will try to move the whole thing, including the clut, assuming you provide a destination for it. Note that this uses the format/width stuff properly, so it will be slower, but won't scramble your texture." - + ;; og:preserve-this (#when PC_PORT ;; as far as I know this is only used for fonts which have 1 mip level. (__pc-texture-relocate (/ dest-loc 64) (-> tex dest 0) dest-fmt) @@ -2809,6 +2823,3 @@ additionally, some texture pages have a chunk system that allows more specific c ) (define *texture-pool* (new 'global 'texture-pool)) - - - diff --git a/goal_src/jak2/engine/math/transformq.gc b/goal_src/jak2/engine/math/transformq.gc index 0755599719..9c58f0579d 100644 --- a/goal_src/jak2/engine/math/transformq.gc +++ b/goal_src/jak2/engine/math/transformq.gc @@ -41,31 +41,29 @@ The vel is a maximum velocity limit. The frame count is the time constant (first order). There's some logic to avoid rapidly changing directions" - (with-pp - (let* ((f0-0 (deg-diff (quaternion-y-angle (-> obj quat)) (vector-y-angle arg0))) - (f1-2 (fmin (* arg1 (-> pp clock seconds-per-frame)) (/ (* 5.0 (fabs f0-0)) (the float arg2)))) - (f30-0 (fmax (fmin f0-0 f1-2) (- f1-2))) - ) - (let ((f0-2 (-> obj old-y-angle-diff))) - (set! f30-0 - (cond - ((or (= f0-2 0.0) - (and (< 0.0 f30-0) (< 0.0 f0-2)) - (or (and (< f30-0 0.0) (< f0-2 0.0)) (>= (- (current-time) (-> obj angle-change-time)) (seconds 0.2))) - ) - (set! (-> obj angle-change-time) (current-time)) - f30-0 - ) - (else - (* 0.000000001 f30-0) - ) + (let* ((f0-0 (deg-diff (quaternion-y-angle (-> obj quat)) (vector-y-angle arg0))) + (f1-2 (fmin (* arg1 (seconds-per-frame)) (/ (* 5.0 (fabs f0-0)) (the float arg2)))) + (f30-0 (fmax (fmin f0-0 f1-2) (- f1-2))) + ) + (let ((f0-2 (-> obj old-y-angle-diff))) + (set! f30-0 + (cond + ((or (= f0-2 0.0) + (and (< 0.0 f30-0) (< 0.0 f0-2)) + (or (and (< f30-0 0.0) (< f0-2 0.0)) (>= (- (current-time) (-> obj angle-change-time)) (seconds 0.2))) + ) + (set! (-> obj angle-change-time) (current-time)) + f30-0 + ) + (else + (* 0.000000001 f30-0) ) ) - ) - (set! (-> obj old-y-angle-diff) f30-0) - (let ((a1-2 (get-quaternion obj))) - (quaternion-rotate-y! a1-2 a1-2 f30-0) - ) + ) + ) + (set! (-> obj old-y-angle-diff) f30-0) + (let ((a1-2 (get-quaternion obj))) + (quaternion-rotate-y! a1-2 a1-2 f30-0) ) ) ) @@ -203,6 +201,7 @@ (cond ((!= s2-0 0.0) (let* ((v1-5 (vector-cross! (new 'stack-no-clear 'vector) s1-2 sv-272)) + ;; og:preserve-this inlined vector-dot ; (f0-3 (-> sv-256 x)) ; (f1-3 (-> sv-256 y)) ; (f2-0 (-> sv-256 z)) diff --git a/goal_src/jak2/engine/math/vector.gc b/goal_src/jak2/engine/math/vector.gc index 6e58fb8cff..771668c72b 100644 --- a/goal_src/jak2/engine/math/vector.gc +++ b/goal_src/jak2/engine/math/vector.gc @@ -553,49 +553,37 @@ (defun vector-v! ((arg0 vector)) "Convert a velocity to a displacement per frame. The velocity should be in X/actual_second. Uses the current process clock." - (with-pp - (vector-float*! arg0 arg0 (-> pp clock seconds-per-frame)) - arg0 - ) + (vector-float*! arg0 arg0 (seconds-per-frame)) + arg0 ) (defun vector-v+! ((arg0 vector) (arg1 vector) (arg2 vector)) "Euler forward step, using the current display time settings" - (with-pp - (vector+float*! arg0 arg1 arg2 (-> pp clock seconds-per-frame)) - arg0 - ) + (vector+float*! arg0 arg1 arg2 (seconds-per-frame)) + arg0 ) (defun vector-v*float+! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) "Euler forward step, scaling velocity by velocity-scale" - (with-pp - (vector+float*! arg0 arg1 arg2 (* arg3 (-> pp clock seconds-per-frame))) - arg0 - ) + (vector+float*! arg0 arg1 arg2 (* arg3 (seconds-per-frame))) + arg0 ) (defun vector-v++! ((arg0 vector) (arg1 vector)) "Update position in place, using display's current timing" - (with-pp - (vector+float*! arg0 arg0 arg1 (-> pp clock seconds-per-frame)) - arg0 - ) + (vector+float*! arg0 arg0 arg1 (seconds-per-frame)) + arg0 ) (defun vector-v*float! ((arg0 vector) (arg1 vector) (arg2 float)) "Go from velocity to delta-p per frame, scaling by scale" - (with-pp - (vector-float*! arg0 arg1 (* arg2 (-> pp clock seconds-per-frame))) - ) + (vector-float*! arg0 arg1 (* arg2 (seconds-per-frame))) ) (defun vector-v*float++! ((arg0 vector) (arg1 vector) (arg2 float)) "update position with given velocity, scaled by scale." - (with-pp - (vector+float*! arg0 arg0 arg1 (* arg2 (-> pp clock seconds-per-frame))) - arg0 - ) + (vector+float*! arg0 arg0 arg1 (* arg2 (seconds-per-frame))) + arg0 ) (defun vector-to-ups! ((arg0 vector) (arg1 vector)) @@ -623,22 +611,20 @@ (defun vector-from-ups! ((arg0 vector) (arg1 vector)) "Go from units per second to units per frame?" (local-vars (at-0 int)) - (with-pp - (rlet ((vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (.lvf vf1 (&-> arg1 quad)) - (let ((f0-0 (-> pp clock seconds-per-frame))) - (.mov at-0 f0-0) - ) - (.mov vf2 at-0) - (.mov.vf vf1 vf0 :mask #b1000) - (.mul.x.vf vf1 vf1 vf2 :mask #b111) - (.svf (&-> arg0 quad) vf1) - arg0 + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (let ((f0-0 (seconds-per-frame))) + (.mov at-0 f0-0) ) + (.mov vf2 at-0) + (.mov.vf vf1 vf0 :mask #b1000) + (.mul.x.vf vf1 vf1 vf2 :mask #b111) + (.svf (&-> arg0 quad) vf1) + arg0 ) ) @@ -827,6 +813,7 @@ ) ) arg0 + ;; og:preserve-this ; (rlet ((acc :class vf) ; (Q :class vf) ; (vf0 :class vf) @@ -866,6 +853,7 @@ f0-0 ) + ;; og:preserve-this ; (local-vars (v1-1 float)) ; (rlet ((acc :class vf) ; (Q :class vf) @@ -961,7 +949,7 @@ "Make vector at most arg1 length (xyz only). If it is larger, project onto sphere. Doesn't touch w" - ;; note: converted to asm in jak 2 + ;; og:preserve-this converted to asm in jak 2 (let ((f0-0 (vector-length arg0))) (when (not (or (= f0-0 0.0) (< f0-0 arg1))) (let ((f0-1 (/ f0-0 arg1))) @@ -1594,9 +1582,9 @@ (defun sphere<-vector! ((arg0 sphere) (arg1 vector)) "Set the position of the sphere to arg1. Does not change the radius" - (let ((f0-0 (-> arg0 w))) + (let ((f0-0 (-> arg0 r))) (set! (-> arg0 quad) (-> arg1 quad)) - (set! (-> arg0 w) f0-0) + (set! (-> arg0 r) f0-0) ) arg0 ) @@ -1604,7 +1592,7 @@ (defun sphere<-vector+r! ((arg0 sphere) (arg1 vector) (arg2 float)) "Set the position of the sphere from arg1 and the radius from arg2" (set! (-> arg0 quad) (-> arg1 quad)) - (set! (-> arg0 w) arg2) + (set! (-> arg0 r) arg2) arg0 ) @@ -1640,7 +1628,8 @@ 0.0 ) ((>= -1.0 f0-1) - 0.017257283 ;; what is this value?? this should be 180 degrees. + ;; og:preserve-this what is this value?? this should be 180 degrees. + 0.017257283 ) (else (acos f0-1) @@ -1648,7 +1637,3 @@ ) ) ) - - - - diff --git a/goal_src/jak2/engine/nav/nav-enemy.gc b/goal_src/jak2/engine/nav/nav-enemy.gc index 851b0809b2..0f0f337212 100644 --- a/goal_src/jak2/engine/nav/nav-enemy.gc +++ b/goal_src/jak2/engine/nav/nav-enemy.gc @@ -146,65 +146,63 @@ ;; WARN: Return type mismatch vector vs symbol. (defmethod enemy-method-100 nav-enemy ((obj nav-enemy)) (local-vars (v0-1 vector)) - (with-pp - (when (not (-> obj enemy-info move-to-ground)) - (enemy-method-103 obj) - (return (the-as symbol #f)) - ) - (when (not (logtest? (enemy-flag directed) (-> obj enemy-flags))) - (let ((s5-0 (-> obj root))) - (if (focus-test? obj under-water) - (enemy-method-47 obj (-> s5-0 transv)) - (+! (-> s5-0 transv y) (* (-> obj enemy-info movement-gravity) (-> pp clock seconds-per-frame))) - ) - (let ((a2-0 (new 'stack-no-clear 'move-above-ground-params))) - (let ((v1-16 (-> obj enemy-info))) - (set! (-> a2-0 gnd-collide-with) (-> v1-16 recover-gnd-collide-with)) - (set! (-> a2-0 popup) 8192.0) - (set! (-> a2-0 dont-move-if-overlaps?) #t) - (set! (-> a2-0 hover-if-no-ground?) (-> v1-16 hover-if-no-ground)) - (set! (-> a2-0 overlaps-params options) (overlaps-others-options oo0 oo2)) - (set! (-> a2-0 overlaps-params collide-with-filter) (-> v1-16 overlaps-others-collide-with-filter)) - ) - (set! (-> a2-0 overlaps-params tlist) *touching-list*) - (-> a2-0 overlaps-params) - (enemy-method-128 obj (-> s5-0 transv) a2-0) + (when (not (-> obj enemy-info move-to-ground)) + (enemy-method-103 obj) + (return (the-as symbol #f)) + ) + (when (not (logtest? (enemy-flag directed) (-> obj enemy-flags))) + (let ((s5-0 (-> obj root))) + (if (focus-test? obj under-water) + (enemy-method-47 obj (-> s5-0 transv)) + (+! (-> s5-0 transv y) (* (-> obj enemy-info movement-gravity) (seconds-per-frame))) ) + (let ((a2-0 (new 'stack-no-clear 'move-above-ground-params))) + (let ((v1-16 (-> obj enemy-info))) + (set! (-> a2-0 gnd-collide-with) (-> v1-16 recover-gnd-collide-with)) + (set! (-> a2-0 popup) 8192.0) + (set! (-> a2-0 dont-move-if-overlaps?) #t) + (set! (-> a2-0 hover-if-no-ground?) (-> v1-16 hover-if-no-ground)) + (set! (-> a2-0 overlaps-params options) (overlaps-others-options oo0 oo2)) + (set! (-> a2-0 overlaps-params collide-with-filter) (-> v1-16 overlaps-others-collide-with-filter)) + ) + (set! (-> a2-0 overlaps-params tlist) *touching-list*) + (-> a2-0 overlaps-params) + (enemy-method-128 obj (-> s5-0 transv) a2-0) ) ) - (logclear! (-> obj enemy-flags) (enemy-flag directed)) - (if (and (enemy-method-102 obj) (not (logtest? (-> obj focus-status) (focus-status dead)))) - (kill-prefer-falling obj) - ) - (the-as symbol (when (logtest? (-> obj nav state flags) (nav-state-flag in-mesh)) - (let ((s5-1 (-> obj root)) - (a1-2 (new 'stack-no-clear 'collide-query)) - (s3-0 (new 'stack-no-clear 'vector)) - (s4-0 (new 'stack-no-clear 'vector)) - ) - (set! (-> s3-0 quad) (-> s5-1 gspot-pos quad)) - (set! (-> s4-0 quad) (-> s5-1 gspot-normal quad)) - (cond - ((find-ground s5-1 a1-2 (-> obj enemy-info gnd-collide-with) 8192.0 81920.0 1024.0) - (let ((f0-4 (- (-> s5-1 trans y) (-> s5-1 gspot-pos y)))) - (when (>= 409.6 (fabs f0-4)) - (enemy-method-103 obj) - (return (the-as symbol #f)) - v0-1 - ) + ) + (logclear! (-> obj enemy-flags) (enemy-flag directed)) + (if (and (enemy-method-102 obj) (not (logtest? (-> obj focus-status) (focus-status dead)))) + (kill-prefer-falling obj) + ) + (the-as symbol (when (logtest? (-> obj nav state flags) (nav-state-flag in-mesh)) + (let ((s5-1 (-> obj root)) + (a1-2 (new 'stack-no-clear 'collide-query)) + (s3-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> s3-0 quad) (-> s5-1 gspot-pos quad)) + (set! (-> s4-0 quad) (-> s5-1 gspot-normal quad)) + (cond + ((find-ground s5-1 a1-2 (-> obj enemy-info gnd-collide-with) 8192.0 81920.0 1024.0) + (let ((f0-4 (- (-> s5-1 trans y) (-> s5-1 gspot-pos y)))) + (when (>= 409.6 (fabs f0-4)) + (enemy-method-103 obj) + (return (the-as symbol #f)) + v0-1 ) ) - (else - (set! (-> s5-1 gspot-pos quad) (-> s3-0 quad)) - (set! v0-1 (-> s5-1 gspot-normal)) - (set! (-> v0-1 quad) (-> s4-0 quad)) - v0-1 - ) + ) + (else + (set! (-> s5-1 gspot-pos quad) (-> s3-0 quad)) + (set! v0-1 (-> s5-1 gspot-normal)) + (set! (-> v0-1 quad) (-> s4-0 quad)) + v0-1 ) ) ) - ) - ) + ) + ) ) (defmethod track-target! nav-enemy ((self nav-enemy)) @@ -223,6 +221,7 @@ ) ) (when *target* + ;; og:preserve-this target-look-at-me! macro (target-look-at-me! :trans (the-as vector (-> self root root-prim prim-core)) :message (if (logtest? (-> self enemy-flags) (enemy-flag use-notice-distance)) 'attacking @@ -540,7 +539,7 @@ (set! (-> s5-0 y) 0.0) (vector-normalize! s5-0 1.0) - ;; modified for PC, see comment near definition in collide-shape-h.gc + ;; og:preserve-this modified for PC, see comment near definition in collide-shape-h.gc (normalized-heading-to-quaternion! (-> obj root quat) s5-0) ) (quaternion-normalize! (-> obj root quat)) @@ -549,48 +548,46 @@ ) (defmethod nav-enemy-method-143 nav-enemy ((obj nav-enemy) (arg0 nav-control)) - (with-pp - (let ((v1-0 (new 'stack-no-clear 'vector))) - (let ((a2-0 (-> arg0 state))) - (set! (-> v1-0 quad) (-> a2-0 velocity quad)) - ) - (let ((a0-3 (-> obj root transv))) - (set! (-> a0-3 x) (-> v1-0 x)) - (set! (-> a0-3 z) (-> v1-0 z)) - ) + (let ((v1-0 (new 'stack-no-clear 'vector))) + (let ((a2-0 (-> arg0 state))) + (set! (-> v1-0 quad) (-> a2-0 velocity quad)) ) - (cond - ((-> obj enemy-info move-to-ground) - (if (focus-test? obj under-water) - (enemy-method-47 obj (-> obj root transv)) - (+! (-> obj root transv y) (* (-> obj enemy-info movement-gravity) (-> pp clock seconds-per-frame))) - ) - (let ((a2-3 (new 'stack-no-clear 'move-above-ground-params))) - (let ((v1-14 (-> obj enemy-info))) - (set! (-> a2-3 gnd-collide-with) (the-as collide-spec (-> obj gnd-collide))) - (set! (-> a2-3 popup) 8192.0) - (set! (-> a2-3 dont-move-if-overlaps?) #t) - (set! (-> a2-3 hover-if-no-ground?) (-> v1-14 hover-if-no-ground)) - (set! (-> a2-3 overlaps-params options) (overlaps-others-options oo0 oo2)) - (set! (-> a2-3 overlaps-params collide-with-filter) (-> v1-14 overlaps-others-collide-with-filter)) - ) - (set! (-> a2-3 overlaps-params tlist) *touching-list*) - (-> a2-3 overlaps-params) - (enemy-method-128 obj (-> obj root transv) a2-3) - ) - ) - (else - (let ((a2-4 (new 'stack-no-clear 'overlaps-others-params))) - (set! (-> a2-4 options) (overlaps-others-options oo0)) - (set! (-> a2-4 collide-with-filter) (-> obj enemy-info overlaps-others-collide-with-filter)) - (set! (-> a2-4 tlist) *touching-list*) - (integrate-for-enemy-no-mtg (-> obj root) (-> obj root transv) a2-4) - ) - ) + (let ((a0-3 (-> obj root transv))) + (set! (-> a0-3 x) (-> v1-0 x)) + (set! (-> a0-3 z) (-> v1-0 z)) ) - 0 - (none) ) + (cond + ((-> obj enemy-info move-to-ground) + (if (focus-test? obj under-water) + (enemy-method-47 obj (-> obj root transv)) + (+! (-> obj root transv y) (* (-> obj enemy-info movement-gravity) (seconds-per-frame))) + ) + (let ((a2-3 (new 'stack-no-clear 'move-above-ground-params))) + (let ((v1-14 (-> obj enemy-info))) + (set! (-> a2-3 gnd-collide-with) (the-as collide-spec (-> obj gnd-collide))) + (set! (-> a2-3 popup) 8192.0) + (set! (-> a2-3 dont-move-if-overlaps?) #t) + (set! (-> a2-3 hover-if-no-ground?) (-> v1-14 hover-if-no-ground)) + (set! (-> a2-3 overlaps-params options) (overlaps-others-options oo0 oo2)) + (set! (-> a2-3 overlaps-params collide-with-filter) (-> v1-14 overlaps-others-collide-with-filter)) + ) + (set! (-> a2-3 overlaps-params tlist) *touching-list*) + (-> a2-3 overlaps-params) + (enemy-method-128 obj (-> obj root transv) a2-3) + ) + ) + (else + (let ((a2-4 (new 'stack-no-clear 'overlaps-others-params))) + (set! (-> a2-4 options) (overlaps-others-options oo0)) + (set! (-> a2-4 collide-with-filter) (-> obj enemy-info overlaps-others-collide-with-filter)) + (set! (-> a2-4 tlist) *touching-list*) + (integrate-for-enemy-no-mtg (-> obj root) (-> obj root transv) a2-4) + ) + ) + ) + 0 + (none) ) (define *nav-enemy-null-callback-info* (new 'static 'nav-callback-info)) @@ -1536,7 +1533,7 @@ This commonly includes things such as: (defbehavior nav-enemy-debug-control-post nav-enemy () (let ((gp-0 *nav-enemy-debug-control-info*)) (let ((f30-0 (analog-input (the-as int (-> *cpad-list* cpads 0 leftx)) 128.0 48.0 110.0 -1.0))) - (seek! (-> gp-0 steering) (fmax -1.0 (fmin 1.0 f30-0)) (-> self clock seconds-per-frame)) + (seek! (-> gp-0 steering) (fmax -1.0 (fmin 1.0 f30-0)) (seconds-per-frame)) (if (cpad-hold? 0 x) (set! (-> gp-0 throttle) 1.0) (set! (-> gp-0 throttle) 0.0) diff --git a/goal_src/jak2/engine/nav/nav-mesh.gc b/goal_src/jak2/engine/nav/nav-mesh.gc index 3ffeb2e839..0b6a687b4c 100644 --- a/goal_src/jak2/engine/nav/nav-mesh.gc +++ b/goal_src/jak2/engine/nav/nav-mesh.gc @@ -425,7 +425,7 @@ (gp-0 (let ((v1-0 arg0)) (.lvf vf1 (&-> arg2 quad)) - (let ((f0-0 (-> pp clock seconds-per-frame))) + (let ((f0-0 (seconds-per-frame))) (.mov at-0 f0-0) ) (.mov vf2 at-0) @@ -971,6 +971,7 @@ (defmethod lay-out-spad-memory nav-engine ((obj nav-engine) (arg0 nav-mesh)) (let ((s5-0 0)) + ;; og:preserve-this scratchpad (set! (-> obj spr-addr) (scratchpad-object uint :offset #x60)) (let* ((v1-1 obj) (a1-1 320) @@ -1381,6 +1382,7 @@ (reloc-ptrs-to-mem obj (the-as nav-engine-spr-buffer gp-0)) (dotimes (s4-0 (-> (the-as (inline-array nav-engine-spr-buffer) gp-0) 0 nav-count)) (let ((a2-1 (-> (the-as (inline-array nav-engine-spr-buffer) gp-0) 0 spr-addr s4-0 state mesh))) + ;; og:preserve-this scratchpad (when (in-scratchpad? a2-1) (format 0 "nav-engine::update-nav-controls-in-spr: (pre-dma) bad mesh pointer found (#x0~x)~%" a2-1) (break!) @@ -1392,6 +1394,7 @@ (dma-sync (the-as pointer #x1000d000) 0 0) (dotimes (s5-1 (-> (the-as (inline-array nav-engine-spr-buffer) gp-0) 0 nav-count)) (let ((a2-3 (-> (&+ (-> (the-as nav-engine-spr-buffer gp-0) mem-addr) (* 288 s5-1)) 31))) + ;; og:preserve-this scratchpad (when (in-scratchpad? a2-3) (format 0 "nav-engine::update-nav-controls-in-spr: (post-dma) bad mesh pointer found (#x0~x)~%" a2-3) (break!) @@ -1415,6 +1418,7 @@ (the-as none sp-0) (set! sp-0 #x70003fc0) (set! (-> obj work mesh) obj) + ;; og:preserve-this scratchpad (let ((s4-0 (scratchpad-object nav-engine))) (lay-out-spad-memory s4-0 obj) (add-all-spheres s4-0) @@ -1607,6 +1611,7 @@ (s0-0 (-> s4-0 0)) ) (b! (zero? s0-0) cfg-17 :delay (nop!)) + ;; og:preserve-this (label cfg-2) (let ((v1-2 (logand s0-0 1))) (nop!) @@ -1629,6 +1634,7 @@ ) ) (label cfg-16) + ;; og:preserve-this (set! s0-0 (the-as uint (/ (the-as int s0-0) 2))) (nop!) (b! (nonzero? s0-0) cfg-2 :delay (set! s1-0 (+ s1-0 1))) @@ -1929,6 +1935,7 @@ (s0-0 (-> s3-0 0)) ) (b! (zero? s0-0) cfg-17 :delay (nop!)) + ;; og:preserve-this (label cfg-2) (let ((v1-3 (logand s0-0 1))) (nop!) @@ -1955,6 +1962,7 @@ (b! #t cfg-38 :delay (nop!)) (nop!) (label cfg-16) + ;; og:preserve-this cast (set! s0-0 (the-as uint (/ (the-as int s0-0) 2))) (nop!) (b! (nonzero? s0-0) cfg-2 :delay (set! s1-0 (+ s1-0 1))) @@ -1978,6 +1986,7 @@ (s0-1 (-> s3-1 0)) ) (b! (zero? s0-1) cfg-34 :delay (nop!)) + ;; og:preserve-this (label cfg-20) (let ((v1-19 (logand s0-1 1))) (nop!) @@ -2001,6 +2010,7 @@ ) ) (label cfg-33) + ;; og:preserve-this cast (set! s0-1 (the-as uint (/ (the-as int s0-1) 2))) (nop!) (b! (nonzero? s0-1) cfg-20 :delay (set! s1-1 (+ s1-1 1))) @@ -2589,6 +2599,7 @@ (s0-0 (-> s3-0 0)) ) (b! (zero? s0-0) cfg-14 :delay (nop!)) + ;; og:preserve-this (label cfg-2) (let ((v1-5 (logand s0-0 1))) (nop!) @@ -2615,6 +2626,7 @@ (nop!) ) (label cfg-13) + ;; og:preserve-this cast (set! s0-0 (the-as uint (/ (the-as int s0-0) 2))) (nop!) (b! (nonzero? s0-0) cfg-2 :delay (set! s1-0 (+ s1-0 1))) diff --git a/goal_src/jak2/engine/physics/rigid-body-queue.gc b/goal_src/jak2/engine/physics/rigid-body-queue.gc index 19a4bbfd44..8dd648b37c 100644 --- a/goal_src/jak2/engine/physics/rigid-body-queue.gc +++ b/goal_src/jak2/engine/physics/rigid-body-queue.gc @@ -40,7 +40,7 @@ (defmethod rigid-body-queue-method-10 rigid-body-queue ((obj rigid-body-queue)) (local-vars (s4-0 process)) (with-pp - (let ((f0-0 (-> pp clock seconds-per-frame)) + (let ((f0-0 (seconds-per-frame)) (v1-1 (-> obj count)) ) (b! #t cfg-9 :delay (nop!)) diff --git a/goal_src/jak2/engine/physics/rigid-body.gc b/goal_src/jak2/engine/physics/rigid-body.gc index 38894e2a9a..8e307ff56b 100644 --- a/goal_src/jak2/engine/physics/rigid-body.gc +++ b/goal_src/jak2/engine/physics/rigid-body.gc @@ -906,12 +906,10 @@ ) (defmethod rigid-body-object-method-30 rigid-body-object ((obj rigid-body-object)) - (with-pp - (rigid-body-control-method-10 (-> obj rbody) obj (-> pp clock seconds-per-frame) (-> obj max-time-step)) - (logclear! (-> obj flags) (rigid-body-object-flag player-impulse-force player-contact-force)) - 0 - (none) - ) + (rigid-body-control-method-10 (-> obj rbody) obj (seconds-per-frame) (-> obj max-time-step)) + (logclear! (-> obj flags) (rigid-body-object-flag player-impulse-force player-contact-force)) + 0 + (none) ) (defmethod rigid-body-object-method-51 rigid-body-object ((obj rigid-body-object)) diff --git a/goal_src/jak2/engine/process-drawable/process-drawable.gc b/goal_src/jak2/engine/process-drawable/process-drawable.gc index 3c26311485..c4c6a56148 100644 --- a/goal_src/jak2/engine/process-drawable/process-drawable.gc +++ b/goal_src/jak2/engine/process-drawable/process-drawable.gc @@ -91,7 +91,7 @@ (.lvf vf2 (&-> (-> arg1 bone) transform trans quad)) (.div.vf Q vf0 vf2 :fsf #b11 :ftf #b11) - ;; ADDED (also added in jak1) + ;; og:preserve-this ADDED (also added in jak1) ;; there's a bug in swamp-blimp where they vector<-cspace! ;; on some default-initialized-to-zero bones ;; we have to return 0s for this to avoid NaNs getting everywhere. @@ -260,6 +260,7 @@ ) (defmethod setup-masks draw-control ((obj draw-control) (arg0 int) (arg1 int)) + "TODO - use the enum types" (local-vars (v1-4 int) (a2-1 (array uint64))) (let ((a1-2 (logior (logclear (-> obj seg-mask) arg0) arg1))) (set! (-> obj seg-mask) a1-2) @@ -416,8 +417,10 @@ (+ s1-0 1) (let ((s5-0 pp)) (set! pp (-> obj process)) + ;; og:preserve-this scratchpad ((-> arg1 generate-frame-function) (the-as joint-anim-frame (+ 2400 (scratchpad-object int))) s1-0 arg1) (if (-> arg1 prebind-function) + ;; og:preserve-this scratchpad ((-> arg1 prebind-function) (the-as joint-anim-frame (+ 2400 (scratchpad-object int))) s1-0 arg1) ) (dotimes (s1-1 1) @@ -431,6 +434,7 @@ ) (dotimes (s1-2 2) (let* ((a0-11 (-> arg0 data (+ s1-2 1))) + ;; og:preserve-this scratchpad (a1-7 (+ (* s1-2 64) 2400 (scratchpad-object int))) (t9-4 (-> a0-11 param0)) ) @@ -442,6 +446,7 @@ (let ((s1-3 3)) (dotimes (s0-0 s2-0) (let ((a0-12 (-> arg0 data (+ s0-0 s1-3))) + ;; og:preserve-this scratchpad (a1-9 (+ (* 48 s0-0) 2528 (scratchpad-object int))) ) (if (-> a0-12 param0) @@ -468,6 +473,7 @@ ) ) ) + ;; og:preserve-this (#when PC_PORT (when *debug-segment* (if *display-bones* (draw-bone-lines (the-as process-drawable (-> obj process)))) @@ -598,7 +604,8 @@ ) ) :code (behavior ((arg0 string)) - (format 0 "ART ERROR: ~A for ~A~%" arg0 self) + ;; og:preserve-this + (format 0 "ART ERROR: ~A for ~A~%" arg0 self) (if (-> self entity) (logior! (-> self entity extra perm status) (entity-perm-status error)) ) @@ -672,11 +679,7 @@ ) (set! sv-16 (-> s1-0 data (-> arg1 jgeo))) (set! sv-20 (-> s1-0 length)) - (when (or (< (the-as int (-> arg1 jgeo)) 0) - (>= (the-as int (-> arg1 jgeo)) sv-20) - (not sv-16) - (!= (-> sv-16 type) art-joint-geo) - ) + (when (or (< (-> arg1 jgeo) 0) (>= (-> arg1 jgeo) sv-20) (not sv-16) (!= (-> sv-16 type) art-joint-geo)) (go process-drawable-art-error "joint-geo") (set! s2-0 (the-as draw-control #f)) (goto cfg-50) @@ -852,9 +855,8 @@ (set-vector! s2-0 0.0 0.0 0.0 1.0) ) (when (logtest? arg0 (align-opts adjust-x-vel)) - (set! (-> a1-5 x) (+ (* (-> arg1 trans x) (-> arg2 x) (-> pp clock frames-per-second)) - (* (-> s2-0 x) (-> pp clock seconds-per-frame)) - ) + (set! (-> a1-5 x) + (+ (* (-> arg1 trans x) (-> arg2 x) (-> pp clock frames-per-second)) (* (-> s2-0 x) (seconds-per-frame))) ) (if (not (logtest? arg0 (align-opts adjust-xz-vel keep-other-velocities))) (set! (-> a1-5 z) 0.0) @@ -863,15 +865,13 @@ (if (and (logtest? arg0 (align-opts adjust-y-vel)) (not (and (logtest? arg0 (align-opts ignore-y-if-zero)) (= (-> arg1 trans y) 0.0))) ) - (set! (-> a1-5 y) (+ (* (-> arg1 trans y) (-> arg2 y) (-> pp clock frames-per-second)) - (* (-> s2-0 y) (-> pp clock seconds-per-frame)) - ) + (set! (-> a1-5 y) + (+ (* (-> arg1 trans y) (-> arg2 y) (-> pp clock frames-per-second)) (* (-> s2-0 y) (seconds-per-frame))) ) ) (when (logtest? arg0 (align-opts adjust-xz-vel)) - (set! (-> a1-5 z) (+ (* (-> arg1 trans z) (-> arg2 z) (-> pp clock frames-per-second)) - (* (-> s2-0 z) (-> pp clock seconds-per-frame)) - ) + (set! (-> a1-5 z) + (+ (* (-> arg1 trans z) (-> arg2 z) (-> pp clock frames-per-second)) (* (-> s2-0 z) (seconds-per-frame))) ) (if (not (logtest? arg0 (align-opts adjust-x-vel keep-other-velocities))) (set! (-> a1-5 x) 0.0) @@ -1208,6 +1208,7 @@ (let ((s2-0 (-> s3-0 frame-group))) (when (not (and s2-0 (nonzero? s2-0) (= (logand (the-as int s2-0) 7) 4) (= (-> s2-0 type) art-joint-anim))) (go process-drawable-art-error "joint-anim") + ;; og:preserve-this (abandon-thread) 0 ) @@ -1274,6 +1275,7 @@ (let ((s0-0 (-> s1-0 frame-group))) (when (not (and s0-0 (nonzero? s0-0) (= (logand (the-as int s0-0) 7) 4) (= (-> s0-0 type) art-joint-anim))) (go process-drawable-art-error "joint-anim") + ;; og:preserve-this (abandon-thread) 0 ) @@ -1490,7 +1492,7 @@ (cond ((= (-> obj interp) 0.0) (when s5-0 - (seek! (-> s5-0 frame-interp 1) 0.0 (* 8.0 (-> pp clock seconds-per-frame))) + (seek! (-> s5-0 frame-interp 1) 0.0 (* 8.0 (seconds-per-frame))) (if s3-0 (set! (-> s3-0 frame-interp 1) (fmin (-> s3-0 frame-interp 1) (-> s5-0 frame-interp 1))) ) diff --git a/goal_src/jak2/engine/scene/scene.gc b/goal_src/jak2/engine/scene/scene.gc index 3c135a381d..5a4f303fa4 100644 --- a/goal_src/jak2/engine/scene/scene.gc +++ b/goal_src/jak2/engine/scene/scene.gc @@ -584,6 +584,7 @@ ) ) +;; og:preserve-this (defun pc-upload-subtitle-texture ((dma-buf dma-buffer) (image-data pointer) (clut-data pointer) (width int) (height int) (tbp int) (cbp int)) "Added PC-port function to send a mt4 texture." (pc-texture-anim-flag start-anim-array dma-buf) @@ -625,6 +626,7 @@ (with-dma-buffer-add-bucket ((s3-0 (-> *display* frames (-> *display* on-screen) global-buf)) (bucket-id subtitle) ) + ;; og:preserve-this ;; (upload-vram-data s3-0 0 (-> arg0 palette) 2 8) (let ((s0-0 20)) (pc-upload-subtitle-texture @@ -656,7 +658,7 @@ (test-1 (new 'static 'gs-test :ate #x1 :afail #x3 :zte #x1 :ztst (gs-ztest always))) (alpha-1 (new 'static 'gs-alpha :b #x1 :d #x1)) (tex0-1 (new 'static 'gs-tex0 :tbp0 #x1 :tcc #x1 :cld #x1 :psm s0-0 :th v1-17 :tw sv-32 :tbw (shr gp-0 6))) - ;; added texture filtering for PC-port here: + ;; og:preserve-this added texture filtering for PC port here: (tex1-1 (new 'static 'gs-tex1 :mmag 1 :mmin 1)) (clamp-1 (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp))) (texflush 0) @@ -671,6 +673,7 @@ (a0-23 (+ a2-23 (-> arg0 width))) (a1-33 (+ a3-8 (-> arg0 height))) ) + ;; og:preserve-this (#when PC_PORT (when (not (-> *pc-settings* use-vis?)) (let ((corrected-width (the int (* (-> *pc-settings* aspect-ratio-reciprocal) (-> arg0 width))))) @@ -696,6 +699,7 @@ (a0-30 (+ a1-38 (-> arg0 width))) (a2-28 (+ a3-11 (-> arg0 height))) ) + ;; og:preserve-this (#when PC_PORT (when (not (-> *pc-settings* use-vis?)) (let ((corrected-width (the int (* (-> *pc-settings* aspect-ratio-reciprocal) (-> arg0 width))))) @@ -726,7 +730,7 @@ ) (let ((v1-9 (-> self skel root-channel 0 frame-group))) (when v1-9 - ;; send a movie-no-subtitle message so the pc subtitle system at least knows there's a movie playing + ;; og:preserve-this send a movie-no-subtitle message so the pc subtitle system at least knows there's a movie playing (#when PC_PORT (if (= (-> self type) scene-player) (send-event (ppointer->process *subtitle2*) 'movie-no-subtitle (-> (the scene-player self) anim name) #f (ja-aframe-num 0)))) @@ -735,6 +739,7 @@ (let ((f30-0 (ja-aframe-num 0)) (s5-0 (the-as int (-> *setting-control* user-current subtitle-language))) ) + ;; og:preserve-this constant (if (and (= (the-as language-enum s5-0) (language-enum english)) (= (scf-get-territory) GAME_TERRITORY_SCEE)) (set! s5-0 7) ) @@ -773,6 +778,7 @@ (+! (-> s2-0 origin y) 1.0) (set! (-> s2-0 color) (font-color default)) (set! (-> s2-0 flags) (font-flags shadow kerning middle left large)) + ;; og:preserve-this (#if PC_PORT (if (or (!= (-> self type) scene-player) (not (send-event (ppointer->process *subtitle2*) 'movie (-> (the scene-player self) anim name) s3-0 f30-0))) @@ -1045,7 +1051,7 @@ *screen-filter* (new 'static 'vector) (new 'static 'vector :w 128.0) - (* 30.0 (-> self clock seconds-per-frame)) + (* 30.0 (seconds-per-frame)) (bucket-id screen-filter) ) (let ((gp-0 (current-time))) @@ -1501,10 +1507,7 @@ ) (else (set! (-> self targ-speed) - (fmax - -10.0 - (fmin 10.0 (+ (-> self targ-speed) (* (-> self speed-change-speed) (-> self clock seconds-per-frame)))) - ) + (fmax -10.0 (fmin 10.0 (+ (-> self targ-speed) (* (-> self speed-change-speed) (seconds-per-frame))))) ) (if (< (- (current-time) (-> self speed-change-time)) (seconds 3)) (format @@ -1549,7 +1552,8 @@ (defbehavior scene-player-init scene-player ((arg0 object) (arg1 symbol) (arg2 string)) "`object` arg can be an `(array scene)`, `pair of scene` or a `scene`" (process-entity-set! self (the-as entity #f)) - (stack-size-set! (-> self main-thread) 768) ;; changed from 512 + ;; og:preserve-this changed from 512 + (stack-size-set! (-> self main-thread) 768) (set! (-> self root) (new 'process 'trsqv)) (case (rtype-of arg0) ((array) diff --git a/goal_src/jak2/engine/target/board/board-states.gc b/goal_src/jak2/engine/target/board/board-states.gc index b29af61c46..d8b0badca5 100644 --- a/goal_src/jak2/engine/target/board/board-states.gc +++ b/goal_src/jak2/engine/target/board/board-states.gc @@ -61,8 +61,8 @@ ) (let ((f0-1 (lerp-scale 1.0 -1.0 f28-0 -32768.0 32768.0))) (if (or (< (fabs f0-1) 0.1) (< (-> self control turn-to-magnitude) 0.3)) - (seek! (-> self board turn-anim-mag) 0.0 (* 8.0 (-> self clock seconds-per-frame))) - (seek! (-> self board turn-anim-mag) f0-1 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self board turn-anim-mag) 0.0 (* 8.0 (seconds-per-frame))) + (seek! (-> self board turn-anim-mag) f0-1 (* 2.0 (seconds-per-frame))) ) ) (set! (-> self board turn-anim-targ) (+ (lerp-scale @@ -106,16 +106,14 @@ ) ) (set! (-> self board turn-anim-duck-vel) (* 0.98 (-> self board turn-anim-duck-vel))) - (+! (-> self board turn-anim-duck-vel) (* -8.0 (-> self clock seconds-per-frame))) + (+! (-> self board turn-anim-duck-vel) (* -8.0 (seconds-per-frame))) (when (and (board-on-ground?) (>= (- (current-time) (-> self board unknown-time-frame02)) (seconds 0.2))) (if (logtest? (-> self control status) (collide-status impact-surface)) (+! (-> self board turn-anim-duck-vel) (lerp-scale 0.0 15.0 (-> self control normal-impact-vel) 0.0 81920.0)) ) (let ((f0-38 (vector-dot (the-as vector (-> self board up-vector)) (-> self board up-vector 1)))) (if (< f0-38 1.0) - (+! (-> self board turn-anim-duck-vel) - (* (lerp-scale 400.0 0.0 f0-38 0.6 1.0) (-> self clock seconds-per-frame)) - ) + (+! (-> self board turn-anim-duck-vel) (* (lerp-scale 400.0 0.0 f0-38 0.6 1.0) (seconds-per-frame))) ) ) ) @@ -188,8 +186,8 @@ (if (not (-> self control danger-mode)) (target-danger-set! 'board-spin #f) ) - ;; pc port note: patched for high fps - (+! (-> self board trotyv) (* (-> self board spin-control) (seconds-per-frame))) + ;; og:preserve-this high fps fix + (+! (-> self board trotyv) (* (-> self board spin-control) (seconds-per-frame-high-fps))) (when (and (< (fabs f28-0) 1092266.6) (< (fabs (-> self board spin-control)) 1092266.6) (< (* 0.9 (fabs (-> self board flip-control))) (fabs f30-0)) @@ -2374,14 +2372,7 @@ (set! (-> *part-id-table* 431 init-specs 1 initial-valuef) (lerp-scale 0.1 2.0 (fabs (-> self board ride-speed)) 0.0 (* 0.3 (-> self control mod-surface transv-max))) ) - (let ((t9-10 sp-launch-particles-var) - (a0-42 *sp-particle-system-2d*) - (a1-12 (-> *part-id-table* 431)) - (a2-9 *launch-matrix*) - ) - (set! (-> a2-9 trans quad) (-> gp-1 quad)) - (t9-10 a0-42 a1-12 a2-9 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 431) gp-1) ) ) (none) @@ -2487,7 +2478,7 @@ (-> self control transv) (-> self control transv) (-> self control dynam gravity-normal) - (* 122880.0 (-> self clock seconds-per-frame)) + (* 122880.0 (seconds-per-frame)) ) ) (when (jump-hit-ground-stuck?) @@ -2791,7 +2782,7 @@ :post (behavior () (set! (-> self control bend-speed) 0.0) (set! (-> self control bend-target) 0.0) - (vector-seek! (-> self control draw-offset) *null-vector* (* 16384.0 (-> self clock seconds-per-frame))) + (vector-seek! (-> self control draw-offset) *null-vector* (* 16384.0 (seconds-per-frame))) (target-no-move-post) (target-board-effect) (none) @@ -2989,7 +2980,7 @@ :post (behavior () (set! (-> self control bend-speed) 0.0) (set! (-> self control bend-target) 0.0) - (vector-seek! (-> self control draw-offset) *null-vector* (* 16384.0 (-> self clock seconds-per-frame))) + (vector-seek! (-> self control draw-offset) *null-vector* (* 16384.0 (seconds-per-frame))) (target-post) (target-board-effect) (none) diff --git a/goal_src/jak2/engine/target/board/target-board.gc b/goal_src/jak2/engine/target/board/target-board.gc index 9f682070b2..8c2ef5e0f0 100644 --- a/goal_src/jak2/engine/target/board/target-board.gc +++ b/goal_src/jak2/engine/target/board/target-board.gc @@ -393,7 +393,7 @@ (case arg3 ((1) (when (!= (-> *cpad-list* cpads (-> self control cpad number) stick0-speed) 0.0) - (let* ((f30-0 (* 122880.0 (-> self control turn-to-magnitude) (-> self clock seconds-per-frame))) + (let* ((f30-0 (* 122880.0 (-> self control turn-to-magnitude) (seconds-per-frame))) (a2-1 (-> self board ride-dir)) (v1-12 (vector-flatten! (new 'stack-no-clear 'vector) (-> self control to-target-pt-xz) a2-1)) ) @@ -686,12 +686,7 @@ ) 1.0 ) - (vector+float*! - s5-1 - (-> self control trans) - (-> self control c-R-w vector 2) - (* 40960.0 (-> self clock seconds-per-frame)) - ) + (vector+float*! s5-1 (-> self control trans) (-> self control c-R-w vector 2) (* 40960.0 (seconds-per-frame))) (let* ((t9-8 vector-segment-overlap) (a1-8 (-> gp-1 world-vertex)) (a2-3 (-> gp-1 world-vertex 1)) @@ -1069,14 +1064,11 @@ ) (when (not (or (= (-> self control current-surface vel-turn) 0.0) (< (-> gp-0 z) 0.0))) (let ((f0-22 (atan (-> gp-0 x) (-> gp-0 z)))) - (vector-rotate-y! - gp-0 - gp-0 - (fmin - (* 0.03 (-> self clock time-adjust-ratio) (- f0-22)) - (* (-> self control current-surface vel-turn) (-> self clock seconds-per-frame)) - ) - ) + (vector-rotate-y! gp-0 gp-0 (fmin + (* 0.03 (-> self clock time-adjust-ratio) (- f0-22)) + (* (-> self control current-surface vel-turn) (seconds-per-frame)) + ) + ) ) ) (let* ((f0-28 (* f30-0 (-> self board thrust-scale) (lerp-scale 0.4 1.0 f28-0 0.3 1.0))) @@ -1109,9 +1101,9 @@ ) ) ) - (+! (-> gp-0 z) (* f0-28 (-> self clock seconds-per-frame))) + (+! (-> gp-0 z) (* f0-28 (seconds-per-frame))) (when (!= f1-23 0.0) - (let ((f0-33 (- 1.0 (/ (* f30-0 (-> self clock seconds-per-frame)) f1-23)))) + (let ((f0-33 (- 1.0 (/ (* f30-0 (seconds-per-frame)) f1-23)))) (set! (-> gp-0 x) (* (-> gp-0 x) f0-33)) (set! (-> gp-0 z) (* (-> gp-0 z) f0-33)) ) @@ -1236,17 +1228,17 @@ ) ) (if (board-on-ground?) - (seek! (-> self board sound-air-knob) 0.0 (* 16.0 (-> self clock seconds-per-frame))) + (seek! (-> self board sound-air-knob) 0.0 (* 16.0 (seconds-per-frame))) (seek! (-> self board sound-air-knob) (lerp-scale 0.0 1.0 (target-height-above-ground) 409.6 28672.0) - (* 2.0 (-> self clock seconds-per-frame)) + (* 2.0 (seconds-per-frame)) ) ) (let ((f30-0 (fabs (/ (-> self board turn-anim-frame) (-> *TARGET_BOARD-bank* turn-frames))))) (seek! (-> self board sound-bank-knob) f30-0 (if (< (-> self board sound-bank-knob) f30-0) - (* 0.5 (-> self clock seconds-per-frame)) - (-> self clock seconds-per-frame) + (* 0.5 (seconds-per-frame)) + (seconds-per-frame) ) ) (set! (-> self board engine-sound-volume) (lerp-scale 0.8 1.0 f30-0 0.0 1.0)) @@ -1298,12 +1290,12 @@ (seek! (-> self board spin-sound-volume) (lerp-scale 0.0 1.0 (fabs (-> self board trotyv)) 0.0 91022.22) - (* 8.0 (-> self clock seconds-per-frame)) + (* 8.0 (seconds-per-frame)) ) (seek! (-> self board spin-sound-pitch) (lerp-scale 0.0 0.3 (fabs (-> self board trotyv)) 36408.89 91022.22) - (-> self clock seconds-per-frame) + (seconds-per-frame) ) (when *sound-player-enable* (let ((v1-89 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) @@ -1324,17 +1316,14 @@ ) (when (= (-> self board upper-body mode) (joint-mod-mode rotate)) (set! (-> self board upper-body-rotyv) - (* 0.95 - (fmax - (fmin (-> self board upper-body-rotyv) (-> self board upper-body-rotyv-max)) - (- (-> self board upper-body-rotyv-max)) - ) + (* 0.95 (fmax + (fmin (-> self board upper-body-rotyv) (-> self board upper-body-rotyv-max)) + (- (-> self board upper-body-rotyv-max)) + ) ) ) - (+! (-> self board upper-body-rotyv) - (* -10.0 (-> self clock seconds-per-frame) (-> self board upper-body-roty)) - ) - (let ((f1-21 (* (-> self board upper-body-rotyv) (-> self clock seconds-per-frame))) + (+! (-> self board upper-body-rotyv) (* -10.0 (seconds-per-frame) (-> self board upper-body-roty))) + (let ((f1-21 (* (-> self board upper-body-rotyv) (seconds-per-frame))) (f0-65 (-> self board upper-body-roty)) ) (+! (-> self board upper-body-roty) f1-21) @@ -1373,9 +1362,9 @@ (set! (-> self board up-vector 1 quad) (-> self board up-vector 0 quad)) ) (+! (-> self board shock-offsetv) - (+ (* -10.0 (-> self clock seconds-per-frame) (-> self board shock-offset)) + (+ (* -10.0 (seconds-per-frame) (-> self board shock-offset)) (if (board-on-ground?) - (* (-> self control dynam gravity-length) (-> self clock seconds-per-frame) f30-0) + (* (-> self control dynam gravity-length) (seconds-per-frame) f30-0) 0.0 ) ) @@ -1391,7 +1380,7 @@ ) (!= (-> self control mod-surface mode) 'air) ) - (+! (-> self board shock-offset) (* (-> self board shock-offsetv) (-> self clock seconds-per-frame))) + (+! (-> self board shock-offset) (* (-> self board shock-offsetv) (seconds-per-frame))) ) ) (set! (-> self board shock-offset) @@ -1766,7 +1755,7 @@ (or (= v1-126 'target-board-trickx) (= v1-126 'target-board-hold)) ) ) - (seek! (-> self control dynam gravity-length) 245760.0 (* 30.0 (-> self clock seconds-per-frame))) + (seek! (-> self control dynam gravity-length) 245760.0 (* 30.0 (seconds-per-frame))) ) ((= (-> self control mod-surface name) 'spin) (set! (-> self control dynam gravity-length) @@ -1789,7 +1778,7 @@ (set! (-> self control dynam gravity-length) 245760.0) ) ((>= (- (current-time) (-> self control last-time-on-surface)) (seconds 0.1)) - (seek! (-> self control dynam gravity-length) 245760.0 (* 245760.0 (-> self clock seconds-per-frame))) + (seek! (-> self control dynam gravity-length) 245760.0 (* 245760.0 (seconds-per-frame))) ) (else (set! (-> self control dynam gravity-length) 81920.0) @@ -1983,12 +1972,12 @@ (set! (-> self board trotyv) (* 0.95 (fmax (fmin (-> self board trotyv) (-> self board trotyv-max)) (- (-> self board trotyv-max)))) ) - (let ((f0-15 (* (-> self board trotyv) (-> self clock seconds-per-frame)))) + (let ((f0-15 (* (-> self board trotyv) (seconds-per-frame)))) (set! (-> self board troty) (the float (sar (shl (the int (+ (-> self board troty) f0-15)) 48) 48))) (set! (-> self board unknown-deg00) (-> self board troty-cum)) (+! (-> self board troty-cum) f0-15) ) - (seek! (-> self board trotyv-max) 91022.22 (* 91022.22 (-> self clock seconds-per-frame))) + (seek! (-> self board trotyv-max) 91022.22 (* 91022.22 (seconds-per-frame))) (mode-set! (-> self board main) (joint-mod-mode rotate)) (twist-set! (-> self board main) (the-as float #f) (-> self board troty) (the-as float #f)) (mode-set! (-> self board board 0 main) (joint-mod-mode rotate)) @@ -2067,7 +2056,7 @@ (pre-collide-setup) (cond ((and (-> self next-state) (= (-> self next-state name) 'target-board-get-off)) - (seek! (-> self board cushion-offset) 0.0 (* 20480.0 (-> self clock seconds-per-frame))) + (seek! (-> self board cushion-offset) 0.0 (* 20480.0 (seconds-per-frame))) ) ((and (logtest? (-> self control mod-surface flags) (surface-flag air)) (not (logtest? (-> self control status) (collide-status on-surface))) @@ -2075,22 +2064,18 @@ (seek! (-> self board cushion-offset) (lerp-scale (-> *TARGET_BOARD-bank* cushion) 0.0 (target-height-above-ground) 0.0 12288.0) - (* 20480.0 (-> self clock seconds-per-frame)) + (* 20480.0 (seconds-per-frame)) ) ) ((focus-test? self on-water) (seek! (-> self board cushion-offset) (+ 2048.0 (-> *TARGET_BOARD-bank* cushion)) - (* 20480.0 (-> self clock seconds-per-frame)) + (* 20480.0 (seconds-per-frame)) ) ) (else - (seek! - (-> self board cushion-offset) - (-> *TARGET_BOARD-bank* cushion) - (* 8192.0 (-> self clock seconds-per-frame)) - ) + (seek! (-> self board cushion-offset) (-> *TARGET_BOARD-bank* cushion) (* 8192.0 (seconds-per-frame))) ) ) (target-board-collision) @@ -2212,9 +2197,9 @@ (let* ((f30-0 (deg- (vector-y-angle (-> self board ride-dir)) (-> self board ride-rot-abs 0))) (f30-1 (* f30-0 (lerp-scale 10.0 100.0 (fabs f30-0) 1820.4445 3640.889))) ) - (+! (-> self board ride-rtv-abs) (* f30-1 (-> self clock seconds-per-frame))) + (+! (-> self board ride-rtv-abs) (* f30-1 (seconds-per-frame))) (set! (-> self board ride-rtv-abs) (* 0.9 (-> self board ride-rtv-abs))) - (+! (-> self board ride-rot-abs 0) (* (-> self board ride-rtv-abs) (-> self clock seconds-per-frame))) + (+! (-> self board ride-rot-abs 0) (* (-> self board ride-rtv-abs) (seconds-per-frame))) (when (>= 0.0 (* f30-1 (deg- (vector-y-angle (-> self board ride-dir)) (-> self board ride-rot-abs 0)))) (set! (-> self board ride-rtv-abs) 0.0) (set! (-> self board ride-rot-abs 0) (vector-y-angle (-> self board ride-dir))) @@ -2329,7 +2314,7 @@ (let ((f0-25 (vector-vector-distance (-> self control trans) s4-1))) (when #t (let ((s3-5 (vector-! (new 'stack-no-clear 'vector) s4-1 (-> self control trans)))) - (let ((f1-9 (* 12288.0 (-> self clock seconds-per-frame)))) + (let ((f1-9 (* 12288.0 (seconds-per-frame)))) (if (and (not (-> self board ride-lock-on)) (< f1-9 f0-25)) (vector-normalize! s3-5 f1-9) (set! (-> self board ride-lock-on) #t) @@ -2429,9 +2414,7 @@ (set! sv-768 (the-as int (-> s3-8 best-other-tri pat))) ) (when (and (< (+ (the float (-> self board ride-vertex-length)) (/ 0.0 f28-3)) - (+ (-> self board ride-vertex-index) - (/ (* (-> self board ride-speed) (-> self clock seconds-per-frame)) f28-3) - ) + (+ (-> self board ride-vertex-index) (/ (* (-> self board ride-speed) (seconds-per-frame)) f28-3)) ) (>= f28-3 3686.4) (and (or (>= f26-1 6963.2) (and (>= f26-1 2048.0) (zero? (shr (shl sv-768 54) 61)))) @@ -2446,9 +2429,7 @@ f26-1 sv-768 (+ (-> self board ride-vertex-index) - (/ (* (-> self board ride-speed) (-> self clock seconds-per-frame)) - (vector-length (-> self board ride-segment)) - ) + (/ (* (-> self board ride-speed) (seconds-per-frame)) (vector-length (-> self board ride-segment))) ) (+ (the float (-> self board ride-vertex-length)) (/ 0.0 f28-3)) ) @@ -2568,44 +2549,40 @@ (defbehavior board-ride-add-thrust target ((arg0 vector) (arg1 float)) (let* ((f30-0 (-> self board ride-speed)) - (f0-4 - (lerp-scale - (-> self control current-surface fric) - (* 0.2 (-> self control current-surface fric)) - f30-0 - 0.0 - (-> self control current-surface transv-max) - ) - ) - (f30-1 (seek f30-0 0.0 (* f0-4 (-> self clock seconds-per-frame)))) - (f28-0 (vector-dot (-> self board ride-dir) arg0)) - (f0-19 - (+ f30-1 - (* (if (< 0.0 f28-0) - (* f28-0 - (lerp-scale - (-> self control current-surface target-speed) - 0.0 - (-> self board ride-speed) - 0.0 - (-> self control current-surface transv-max) - ) - arg1 - ) - (* 40960.0 arg1 f28-0) - ) - (-> self clock seconds-per-frame) + (f0-4 (lerp-scale + (-> self control current-surface fric) + (* 0.2 (-> self control current-surface fric)) + f30-0 + 0.0 + (-> self control current-surface transv-max) ) - ) - ) + ) + (f30-1 (seek f30-0 0.0 (* f0-4 (seconds-per-frame)))) + (f28-0 (vector-dot (-> self board ride-dir) arg0)) + (f0-19 (+ f30-1 (* (if (< 0.0 f28-0) + (* f28-0 + (lerp-scale + (-> self control current-surface target-speed) + 0.0 + (-> self board ride-speed) + 0.0 + (-> self control current-surface transv-max) + ) + arg1 + ) + (* 40960.0 arg1 f28-0) + ) + (seconds-per-frame) + ) + ) + ) (v1-21 (-> self control to-target-pt-xz)) (f1-6 (vector-dot (-> self control dynam gravity-normal) v1-21)) - (f0-20 - (if (< f1-6 0.0) - (+ f0-19 (* (- f1-6) (-> self control current-surface slope-down-factor) (-> self clock seconds-per-frame))) - (+ f0-19 (* (- f1-6) (-> self control current-surface slope-up-factor) (-> self clock seconds-per-frame))) - ) - ) + (f0-20 (if (< f1-6 0.0) + (+ f0-19 (* (- f1-6) (-> self control current-surface slope-down-factor) (seconds-per-frame))) + (+ f0-19 (* (- f1-6) (-> self control current-surface slope-up-factor) (seconds-per-frame))) + ) + ) ) (set! (-> self board ride-speed) (fmax 0.0 (fmin f0-20 (-> self control current-surface transv-max)))) ) @@ -2644,9 +2621,7 @@ (set! f0-16 0.0) ) (set! (-> self board ride-lean-targ) f0-16) - (+! (-> self board ride-leanv) - (* 100.0 (-> self clock seconds-per-frame) (- f0-16 (-> self board ride-lean))) - ) + (+! (-> self board ride-leanv) (* 100.0 (seconds-per-frame) (- f0-16 (-> self board ride-lean)))) ) ) ) @@ -2654,9 +2629,9 @@ (seek! (-> self board ride-lean-mag) (fabs (analog-input (the-as int (-> self control cpad leftx)) 128.0 32.0 110.0 1.0)) - (* 2.0 (-> self clock seconds-per-frame)) + (* 2.0 (seconds-per-frame)) ) - (+! (-> self board ride-lean) (* (-> self board ride-leanv) (-> self clock seconds-per-frame))) + (+! (-> self board ride-lean) (* (-> self board ride-leanv) (seconds-per-frame))) (cond ((< (-> self board ride-lean) -1.0) (set! (-> self board ride-lean) -1.0) @@ -2673,7 +2648,7 @@ (target-board-compute-edge) (do-rotations2) (pre-collide-setup) - (seek! (-> self board cushion-offset) 1638.4 (* 16384.0 (-> self clock seconds-per-frame))) + (seek! (-> self board cushion-offset) 1638.4 (* 16384.0 (seconds-per-frame))) (let ((s5-3 (new 'stack-no-clear 'vector))) (set! (-> s5-3 quad) (-> self control transv quad)) (let ((s4-1 (new 'stack-no-clear 'vector))) @@ -2754,7 +2729,7 @@ (-> self board ride-vertex) (-> self board ride-vertex-length) (the-as float s4-1) - (* (-> self board ride-speed) (-> self clock seconds-per-frame)) + (* (-> self board ride-speed) (seconds-per-frame)) ) ) ) @@ -2878,7 +2853,7 @@ 0.0 (* 0.3 (-> self board transv-max)) ) - (-> self clock seconds-per-frame) + (seconds-per-frame) ) ) (set! (-> self board turn-anim-vel) @@ -2892,7 +2867,7 @@ ) ) ) - (+! (-> self board turn-anim-frame) (* (-> self board turn-anim-vel) (-> self clock seconds-per-frame))) + (+! (-> self board turn-anim-frame) (* (-> self board turn-anim-vel) (seconds-per-frame))) (set! (-> self board turn-anim-frame) (fmax (fmin (-> self board turn-anim-frame) (-> *TARGET_BOARD-bank* turn-frames)) @@ -2934,14 +2909,14 @@ (let ((f0-59 (fmin (if (logtest? (-> self control status) (collide-status on-surface)) - (seek (-> self board turn-anim-duck) 0.0 (-> self clock seconds-per-frame)) + (seek (-> self board turn-anim-duck) 0.0 (seconds-per-frame)) (-> self board turn-anim-duck) ) (lerp-scale 0.0 -1.0 (the float (- (current-time) (-> self control last-time-on-surface))) 30.0 120.0) ) ) ) - (+! (-> self board turn-anim-duck) (* (-> self board turn-anim-duck-vel) (-> self clock seconds-per-frame))) + (+! (-> self board turn-anim-duck) (* (-> self board turn-anim-duck-vel) (seconds-per-frame))) (cond ((< (-> self board turn-anim-duck) f0-59) (set! (-> self board turn-anim-duck) f0-59) @@ -2991,6 +2966,7 @@ (let ((t9-4 format) (a0-29 #t) (a1-8 "trick: ~S (~D) ~,,0f") + ;; og:preserve-this (trick-name (enum->string board-tricks arg0))) (t9-4 a0-29 @@ -3000,6 +2976,7 @@ s3-1 ) ) + ;; og:preserve-this jetboard trick tracker (let ((total-points s3-1)) (when (nonzero? (-> obj trick-count)) (format #t " + combo ~,,0f" (-> obj trick-points-array (+ (-> obj trick-count) -1))) @@ -3038,6 +3015,7 @@ ) (send-event (ppointer->process (-> obj process)) 'get-pickup (pickup-type trick-point) f30-0) (sound-play "trick-score") + ;; og:preserve-this (#when PC_PORT (end-combo! *board-trick-tracker*)) ) diff --git a/goal_src/jak2/engine/target/collide-reaction-target.gc b/goal_src/jak2/engine/target/collide-reaction-target.gc index 11b5c5c2ad..788a0897b0 100644 --- a/goal_src/jak2/engine/target/collide-reaction-target.gc +++ b/goal_src/jak2/engine/target/collide-reaction-target.gc @@ -584,11 +584,7 @@ (vector-float*! (new 'stack-no-clear 'vector) (-> self control edge-grab-across-edge-dir) - (seek - (vector-length (-> self control additional-decaying-velocity)) - 40960.0 - (* 81920.0 (-> self clock seconds-per-frame)) - ) + (seek (vector-length (-> self control additional-decaying-velocity)) 40960.0 (* 81920.0 (seconds-per-frame))) ) (seconds 0.3) ) diff --git a/goal_src/jak2/engine/target/gun/gun-blue-shot.gc b/goal_src/jak2/engine/target/gun/gun-blue-shot.gc index 24e4e8061a..64f80a2f7d 100644 --- a/goal_src/jak2/engine/target/gun/gun-blue-shot.gc +++ b/goal_src/jak2/engine/target/gun/gun-blue-shot.gc @@ -86,27 +86,13 @@ (set! (-> s4-1 initial-valuef) (y-angle (-> obj root))) ) ) - (let ((t9-7 sp-launch-particles-var) - (a0-19 *sp-particle-system-2d*) - (a1-9 (-> *part-id-table* 196)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s5-1 quad)) - (t9-7 a0-19 a1-9 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 196) s5-1) (let ((s4-2 (get-field-spec-by-id (-> *part-id-table* 195) (sp-field-id spt-rotate-y)))) (if s4-2 (set! (-> s4-2 initial-valuef) (y-angle (-> obj root))) ) ) - (let ((t9-10 sp-launch-particles-var) - (a0-22 *sp-particle-system-2d*) - (a1-11 (-> *part-id-table* 195)) - (a2-4 *launch-matrix*) - ) - (set! (-> a2-4 trans quad) (-> s5-1 quad)) - (t9-10 a0-22 a1-11 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 195) s5-1) ) 0 (none) diff --git a/goal_src/jak2/engine/target/gun/gun-dark-shot.gc b/goal_src/jak2/engine/target/gun/gun-dark-shot.gc index 9b22aa43c7..156a0b4b1c 100644 --- a/goal_src/jak2/engine/target/gun/gun-dark-shot.gc +++ b/goal_src/jak2/engine/target/gun/gun-dark-shot.gc @@ -532,22 +532,8 @@ 0 40960.0 ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 215)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> self root trans quad)) - (t9-2 a0-3 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 216)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> self root trans quad)) - (t9-3 a0-4 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 215) (-> self root trans)) + (launch-particles (-> *part-id-table* 216) (-> self root trans)) (let ((gp-0 (-> *part-id-table* 430))) (when gp-0 (let ((v1-14 (get-field-spec-by-id gp-0 (sp-field-id spt-timer)))) @@ -667,12 +653,14 @@ (set! (-> gp-1 penetrate-using) (penetrate explode)) (explosion-spawn (the-as process-drawable *default-pool*) explosion gp-1) ) + ;; og:preserve-this stack array -> pointer (let (;(s3-0 (the-as (array collide-shape) (new 'stack 'array collide-shape 16))) (s3-0 (the-as (pointer collide-shape) (new 'stack-no-clear 'array 'collide-shape 16))) (a1-8 (new 'stack-no-clear 'sphere)) ) (set! (-> a1-8 quad) (-> self root trans quad)) (set! (-> a1-8 r) (-> self blast-radius)) + ;; og:preserve-this stack array -> pointer (let ((gp-2 (fill-actor-list-for-sphere *actor-hash* a1-8 s3-0 16))) (let ((s1-0 (the-as process-drawable #f)) (f30-0 4096000.0) diff --git a/goal_src/jak2/engine/target/gun/gun-part.gc b/goal_src/jak2/engine/target/gun/gun-part.gc index 492bdf60bc..d036a09034 100644 --- a/goal_src/jak2/engine/target/gun/gun-part.gc +++ b/goal_src/jak2/engine/target/gun/gun-part.gc @@ -502,22 +502,8 @@ (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg1 omega) (-> arg2 z) 1.0) (set! (-> *part-id-table* 199 init-specs 11 initial-valuef) (-> gp-0 y)) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 199)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 203)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 199) gp-0) + (launch-particles (-> *part-id-table* 203) gp-0) ) ) 0 @@ -529,22 +515,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg1 omega) (-> arg2 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 200)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 203)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 200) gp-0) + (launch-particles (-> *part-id-table* 203) gp-0) ) ) 0 diff --git a/goal_src/jak2/engine/target/gun/gun-red-shot.gc b/goal_src/jak2/engine/target/gun/gun-red-shot.gc index 730d7c6008..902ac69cb2 100644 --- a/goal_src/jak2/engine/target/gun/gun-red-shot.gc +++ b/goal_src/jak2/engine/target/gun/gun-red-shot.gc @@ -59,14 +59,7 @@ ) ) ) - (let ((t9-3 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 190)) - (a2-0 *launch-matrix*) - ) - (set! (-> a2-0 trans quad) (-> gp-0 fire-point quad)) - (t9-3 a0-3 a1-2 a2-0 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 190) (-> gp-0 fire-point)) (let ((s5-2 (new 'stack-no-clear 'vector))) (let ((v1-10 (-> gp-0 fire-point))) (let ((a0-4 (-> gp-0 fire-dir-out))) diff --git a/goal_src/jak2/engine/target/gun/gun-util.gc b/goal_src/jak2/engine/target/gun/gun-util.gc index 03ad2b51ce..68a803720f 100644 --- a/goal_src/jak2/engine/target/gun/gun-util.gc +++ b/goal_src/jak2/engine/target/gun/gun-util.gc @@ -386,7 +386,7 @@ (trs-set! (-> self mag gp-1) (the-as vector #f) (the-as quaternion #f) *zero-vector*) ) (else - (seek! (-> self mag-scale gp-1) 1.0 (* 8.0 (-> self clock seconds-per-frame))) + (seek! (-> self mag-scale gp-1) 1.0 (* 8.0 (seconds-per-frame))) (let* ((f30-0 (-> self mag-scale gp-1)) (s5-3 (-> self mag gp-1)) (s4-2 (method-of-object s5-3 trs-set!)) @@ -979,33 +979,12 @@ (>= (-> obj fire-range) (vector-vector-distance s2-1 s5-0)) ) (vector+! s2-1 s2-1 s1-0) - (let ((t9-5 sp-launch-particles-var) - (a0-31 *sp-particle-system-2d*) - (a1-12 (-> *part-id-table* 185)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s2-1 quad)) - (t9-5 a0-31 a1-12 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-6 sp-launch-particles-var) - (a0-32 *sp-particle-system-2d*) - (a1-13 (-> *part-id-table* 184)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s2-1 quad)) - (t9-6 a0-32 a1-13 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 185) s2-1) + (launch-particles (-> *part-id-table* 184) s2-1) ) (else (vector+! s2-1 s2-1 s1-0) - (let ((t9-7 sp-launch-particles-var) - (a0-35 *sp-particle-system-2d*) - (a1-15 (-> *part-id-table* 186)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s2-1 quad)) - (t9-7 a0-35 a1-15 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 186) s2-1) ) ) ) @@ -1031,23 +1010,9 @@ (when (< 0.0 f28-1) (vector+! s3-1 s3-1 v1-47) (set! (-> *part-id-table* 183 init-specs 13 initial-valuef) f28-1) - (let ((t9-12 sp-launch-particles-var) - (a0-46 *sp-particle-system-2d*) - (a1-23 (-> *part-id-table* 183)) - (a2-5 *launch-matrix*) - ) - (set! (-> a2-5 trans quad) (-> s3-1 quad)) - (t9-12 a0-46 a1-23 a2-5 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 183) s3-1) (set! (-> *part-id-table* 182 init-specs 13 initial-valuef) f28-1) - (let ((t9-13 sp-launch-particles-var) - (a0-47 *sp-particle-system-2d*) - (a1-24 (-> *part-id-table* 182)) - (a2-6 *launch-matrix*) - ) - (set! (-> a2-6 trans quad) (-> s3-1 quad)) - (t9-13 a0-47 a1-24 a2-6 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 182) s3-1) ) ) ) diff --git a/goal_src/jak2/engine/target/gun/gun-yellow-shot.gc b/goal_src/jak2/engine/target/gun/gun-yellow-shot.gc index 0055b31013..d9c92d05fe 100644 --- a/goal_src/jak2/engine/target/gun/gun-yellow-shot.gc +++ b/goal_src/jak2/engine/target/gun/gun-yellow-shot.gc @@ -105,14 +105,7 @@ (set! (-> *part-id-table* 223 init-specs 4 initial-valuef) f28-0) ) (vector-normalize! s5-1 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-5 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 224)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-2 a0-5 a1-2 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 224) gp-0) (let ((s3-0 (new 'stack-no-clear 'matrix)) (f28-1 (* 0.000015258789 f30-0)) (f30-1 (-> *part-id-table* 226 init-specs 3 initial-valuef)) @@ -120,14 +113,7 @@ (forward-up->inv-matrix s3-0 s5-1 *up-vector*) (set! (-> s3-0 trans quad) (-> s4-0 quad)) (set! (-> *part-id-table* 226 init-specs 3 initial-valuef) (* f28-1 f30-1)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 226) - s3-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 226) s3-0 :origin-is-matrix #t) (set! (-> *part-id-table* 226 init-specs 3 initial-valuef) f30-1) ) (let ((f0-6 (vector-dot s5-1 (-> (camera-matrix) vector 2)))) @@ -138,14 +124,7 @@ ) (set! (-> *part-id-table* 225 init-specs 8 initial-valuef) (* f30-2 f0-7)) (set! (-> *part-id-table* 225 init-specs 8 random-rangef) (* f28-2 f0-7)) - (let ((t9-6 sp-launch-particles-var) - (a0-9 *sp-particle-system-2d*) - (a1-5 (-> *part-id-table* 225)) - (a2-6 *launch-matrix*) - ) - (set! (-> a2-6 trans quad) (-> gp-0 quad)) - (t9-6 a0-9 a1-5 a2-6 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 225) gp-0) (set! (-> *part-id-table* 225 init-specs 8 initial-valuef) f30-2) (set! (-> *part-id-table* 225 init-specs 8 random-rangef) f28-2) ) diff --git a/goal_src/jak2/engine/target/logic-target.gc b/goal_src/jak2/engine/target/logic-target.gc index f1fa00355b..ce8e5977bc 100644 --- a/goal_src/jak2/engine/target/logic-target.gc +++ b/goal_src/jak2/engine/target/logic-target.gc @@ -59,8 +59,8 @@ (set! (-> self control current-surface target-speed) (* (-> self control current-surface target-speed) f0-11)) (set! (-> self control current-surface transv-max) (* (-> self control current-surface transv-max) f0-11)) ) + ;; og:preserve-this turbo jet board cheat (#when PC_PORT - ;; turbo jet board cheat (when (cheat-state-flag? turbo-board) (*! (-> self control current-surface target-speed) (-> *pc-cheat-state* turbo-board-speed)) (*! (-> self control current-surface transv-max) (-> *pc-cheat-state* turbo-board-speed)) @@ -819,14 +819,11 @@ ) (else (let ((f0-10 (atan (-> arg0 x) (-> arg0 z)))) - (vector-rotate-y! - arg0 - arg0 - (fmin - (* 0.03 (-> self clock time-adjust-ratio) (- f0-10)) - (* (-> self control current-surface vel-turn) (-> self clock seconds-per-frame)) - ) - ) + (vector-rotate-y! arg0 arg0 (fmin + (* 0.03 (-> self clock time-adjust-ratio) (- f0-10)) + (* (-> self control current-surface vel-turn) (seconds-per-frame)) + ) + ) ) ) ) @@ -956,7 +953,7 @@ (set! (-> s3-1 z) (fmax 0.0 (fmin (-> s3-1 z) (-> s4-0 z)))) ) (if (< 0.2 (-> self control blocked-factor)) - (vector-seek! s3-1 s4-0 (* 122880.0 (-> self clock seconds-per-frame))) + (vector-seek! s3-1 s4-0 (* 122880.0 (seconds-per-frame))) ) (vector-matrix*! s2-0 s3-1 (-> self control c-R-w)) (let ((f28-0 (vector-vector-xz-distance s3-1 s4-0))) @@ -1005,7 +1002,7 @@ (set! (-> gp-0 z) 0.0) ) (let ((s4-2 (vector-! (new-stack-vector0) s5-0 gp-0))) - (let ((f0-45 (* f30-0 (-> self clock seconds-per-frame)))) + (let ((f0-45 (* f30-0 (seconds-per-frame)))) (set! (-> s4-2 y) 0.0) (let ((v1-104 s4-2)) (if (< f0-45 (sqrtf (+ (* (-> v1-104 x) (-> v1-104 x)) (* (-> v1-104 z) (-> v1-104 z))))) @@ -1160,7 +1157,7 @@ (s4-0 (forward-up-nopitch->quaternion (new-stack-quaternion0) gp-0 s3-0)) (s3-1 (forward-up-nopitch->quaternion (new-stack-quaternion0) s5-0 s3-0)) (f0-2 (acos (vector-dot gp-0 s5-0))) - (f1-2 (* (-> self control current-surface turnvv) (-> self clock seconds-per-frame))) + (f1-2 (* (-> self control current-surface turnvv) (seconds-per-frame))) ) (quaternion-slerp! (-> self control dir-targ) @@ -1433,7 +1430,7 @@ (.svf (&-> a1-9 quad) vf6) ) (let ((f0-13 (lerp-scale 1.0 0.0 (- (-> s2-0 y) (-> self control gspot-pos y)) 819.2 2048.0))) - (seek! (-> self leg-ik s5-0 user-blend) f0-13 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> self leg-ik s5-0 user-blend) f0-13 (* 4.0 (seconds-per-frame))) ) (let ((a1-12 (-> gp-0 start-pos))) (let ((v1-63 s2-0)) @@ -1510,11 +1507,7 @@ (if (>= (current-time) (-> self control additional-decaying-velocity-decay-start-time)) (vector-normalize! (-> self control additional-decaying-velocity) - (seek - (vector-length (-> self control additional-decaying-velocity)) - 0.0 - (* 40960.0 (-> self clock seconds-per-frame)) - ) + (seek (vector-length (-> self control additional-decaying-velocity)) 0.0 (* 40960.0 (seconds-per-frame))) ) ) (cond @@ -1531,10 +1524,10 @@ (f0-3 (vector-dot (-> self control transv) v1-22)) ) (if (< f0-3 0.0) - (set! f30-0 (seek f30-0 0.0 (* -1.0 (-> self clock seconds-per-frame) f0-3))) + (set! f30-0 (seek f30-0 0.0 (* -1.0 (seconds-per-frame) f0-3))) ) ) - (let ((f0-7 (seek f30-0 0.0 (* 28672.0 (-> self clock seconds-per-frame))))) + (let ((f0-7 (seek f30-0 0.0 (* 28672.0 (seconds-per-frame))))) (vector-normalize! (-> self control additional-decaying-velocity) f0-7) ) ) @@ -1834,23 +1827,23 @@ (seek! (-> self hair 0 twist-max z) (lerp-scale 0.0 1820.4445 (vector-length (-> self control transv)) 0.0 122880.0) - (* 65536.0 (-> self clock seconds-per-frame)) + (* 65536.0 (seconds-per-frame)) ) (seek! (-> self hair 0 twist-speed-x) (lerp-scale 0.5 4.0 (vector-length (-> self control transv)) 0.0 122880.0) - (* 10.0 (-> self clock seconds-per-frame)) + (* 10.0 (seconds-per-frame)) ) - (let ((f0-9 (+ (-> self hair 0 twist z) (* (-> self hair 0 twist-speed-x) (-> self clock seconds-per-frame))))) + (let ((f0-9 (+ (-> self hair 0 twist z) (* (-> self hair 0 twist-speed-x) (seconds-per-frame))))) (set! (-> self hair 0 twist z) (- f0-9 (* (the float (the int (/ f0-9 1.0))) 1.0))) ) (if (and (focus-test? self pilot) (nonzero? (-> self pilot)) (= (-> self pilot stance) 1)) (seek! (-> self hair 0 twist-max w) (lerp-scale 0.0 9102.223 (vector-length (-> self control transv)) 0.0 122880.0) - (* 65536.0 (-> self clock seconds-per-frame)) + (* 65536.0 (seconds-per-frame)) ) - (seek! (-> self hair 0 twist-max w) 0.0 (* 65536.0 (-> self clock seconds-per-frame))) + (seek! (-> self hair 0 twist-max w) 0.0 (* 65536.0 (seconds-per-frame))) ) (trs-set! (-> self hair 0) @@ -1865,14 +1858,14 @@ (seek! (-> self hair 1 twist-max z) (lerp-scale 0.0 5461.3335 (vector-length (-> self control transv)) 4096.0 122880.0) - (* 65536.0 (-> self clock seconds-per-frame)) + (* 65536.0 (seconds-per-frame)) ) (seek! (-> self hair 1 twist-speed-x) (lerp-scale 1.0 8.0 (vector-length (-> self control transv)) 4096.0 122880.0) - (* 10.0 (-> self clock seconds-per-frame)) + (* 10.0 (seconds-per-frame)) ) - (let ((f0-33 (+ (-> self hair 1 twist z) (* (-> self hair 1 twist-speed-x) (-> self clock seconds-per-frame))))) + (let ((f0-33 (+ (-> self hair 1 twist z) (* (-> self hair 1 twist-speed-x) (seconds-per-frame))))) (set! (-> self hair 1 twist z) (- f0-33 (* (the float (the int (/ f0-33 1.0))) 1.0))) ) (trs-set! @@ -1905,7 +1898,7 @@ ) ) ) - (seek! (-> self control bend-amount) f0-1 (* (-> self control bend-speed) (-> self clock seconds-per-frame))) + (seek! (-> self control bend-amount) f0-1 (* (-> self control bend-speed) (seconds-per-frame))) ) (set! (-> self control dynam gravity-normal quad) (-> self control standard-dynamics gravity-normal quad)) (vector-float*! @@ -2053,10 +2046,10 @@ ((-> s5-0 pilot-edge-grab?) (case (-> s5-0 pilot-edge-grab?) (('target-jump) - (seek! (-> s5-0 pilot-grab-interp) 1.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> s5-0 pilot-grab-interp) 1.0 (* 2.0 (seconds-per-frame))) ) (else - (seek! (-> s5-0 pilot-grab-interp) 1.0 (* 1.5 (-> self clock seconds-per-frame))) + (seek! (-> s5-0 pilot-grab-interp) 1.0 (* 1.5 (seconds-per-frame))) ) ) (let* ((f0-11 (fmin 1.0 (* 1.5 (-> s5-0 pilot-grab-interp)))) @@ -2385,12 +2378,12 @@ ) (cond ((>= f0-1 (-> self excitement)) - (seek! (-> self excitement) f0-1 (* 6.0 (-> self clock seconds-per-frame))) + (seek! (-> self excitement) f0-1 (* 6.0 (seconds-per-frame))) ) ((focus-test? self dead ignore hit) ) (else - (seek! (-> self excitement) f0-1 (* 0.25 (-> self clock seconds-per-frame))) + (seek! (-> self excitement) f0-1 (* 0.25 (seconds-per-frame))) ) ) ) @@ -3084,7 +3077,8 @@ (set! arg0 (get-current-continue-forced *game-info*)) ) (set-continue! *game-info* arg0 #f) - (stack-size-set! (-> obj main-thread) 2048) ;; changed from 1024 + ;; og:preserve-this changed from 1024 + (stack-size-set! (-> obj main-thread) 2048) (logior! (-> obj mask) (process-mask target)) (set! (-> obj state-hook) (the-as (function none :behavior target) nothing)) (cond diff --git a/goal_src/jak2/engine/target/mech/mech-part.gc b/goal_src/jak2/engine/target/mech/mech-part.gc index de7ded0485..e1ec436376 100644 --- a/goal_src/jak2/engine/target/mech/mech-part.gc +++ b/goal_src/jak2/engine/target/mech/mech-part.gc @@ -186,50 +186,15 @@ ) ) ) - (let ((t9-5 sp-launch-particles-var) - (a0-7 *sp-particle-system-2d*) - (a1-8 (-> *part-id-table* 945)) - (a2-5 *launch-matrix*) - ) - (set! (-> a2-5 trans quad) (-> arg1 quad)) - (t9-5 a0-7 a1-8 a2-5 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-6 sp-launch-particles-var) - (a0-8 *sp-particle-system-2d*) - (a1-9 (-> *part-id-table* 940)) - (a2-6 *launch-matrix*) - ) - (set! (-> a2-6 trans quad) (-> arg1 quad)) - (t9-6 a0-8 a1-9 a2-6 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 945) arg1) + (launch-particles (-> *part-id-table* 940) arg1) (cond ((!= (-> *setting-control* user-current under-water-pitch-mod) 0.0) - (let ((t9-7 sp-launch-particles-var) - (a0-9 *sp-particle-system-2d*) - (a1-10 (-> *part-id-table* 945)) - (a2-7 *launch-matrix*) - ) - (set! (-> a2-7 trans quad) (-> arg1 quad)) - (t9-7 a0-9 a1-10 a2-7 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 945) arg1) ) (else - (let ((t9-8 sp-launch-particles-var) - (a0-10 *sp-particle-system-2d*) - (a1-11 (-> *part-id-table* 941)) - (a2-8 *launch-matrix*) - ) - (set! (-> a2-8 trans quad) (-> arg1 quad)) - (t9-8 a0-10 a1-11 a2-8 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-9 sp-launch-particles-var) - (a0-11 *sp-particle-system-2d*) - (a1-12 (-> *part-id-table* 943)) - (a2-9 *launch-matrix*) - ) - (set! (-> a2-9 trans quad) (-> arg1 quad)) - (t9-9 a0-11 a1-12 a2-9 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 941) arg1) + (launch-particles (-> *part-id-table* 943) arg1) ) ) 0 diff --git a/goal_src/jak2/engine/target/mech/mech-states.gc b/goal_src/jak2/engine/target/mech/mech-states.gc index 38f505e3dc..2c7dde81ef 100644 --- a/goal_src/jak2/engine/target/mech/mech-states.gc +++ b/goal_src/jak2/engine/target/mech/mech-states.gc @@ -128,20 +128,18 @@ (let ((f26-1 (* (deg-diff f26-0 (y-angle (-> self control))) (-> self clock frames-per-second)))) (cond ((< 910.2222 (fabs f26-1)) - (set! f28-0 (seek f28-0 1.0 (* 16.0 (-> self clock seconds-per-frame)))) + (set! f28-0 (seek f28-0 1.0 (* 16.0 (seconds-per-frame)))) (set! gp-1 #t) ) (else - (set! f28-0 (seek f28-0 0.0 (* 6.0 (-> self clock seconds-per-frame)))) + (set! f28-0 (seek f28-0 0.0 (* 6.0 (seconds-per-frame)))) (when (and gp-1 (= f28-0 0.0)) (set! gp-1 #f) (sound-play "mech-twitch") ) ) ) - (set! f30-0 - (seek f30-0 (lerp-scale 1.0 0.0 (fabs f26-1) 3640.889 16384.0) (* 10.0 (-> self clock seconds-per-frame))) - ) + (set! f30-0 (seek f30-0 (lerp-scale 1.0 0.0 (fabs f26-1) 3640.889 16384.0) (* 10.0 (seconds-per-frame)))) (let ((v1-41 (-> self skel effect))) (set! (-> v1-41 channel-offset) (cond ((< 0.8 (- 1.0 f28-0)) @@ -305,17 +303,11 @@ (set! (-> self control unknown-word04) (the-as uint (+ (the-as float (-> self control unknown-word04)) f26-1)) ) - (set! f30-0 (seek - f30-0 - (lerp-scale 0.0 1.0 (-> self control ctrl-xz-vel) 16384.0 32768.0) - (* 2.0 (-> self clock seconds-per-frame)) - ) + (set! f30-0 + (seek f30-0 (lerp-scale 0.0 1.0 (-> self control ctrl-xz-vel) 16384.0 32768.0) (* 2.0 (seconds-per-frame))) ) - (set! f28-0 (seek - f28-0 - (lerp-scale 1.0 0.0 (-> self control ctrl-xz-vel) 0.0 12288.0) - (* 2.0 (-> self clock seconds-per-frame)) - ) + (set! f28-0 + (seek f28-0 (lerp-scale 1.0 0.0 (-> self control ctrl-xz-vel) 0.0 12288.0) (* 2.0 (seconds-per-frame))) ) (let ((v1-39 (-> self skel effect))) (set! (-> v1-39 channel-offset) (if (< 0.5 f30-0) @@ -698,7 +690,7 @@ ) (cond ((< (-> self mech forward-vel) 0.0) - (seek! (-> self mech forward-vel) -0.04096 (* 122880.0 (-> self clock seconds-per-frame))) + (seek! (-> self mech forward-vel) -0.04096 (* 122880.0 (seconds-per-frame))) ) ((let ((a0-43 (ja-group))) (and a0-43 (or (= a0-43 (-> self draw art-group data 335)) (= a0-43 (-> self draw art-group data 353)))) @@ -721,7 +713,7 @@ ((and a0-50 (= a0-50 (-> self draw art-group data 333))) (cond ((< v1-142 (seconds 0.465)) - (seek! (-> self mech forward-vel) 0.0 (* 20480.0 (-> self clock seconds-per-frame))) + (seek! (-> self mech forward-vel) 0.0 (* 20480.0 (seconds-per-frame))) (set! s3-2 #f) ) ((< v1-142 (seconds 0.53)) @@ -733,7 +725,7 @@ ) ) ((< v1-142 (seconds 0.465)) - (seek! (-> self mech forward-vel) 0.0 (* 20480.0 (-> self clock seconds-per-frame))) + (seek! (-> self mech forward-vel) 0.0 (* 20480.0 (seconds-per-frame))) (set! s3-2 #f) ) ((< v1-142 (seconds 0.53)) @@ -826,7 +818,7 @@ ((cpad-hold? (-> self control cpad number) x) (cond ((= f0-2 0.0) - (seek! (-> self mech jump-thrust) 0.0 (* 245760.0 (-> self clock seconds-per-frame))) + (seek! (-> self mech jump-thrust) 0.0 (* 245760.0 (seconds-per-frame))) ) ((!= f0-2 (-> *TARGET-bank* mech-jump-thrust-fuel)) (let ((f26-0 @@ -839,7 +831,7 @@ (seek! (-> self mech jump-thrust) (- (- (-> self control dynam gravity-length) f30-0) f26-0) - (* 8192000.0 (-> self clock seconds-per-frame)) + (* 8192000.0 (seconds-per-frame)) ) (set! (-> self mech thruster-flame-width) (* 0.75 f28-0)) (set! (-> self mech thruster-flame-length) f28-0) @@ -854,7 +846,7 @@ (seek! (-> self mech jump-thrust-fuel) 0.0 (the float (- (current-time) (-> self clock old-frame-counter)))) ) (else - (seek! (-> self mech jump-thrust) 0.0 (* 491520.0 (-> self clock seconds-per-frame))) + (seek! (-> self mech jump-thrust) 0.0 (* 491520.0 (seconds-per-frame))) (set! (-> self mech thruster-flame-width) (* 0.021428572 (-> self mech jump-thrust))) (set! (-> self mech thruster-flame-length) (* 0.028571429 (-> self mech jump-thrust))) ) @@ -867,7 +859,7 @@ ) (let* ((f0-37 (vector-length v1-85)) (f1-9 f0-37) - (f2-2 (+ f30-0 (* (-> self mech jump-thrust) (-> self clock seconds-per-frame)))) + (f2-2 (+ f30-0 (* (-> self mech jump-thrust) (seconds-per-frame)))) ) (vector+! (-> self control transv) @@ -1215,7 +1207,7 @@ (set! (-> self trans-hook) (lambda :behavior target () - (vector-seek! (-> self draw color-mult) *zero-vector* (-> self clock seconds-per-frame)) + (vector-seek! (-> self draw color-mult) *zero-vector* (seconds-per-frame)) (let ((v1-2 (new-stack-vector0)) (f0-2 (the-as number (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))) ) @@ -1370,7 +1362,7 @@ (vector-seek! (-> self draw color-mult) (new 'static 'vector :x 0.5 :y 0.5 :z 0.5 :w 1.0) - (* 5.0 (-> self clock seconds-per-frame)) + (* 5.0 (seconds-per-frame)) ) (suspend) (ja :num! (seek!)) @@ -1619,7 +1611,7 @@ (else (ja-no-eval :num! (seek! (ja-aframe 8.0 0))) (while (not (ja-done? 0)) - (set! f30-0 (seek f30-0 f28-0 (* 5.0 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 f28-0 (* 5.0 (seconds-per-frame)))) (let ((v1-120 (-> self skel root-channel 1))) (set! (-> v1-120 frame-interp 1) f30-0) (set! (-> v1-120 frame-interp 0) f30-0) @@ -1660,7 +1652,7 @@ (sound-play "mech-servo-up") (ja-no-eval :num! (seek!)) (while (not (ja-done? 0)) - (set! f30-0 (seek f30-0 f28-0 (* 5.0 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 f28-0 (* 5.0 (seconds-per-frame)))) (let ((v1-174 (-> self skel root-channel 1))) (set! (-> v1-174 frame-interp 1) f30-0) (set! (-> v1-174 frame-interp 0) f30-0) @@ -1790,7 +1782,7 @@ (let ((s5-5 (the-as carry-info (send-event-function (handle->process (-> self carry other)) a1-10)))) (when s5-5 (if (< 20.0 (ja-aframe-num 0)) - (seek! (-> s5-5 grab-trans-blend) 1.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> s5-5 grab-trans-blend) 1.0 (* 2.0 (seconds-per-frame))) ) (let ((s3-0 (-> s5-5 process 0 control)) (s5-6 (new 'stack-no-clear 'collide-query)) @@ -1955,8 +1947,8 @@ (suspend) (let ((f28-1 (* (deg-diff f28-0 (y-angle (-> self control))) (-> self clock frames-per-second)))) (set! f30-0 (if (< 910.2222 (fabs f28-1)) - (seek f30-0 1.0 (* 16.0 (-> self clock seconds-per-frame))) - (seek f30-0 0.0 (* 6.0 (-> self clock seconds-per-frame))) + (seek f30-0 1.0 (* 16.0 (seconds-per-frame))) + (seek f30-0 0.0 (* 6.0 (seconds-per-frame))) ) ) (let* ((f0-9 (current-cycle-distance (-> self skel))) @@ -2073,11 +2065,8 @@ (set! (-> self control unknown-word04) (the-as uint (+ (the-as float (-> self control unknown-word04)) f28-1)) ) - (set! f30-0 (seek - f30-0 - (lerp-scale 1.0 0.0 (-> self control ctrl-xz-vel) 0.0 8192.0) - (* 2.0 (-> self clock seconds-per-frame)) - ) + (set! f30-0 + (seek f30-0 (lerp-scale 1.0 0.0 (-> self control ctrl-xz-vel) 0.0 8192.0) (* 2.0 (seconds-per-frame))) ) (ja :num! (loop! f28-1)) ) @@ -2228,7 +2217,7 @@ (set! (-> self control unknown-word04) (the-as uint #f)) (set! f28-0 32768.0) ) - (seek f28-0 0.0 (* 65536.0 (-> self clock seconds-per-frame))) + (seek f28-0 0.0 (* 65536.0 (seconds-per-frame))) ) ((< 0.0 f0-2) (let ((v1-47 (ja-group))) @@ -2243,7 +2232,7 @@ (ja :group! (-> self draw art-group data 345) :num! (identity (ja-aframe f26-0 0)) :dist 16384.0) ) ) - (seek f28-0 49152.0 (* 24576.0 (-> self clock seconds-per-frame))) + (seek f28-0 49152.0 (* 24576.0 (seconds-per-frame))) ) ((< f0-2 0.0) (let ((v1-71 (ja-group))) @@ -2258,10 +2247,10 @@ (ja :group! (-> self draw art-group data 346) :num! (identity (ja-aframe f26-0 0)) :dist 16384.0) ) ) - (seek f28-0 -49152.0 (* 24576.0 (-> self clock seconds-per-frame))) + (seek f28-0 -49152.0 (* 24576.0 (seconds-per-frame))) ) (else - (seek f28-0 0.0 (* 32768.0 (-> self clock seconds-per-frame))) + (seek f28-0 0.0 (* 32768.0 (seconds-per-frame))) ) ) ) @@ -2279,7 +2268,7 @@ 0.0 49152.0 ) - (* 2.0 (-> self clock seconds-per-frame)) + (* 2.0 (seconds-per-frame)) ) ) (sound-play-by-name @@ -2298,7 +2287,7 @@ (seek! (-> self mech jump-thrust) (lerp-scale 0.0 245760.0 (fabs f28-0) 0.0 49152.0) - (* 491520.0 (-> self clock seconds-per-frame)) + (* 491520.0 (seconds-per-frame)) ) (set! (-> self mech thruster-flame-width) (* 0.021428572 (-> self mech jump-thrust))) (set! (-> self mech thruster-flame-length) (* 0.028571429 (-> self mech jump-thrust))) @@ -2548,7 +2537,7 @@ (set! (-> a1-3 message) 'carry-info) (let ((gp-1 (the-as carry-info (send-event-function (handle->process (-> self carry other)) a1-3)))) (if gp-1 - (seek! (-> gp-1 grab-trans-blend) 1.0 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> gp-1 grab-trans-blend) 1.0 (* 4.0 (seconds-per-frame))) ) ) ) diff --git a/goal_src/jak2/engine/target/mech/mech.gc b/goal_src/jak2/engine/target/mech/mech.gc index 6a8c62eae4..85e7154eef 100644 --- a/goal_src/jak2/engine/target/mech/mech.gc +++ b/goal_src/jak2/engine/target/mech/mech.gc @@ -190,6 +190,7 @@ (go-virtual pickup (method-of-object self wait-for-return)) ) ) + ;; og:preserve-this target-look-at-me! macro (target-look-at-me! :trans (vector+! (new 'stack-no-clear 'vector) (the-as vector (-> self root root-prim prim-core)) (new 'static 'vector :y 2048.0 :w 1.0))) (mech-method-24 self) (suspend) @@ -426,7 +427,7 @@ This commonly includes things such as: ) :code (behavior () (while (< 0.0 (-> self root scale x)) - (seek! (-> self root scale x) 0.0 (* 8.0 (-> self clock seconds-per-frame))) + (seek! (-> self root scale x) 0.0 (* 8.0 (seconds-per-frame))) (set! (-> self root scale y) (-> self root scale x)) (ja-post) (suspend) @@ -463,15 +464,15 @@ This commonly includes things such as: (let ((f30-0 0.0)) (logclear! (-> self draw status) (draw-control-status no-draw)) (while (< (-> self root scale x) 1.0) - (seek! (-> self root scale x) 1.0 (* 8.0 (-> self clock seconds-per-frame))) + (seek! (-> self root scale x) 1.0 (* 8.0 (seconds-per-frame))) (set! (-> self root scale y) (-> self root scale x)) - (set! f30-0 (seek f30-0 1.0 (* 2.0 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 1.0 (* 2.0 (seconds-per-frame)))) (ja :num! (loop! f30-0)) (ja-post) (suspend) ) (until #f - (set! f30-0 (seek f30-0 1.0 (* 0.25 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 1.0 (* 0.25 (seconds-per-frame)))) (ja :num! (loop! f30-0)) (ja-post) (suspend) diff --git a/goal_src/jak2/engine/target/sidekick.gc b/goal_src/jak2/engine/target/sidekick.gc index 317dedbc5b..efd4027b43 100644 --- a/goal_src/jak2/engine/target/sidekick.gc +++ b/goal_src/jak2/engine/target/sidekick.gc @@ -85,10 +85,10 @@ (* (lerp-scale 0.0 5.0 (fabs (-> gp-0 board trotyv)) 0.0 182044.44) (-> self special-anim-interp)) ) (set! (-> self special-anim-frame) (-> arg1 z)) - (seek! (-> self special-anim-interp) 1.0 (* 8.0 (-> self clock seconds-per-frame))) + (seek! (-> self special-anim-interp) 1.0 (* 8.0 (seconds-per-frame))) ) (else - (seek! (-> self special-anim-interp) 0.0 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> self special-anim-interp) 0.0 (* 4.0 (seconds-per-frame))) (set! (-> arg1 z) (* (-> self special-anim-frame) (-> self special-anim-interp))) ) ) diff --git a/goal_src/jak2/engine/target/target-anim.gc b/goal_src/jak2/engine/target/target-anim.gc index 8d5057db51..b6108ff766 100644 --- a/goal_src/jak2/engine/target/target-anim.gc +++ b/goal_src/jak2/engine/target/target-anim.gc @@ -299,7 +299,7 @@ ) ) (until (ja-done? 0) - (seek! (-> self control bend-target) 0.0 (-> self clock seconds-per-frame)) + (seek! (-> self control bend-target) 0.0 (seconds-per-frame)) (suspend) (ja :num! (seek!)) ) @@ -323,7 +323,7 @@ ) ) (until (ja-done? 0) - (seek! (-> self control bend-target) 0.0 (-> self clock seconds-per-frame)) + (seek! (-> self control bend-target) 0.0 (seconds-per-frame)) (suspend) (ja :num! (seek!)) ) @@ -343,7 +343,7 @@ ) ) (until (ja-done? 0) - (seek! (-> self control bend-target) 0.0 (-> self clock seconds-per-frame)) + (seek! (-> self control bend-target) 0.0 (seconds-per-frame)) (suspend) (ja :num! (seek!)) ) @@ -919,8 +919,8 @@ ) (until (ja-done? 0) (suspend) - ;; pc port note: patched for high fps - (ja :num! (seek! max (/ (* (fmax 20480.0 (-> self control ctrl-xz-vel)) (seconds-per-frame)) + ;; og:preserve-this patched for high fps + (ja :num! (seek! max (/ (* (fmax 20480.0 (-> self control ctrl-xz-vel)) (seconds-per-frame-high-fps)) (/ (-> *TARGET-bank* run-up-cycle-dist) (-> *TARGET-bank* run-cycle-length)) ) ) @@ -1128,15 +1128,12 @@ (set! f26-0 (seek f26-0 (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ -16384.0 (-> self control ctrl-xz-vel))))) - (* 2.0 (-> self clock seconds-per-frame)) + (* 2.0 (seconds-per-frame)) ) ) (if (and (focus-test? self dark) (nonzero? (-> self darkjak))) - (set! f26-0 (seek - f26-0 - (lerp-scale f26-0 (* 0.7 f26-0) sv-16 1820.4445 3640.889) - (* 2.0 (-> self clock seconds-per-frame)) - ) + (set! f26-0 + (seek f26-0 (lerp-scale f26-0 (* 0.7 f26-0) sv-16 1820.4445 3640.889) (* 2.0 (seconds-per-frame))) ) ) (cond @@ -1290,7 +1287,7 @@ (set! (-> s5-0 param 0) (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 54)) frames num-frames) -1)) ) - (let ((f30-1 (seek f30-0 1.0 (* 0.5 (-> self clock seconds-per-frame))))) + (let ((f30-1 (seek f30-0 1.0 (* 0.5 (seconds-per-frame))))) (set! (-> s5-0 param 1) f30-1) (set! (-> s5-0 frame-num) 0.0) (joint-control-channel-group! s5-0 (the-as art-joint-anim (-> self draw art-group data 54)) num-func-seek!) @@ -1356,7 +1353,7 @@ (suspend) (let ((s5-1 (-> self skel root-channel 0))) (set! (-> s5-1 param 0) (the float (+ (-> s5-1 frame-group frames num-frames) -1))) - (set! f30-1 (seek f30-1 1.0 (* 0.5 (-> self clock seconds-per-frame)))) + (set! f30-1 (seek f30-1 1.0 (* 0.5 (seconds-per-frame)))) (set! (-> s5-1 param 1) f30-1) (joint-control-channel-group-eval! s5-1 (the-as art-joint-anim #f) num-func-seek!) ) @@ -1776,7 +1773,7 @@ (quaternion-rotate-y! (-> self control quat-for-control) (-> self control quat-for-control) - (* f30-0 (-> self clock seconds-per-frame)) + (* f30-0 (seconds-per-frame)) ) (suspend) (ja :num! (loop!)) @@ -1794,7 +1791,7 @@ (quaternion-rotate-y! (-> self control quat-for-control) (-> self control quat-for-control) - (* f30-0 (-> self clock seconds-per-frame)) + (* f30-0 (seconds-per-frame)) ) ) (else diff --git a/goal_src/jak2/engine/target/target-carry.gc b/goal_src/jak2/engine/target/target-carry.gc index 81dac77415..eb259f84c2 100644 --- a/goal_src/jak2/engine/target/target-carry.gc +++ b/goal_src/jak2/engine/target/target-carry.gc @@ -235,7 +235,7 @@ (target-danger-set! 'harmless #f) (ja-no-eval :num! (seek! (ja-aframe 5.0 0))) (while (not (ja-done? 0)) - (set! f30-0 (seek f30-0 f28-0 (* 5.0 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 f28-0 (* 5.0 (seconds-per-frame)))) (let ((v1-45 (-> self skel root-channel 1))) (set! (-> v1-45 frame-interp 1) f30-0) (set! (-> v1-45 frame-interp 0) f30-0) @@ -247,7 +247,7 @@ (target-collide-set! 'carry 0.0) (ja-no-eval :num! (seek!)) (while (not (ja-done? 0)) - (set! f30-0 (seek f30-0 f28-0 (* 5.0 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 f28-0 (* 5.0 (seconds-per-frame)))) (let ((v1-70 (-> self skel root-channel 1))) (set! (-> v1-70 frame-interp 1) f30-0) (set! (-> v1-70 frame-interp 0) f30-0) @@ -259,7 +259,7 @@ (set! (-> a1-22 message) 'carry-info) (let ((gp-4 (the-as carry-info (send-event-function (handle->process (-> self carry other)) a1-22)))) (if gp-4 - (seek! (-> gp-4 grab-trans-blend) 0.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> gp-4 grab-trans-blend) 0.0 (* 2.0 (seconds-per-frame))) ) ) ) @@ -356,7 +356,7 @@ (let ((gp-4 (the-as carry-info (send-event-function (handle->process (-> self carry other)) a1-9)))) (when gp-4 (if (< 22.0 (ja-aframe-num 0)) - (seek! (-> gp-4 grab-trans-blend) 1.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> gp-4 grab-trans-blend) 1.0 (* 2.0 (seconds-per-frame))) ) (let ((s4-0 (-> gp-4 process 0 control)) (gp-5 (new 'stack-no-clear 'collide-query)) @@ -387,7 +387,7 @@ (set! (-> a1-14 message) 'carry-info) (let ((gp-6 (the-as carry-info (send-event-function (handle->process (-> self carry other)) a1-14)))) (if gp-6 - (seek! (-> gp-6 grab-trans-blend) 0.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> gp-6 grab-trans-blend) 0.0 (* 2.0 (seconds-per-frame))) ) ) ) @@ -683,7 +683,7 @@ (seek! (-> self control unknown-float35) (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ -10240.0 (-> self control ctrl-xz-vel))))) - (-> self clock seconds-per-frame) + (seconds-per-frame) ) (none) ) @@ -735,7 +735,7 @@ (set! (-> a1-3 message) 'carry-info) (let ((gp-1 (the-as carry-info (send-event-function (handle->process (-> self carry other)) a1-3)))) (if gp-1 - (seek! (-> gp-1 grab-trans-blend) 1.0 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> gp-1 grab-trans-blend) 1.0 (* 4.0 (seconds-per-frame))) ) ) ) @@ -776,7 +776,7 @@ (set! (-> a1-11 message) 'carry-info) (let ((gp-4 (the-as carry-info (send-event-function (handle->process (-> self carry other)) a1-11)))) (if gp-4 - (seek! (-> gp-4 grab-trans-blend) 0.0 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> gp-4 grab-trans-blend) 0.0 (* 4.0 (seconds-per-frame))) ) ) ) diff --git a/goal_src/jak2/engine/target/target-darkjak.gc b/goal_src/jak2/engine/target/target-darkjak.gc index a2eb831f8d..f0085760f2 100644 --- a/goal_src/jak2/engine/target/target-darkjak.gc +++ b/goal_src/jak2/engine/target/target-darkjak.gc @@ -125,7 +125,7 @@ ) ) (else - (seek! (-> self darkjak-interp) 0.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self darkjak-interp) 0.0 (* 2.0 (seconds-per-frame))) (if (= (-> self darkjak-interp) 0.0) (set! (-> self darkjak-giant-interp) 1.0) ) @@ -217,13 +217,9 @@ (not (logtest? (-> self draw status) (draw-control-status no-draw no-draw-temp))) (not (movie?)) ) - (let ((gp-1 sp-launch-particles-var) - (s5-0 *sp-particle-system-2d*) - (s4-0 (-> *part-id-table* 178)) - (s2-0 *launch-matrix*) - ) - (set! (-> s2-0 trans quad) (-> (process-drawable-random-point! self (new 'stack-no-clear 'vector)) quad)) - (gp-1 s5-0 s4-0 s2-0 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) + (launch-particles + (-> *part-id-table* 178) + (process-drawable-random-point! self (new 'stack-no-clear 'vector)) ) (cond ((rand-vu-percent? 0.25) @@ -483,7 +479,7 @@ ((and v1-30 (= v1-30 (-> self draw art-group data 412))) (ja-no-eval :num! (seek! 0.0)) (while (not (ja-done? 0)) - (seek! (-> self darkjak-interp) 0.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self darkjak-interp) 0.0 (* 2.0 (seconds-per-frame))) (suspend) (ja-eval) ) @@ -808,7 +804,7 @@ ) ) ((< sv-16 0.0) - (set! sv-16 (seek sv-16 -0.04096 (* 491520.0 (-> self clock seconds-per-frame)))) + (set! sv-16 (seek sv-16 -0.04096 (* 491520.0 (seconds-per-frame)))) (set-forward-vel sv-16) ) ((and (nonzero? (-> self control unknown-time-frame18)) @@ -985,8 +981,8 @@ (defmethod update-clock! darkjak-info ((obj darkjak-info) (arg0 int)) (when (-> obj clock-on) - (+! (-> obj clock-pos) (* (-> obj clock-vel) (-> self clock seconds-per-frame))) - (+! (-> obj clock-vel) (* 4.0 (-> self clock seconds-per-frame))) + (+! (-> obj clock-pos) (* (-> obj clock-vel) (seconds-per-frame))) + (+! (-> obj clock-vel) (* 4.0 (seconds-per-frame))) (cond ((< 1.0 (-> obj clock-pos)) (set! (-> obj clock-pos) 1.0) @@ -1017,7 +1013,7 @@ ) (defbehavior target-darkjak-bomb-collide target ((arg0 float) (arg1 float)) - (seek! (-> (the-as (pointer float) arg0) 0) arg1 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> (the-as (pointer float) arg0) 0) arg1 (* 4.0 (seconds-per-frame))) (set! (-> self control bomb-scale) (-> (the-as (pointer float) arg0) 0)) (target-danger-set! 'bomb #f) (update-transforms (-> self control)) @@ -1167,7 +1163,7 @@ (vector-! v1-92 (-> self control transv) (vector-float*! v1-92 (-> self control dynam gravity-normal) f0-35)) (let* ((f1-5 (vector-length v1-92)) (f2-0 f1-5) - (f0-36 (+ f0-35 (* -491520.0 (-> self clock seconds-per-frame)))) + (f0-36 (+ f0-35 (* -491520.0 (seconds-per-frame)))) ) (vector+! (-> self control transv) @@ -1194,7 +1190,7 @@ ) (let* ((f1-8 (vector-length v1-105)) (f2-1 f1-8) - (f0-43 (+ f0-42 (* -491520.0 (-> self clock seconds-per-frame)))) + (f0-43 (+ f0-42 (* -491520.0 (seconds-per-frame)))) ) (vector+! (-> self control transv) @@ -1863,7 +1859,7 @@ (set! sv-92 1.0) ) ) - (set! sv-88 (seek sv-88 (the-as float sv-92) (* 6.0 (-> self clock seconds-per-frame)))) + (set! sv-88 (seek sv-88 (the-as float sv-92) (* 6.0 (seconds-per-frame)))) (ja :num! (loop!)) (let ((a0-60 (-> self skel root-channel 1))) (let ((f0-17 sv-88)) diff --git a/goal_src/jak2/engine/target/target-death.gc b/goal_src/jak2/engine/target/target-death.gc index 44c29c6edb..45a7df966a 100644 --- a/goal_src/jak2/engine/target/target-death.gc +++ b/goal_src/jak2/engine/target/target-death.gc @@ -123,6 +123,7 @@ (reserve-free *art-control* (-> *art-control* reserve-buffer heap)) ) (when (logtest? (-> arg0 flags) (continue-flags demo demo-movie)) + ;; og:preserve-this (#unless DEMO_HACK (set! (-> ctywide memory-mode) (load-buffer-mode small-edge))) 0 @@ -895,7 +896,7 @@ #t (let ((f28-1 (* 1.05 (/ (* -60.0 arg3) (* (the float (+ (-> (ja-group) frames num-frames) -1)) (ja-step 0)))))) (until v1-29 - (+! f30-1 (* (-> arg0 shove-back) f28-1 (-> self clock seconds-per-frame))) + (+! f30-1 (* (-> arg0 shove-back) f28-1 (seconds-per-frame))) (set! s1-1 (target-hit-push s3-0 s2-1 f30-1 (* (-> arg0 shove-back) f28-1) arg0)) (suspend) (ja :num! (seek!)) @@ -903,7 +904,7 @@ ) (while (and (or (not (logtest? (-> self control status) (collide-status on-surface))) s1-1) (!= s1-1 'stuck)) (arg2) - (+! f30-1 (* (-> arg0 shove-back) f28-1 (-> self clock seconds-per-frame))) + (+! f30-1 (* (-> arg0 shove-back) f28-1 (seconds-per-frame))) (set! s1-1 (target-hit-push s3-0 s2-1 f30-1 (* (-> arg0 shove-back) f28-1) arg0)) (if (not s1-1) (logclear! (-> self focus-status) (focus-status hit)) @@ -1180,7 +1181,7 @@ ) (let* ((f1-10 (vector-length v1-157)) (f2-1 f1-10) - (f0-40 (+ f0-39 (* 286720.0 (-> self clock seconds-per-frame)))) + (f0-40 (+ f0-39 (* 286720.0 (seconds-per-frame)))) ) (vector+! (-> self control transv) @@ -1781,7 +1782,7 @@ (vector-seek! (-> self draw color-mult) (new 'static 'vector :x 0.5 :y 0.5 :z 0.5 :w 1.0) - (* 5.0 (-> self clock seconds-per-frame)) + (* 5.0 (seconds-per-frame)) ) (suspend) (ja :num! (seek!)) @@ -1907,7 +1908,7 @@ (set! v1-24 'target-hit-ground-hard) (goto cfg-17) ) - (vector-seek! (-> self draw color-mult) *zero-vector* (-> self clock seconds-per-frame)) + (vector-seek! (-> self draw color-mult) *zero-vector* (seconds-per-frame)) (let ((v1-49 (new-stack-vector0)) (f0-7 (the-as number (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))) ) @@ -1946,7 +1947,7 @@ :frame-num 0.0 ) (until (ja-done? 0) - (vector-seek! (-> self draw color-mult) *identity-vector* (-> self clock seconds-per-frame)) + (vector-seek! (-> self draw color-mult) *identity-vector* (seconds-per-frame)) (suspend) (ja :num! (seek!)) ) @@ -2017,11 +2018,7 @@ ) (until (ja-done? 0) (if (< (+ -10240.0 (-> self water height)) (-> self control trans y)) - (seek! - (-> self control trans y) - (+ -10240.0 (-> self water height)) - (* 81920.0 (-> self clock seconds-per-frame)) - ) + (seek! (-> self control trans y) (+ -10240.0 (-> self water height)) (* 81920.0 (seconds-per-frame))) ) (suspend) (ja :num! (seek!)) diff --git a/goal_src/jak2/engine/target/target-gun.gc b/goal_src/jak2/engine/target/target-gun.gc index 0cf46ba884..344e88f63e 100644 --- a/goal_src/jak2/engine/target/target-gun.gc +++ b/goal_src/jak2/engine/target/target-gun.gc @@ -65,10 +65,10 @@ #t ) ((< (-> self control unknown-float003) f30-0) - (seek! (-> self control unknown-float003) f30-0 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> self control unknown-float003) f30-0 (* 4.0 (seconds-per-frame))) ) (else - (seek! (-> self control unknown-float003) f30-0 (-> self clock seconds-per-frame)) + (seek! (-> self control unknown-float003) f30-0 (seconds-per-frame)) ) ) ) @@ -1685,11 +1685,11 @@ (seek! (-> self gun top-anim-tilt-up) (lerp-scale -1820.4445 0.0 f0-8 61440.0 122880.0) - (* 5461.3335 (-> self clock seconds-per-frame)) + (* 5461.3335 (seconds-per-frame)) ) ) ((!= (-> *cpad-list* cpads (-> self control cpad number) stick0-speed) 0.0) - (seek! (-> self gun top-anim-tilt-up) 0.0 (* 1820.4445 (-> self clock seconds-per-frame))) + (seek! (-> self gun top-anim-tilt-up) 0.0 (* 1820.4445 (seconds-per-frame))) ) ) ) @@ -1726,10 +1726,10 @@ (focus-test? self pilot-riding) ) ) - (seek! (-> self upper-body twist z) 0.0 (* 65536.0 (-> self clock seconds-per-frame))) + (seek! (-> self upper-body twist z) 0.0 (* 65536.0 (seconds-per-frame))) ) ((logtest? (surface-flag gun-no-twist) (-> self control current-surface flags)) - (seek! (-> self upper-body twist z) 0.0 (* 16384.0 (-> self clock seconds-per-frame))) + (seek! (-> self upper-body twist z) 0.0 (* 16384.0 (seconds-per-frame))) ) ((and (< 0.0 (-> self control turn-to-magnitude)) (not (logtest? (-> self control current-surface flags) (surface-flag duck))) @@ -1744,7 +1744,7 @@ (set! (-> (new 'stack-no-clear 'vector) quad) (-> self control trans quad)) (if (logtest? (surface-flag gun-no-twist) (-> self control current-surface flags)) (set! (-> self upper-body flex-blend) 0.0) - (seek! (-> self upper-body flex-blend) 1.0 (* 8.0 (-> self clock seconds-per-frame))) + (seek! (-> self upper-body flex-blend) 1.0 (* 8.0 (seconds-per-frame))) ) (when (logtest? (-> self gun track?) (gun-track-flags gutflags-0)) (set! (-> self gun top-anim-look-at quad) (-> self gun track-trans quad)) @@ -1871,8 +1871,8 @@ ) ) (else - (seek! (-> self upper-body flex-blend) 0.0 (* 16.0 (-> self clock seconds-per-frame))) - (seek! (-> self upper-body twist z) 0.0 (* 65536.0 (-> self clock seconds-per-frame))) + (seek! (-> self upper-body flex-blend) 0.0 (* 16.0 (seconds-per-frame))) + (seek! (-> self upper-body twist z) 0.0 (* 65536.0 (seconds-per-frame))) ) ) 0 @@ -1935,7 +1935,7 @@ (or (= v1-50 (-> self draw art-group data 247)) (= v1-50 (-> self draw art-group data 254))) ) ) - (seek! (-> self gun top-anim-low-high) 0.0 (* 6.0 (-> self clock seconds-per-frame))) + (seek! (-> self gun top-anim-low-high) 0.0 (* 6.0 (seconds-per-frame))) (push-anim-to-targ (-> self skel top-anim) (the-as art-joint-anim (-> self draw art-group data 247)) @@ -1987,7 +1987,7 @@ ) ) ) - (seek! (-> self gun top-anim-low-high) 0.0 (* 6.0 (-> self clock seconds-per-frame))) + (seek! (-> self gun top-anim-low-high) 0.0 (* 6.0 (seconds-per-frame))) (push-anim-to-targ (-> self skel top-anim) (the-as art-joint-anim (-> self draw art-group data 295)) @@ -2676,19 +2676,17 @@ ((4) (cond ((cpad-hold? (-> self control cpad number) r1) - (seek! (-> gp-0 fire-spinv) 218453.33 (* 145635.56 (-> self clock seconds-per-frame))) + (seek! (-> gp-0 fire-spinv) 218453.33 (* 145635.56 (seconds-per-frame))) (if (and (nonzero? (-> self gun track-target-hold-time)) (< (current-time) (-> self gun track-target-hold-time))) (set! (-> gp-0 fire-spinv) 218453.33) ) ) (else - (seek! (-> gp-0 fire-spinv) 0.0 (* 109226.664 (-> self clock seconds-per-frame))) + (seek! (-> gp-0 fire-spinv) 0.0 (* 109226.664 (seconds-per-frame))) ) ) (set! (-> gp-0 fire-spin) - (the float - (sar (shl (the int (+ (-> gp-0 fire-spin) (* (-> gp-0 fire-spinv) (-> self clock seconds-per-frame)))) 48) 48) - ) + (the float (sar (shl (the int (+ (-> gp-0 fire-spin) (* (-> gp-0 fire-spinv) (seconds-per-frame)))) 48) 48)) ) (set! (-> gp-0 fire-delay) (the-as uint (the int (lerp-scale 120.0 30.0 (-> gp-0 fire-spinv) 0.0 218453.33)))) (when (and (>= (-> gp-0 fire-spinv) 218453.33) diff --git a/goal_src/jak2/engine/target/target-swim.gc b/goal_src/jak2/engine/target/target-swim.gc index 3e9ea61646..691ca027a0 100644 --- a/goal_src/jak2/engine/target/target-swim.gc +++ b/goal_src/jak2/engine/target/target-swim.gc @@ -279,11 +279,7 @@ ) 0 (set! f30-1 - (seek - f30-1 - (lerp-scale 1.0 0.0 (-> self control ctrl-xz-vel) 16384.0 32768.0) - (* 4.0 (-> self clock seconds-per-frame)) - ) + (seek f30-1 (lerp-scale 1.0 0.0 (-> self control ctrl-xz-vel) 16384.0 32768.0) (* 4.0 (seconds-per-frame))) ) (let ((v1-107 (-> self skel root-channel 1))) (set! (-> v1-107 frame-interp 1) f24-1) @@ -353,7 +349,7 @@ (seek! (-> self control unknown-float43) (fmax (fmin (* (+ f0-1 arg2) (fmax 0.5 (+ 0.5 (vector-dot gp-0 v1-2)))) arg3) (- arg3)) - (* arg1 (-> self clock seconds-per-frame)) + (* arg1 (seconds-per-frame)) ) ) (let ((a2-2 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> self control quat-for-control)))) @@ -370,8 +366,8 @@ ) (set! (-> self control override-quat-alpha) (fabs (-> self control unknown-float43))) (if (and (-> self next-state) (= (-> self next-state name) 'target-swim-down)) - (seek! (-> self control unknown-float001) -6144.0 (* 4096.0 (-> self clock seconds-per-frame))) - (seek! (-> self control unknown-float001) 0.0 (* 2048.0 (-> self clock seconds-per-frame))) + (seek! (-> self control unknown-float001) -6144.0 (* 4096.0 (seconds-per-frame))) + (seek! (-> self control unknown-float001) 0.0 (* 2048.0 (seconds-per-frame))) ) (set! (-> self control draw-offset y) (-> self control unknown-float001)) ) @@ -858,7 +854,7 @@ (f26-0 f28-0) (f24-0 (+ f0-13 f30-0)) ) - (set! f30-0 (seek f30-0 0.0 (* 32768.0 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 0.0 (* 32768.0 (seconds-per-frame)))) (vector+! (-> self control transv) (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f24-0) @@ -1002,7 +998,7 @@ ) (suspend) (ja :num! (loop! f30-0)) - (set! f30-0 (seek f30-0 1.0 (-> self clock seconds-per-frame))) + (set! f30-0 (seek f30-0 1.0 (seconds-per-frame))) ) ) #f diff --git a/goal_src/jak2/engine/target/target-tube.gc b/goal_src/jak2/engine/target/target-tube.gc index eec4926a87..4b40914263 100644 --- a/goal_src/jak2/engine/target/target-tube.gc +++ b/goal_src/jak2/engine/target/target-tube.gc @@ -165,12 +165,12 @@ 1.0 0.0 ) - (* 2.0 (-> self clock seconds-per-frame)) + (* 2.0 (seconds-per-frame)) ) (seek! (-> self tube tube-sound-pitch) (lerp-scale -0.15 0.15 (-> self control ctrl-xz-vel) 0.0 122880.0) - (* 0.5 (-> self clock seconds-per-frame)) + (* 0.5 (seconds-per-frame)) ) (let ((f1-2 (-> self tube tube-sound-vol)) (f0-9 (-> self tube tube-sound-pitch)) @@ -288,7 +288,7 @@ (vector-v++! (-> self control transv-ctrl) s4-2) ) (let* ((f1-8 (-> self control current-surface fric)) - (f0-17 (- 1.0 (* 60.0 (-> self clock seconds-per-frame) (- 1.0 f1-8)))) + (f0-17 (- 1.0 (* 60.0 (seconds-per-frame) (- 1.0 f1-8)))) (f0-19 (* 0.5 (+ 1.0 f0-17))) ) (set! (-> self control transv-ctrl x) (* (-> self control transv-ctrl x) f0-19)) @@ -646,7 +646,7 @@ 0.0 36864.0 ) - (-> self clock seconds-per-frame) + (seconds-per-frame) ) ) (set! (-> self tube turn-anim-vel) @@ -655,7 +655,7 @@ (fmin 100.0 (* (-> self tube turn-anim-vel) (lerp-scale 0.96 0.9 (-> self control ctrl-xz-vel) 0.0 36864.0))) ) ) - (+! (-> self tube turn-anim-frame) (* (-> self tube turn-anim-vel) (-> self clock seconds-per-frame))) + (+! (-> self tube turn-anim-frame) (* (-> self tube turn-anim-vel) (seconds-per-frame))) (set! (-> self tube turn-anim-frame) (fmax -20.0 (fmin 20.0 (-> self tube turn-anim-frame)))) (cond ((and (>= (-> self tube turn-anim-frame) 20.0) (>= (-> self tube turn-anim-vel) 0.0)) @@ -756,7 +756,7 @@ (seek! (-> self control unknown-float35) (fmax 0.0 (fmin 1.0 (* 0.00012207031 (+ -2048.0 (-> self control ctrl-xz-vel))))) - (-> self clock seconds-per-frame) + (seconds-per-frame) ) (none) ) diff --git a/goal_src/jak2/engine/target/target-turret-shot.gc b/goal_src/jak2/engine/target/target-turret-shot.gc index 77b8fbd740..70d139d81a 100644 --- a/goal_src/jak2/engine/target/target-turret-shot.gc +++ b/goal_src/jak2/engine/target/target-turret-shot.gc @@ -279,22 +279,8 @@ (set! (-> *part-id-table* 915 init-specs 4 initial-valuef) f28-0) ) (vector-normalize! s5-1 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-5 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 607)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s4-0 quad)) - (t9-2 a0-5 a1-2 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-6 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 608)) - (a2-4 *launch-matrix*) - ) - (set! (-> a2-4 trans quad) (-> s4-0 quad)) - (t9-3 a0-6 a1-3 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 607) s4-0) + (launch-particles (-> *part-id-table* 608) s4-0) ) (let ((s4-1 (new 'stack-no-clear 'matrix)) (f26-0 (* 0.000027126736 f30-0)) @@ -305,14 +291,7 @@ (set! (-> s4-1 trans quad) (-> gp-0 quad)) (set! (-> *part-id-table* 923 init-specs 3 initial-valuef) (* f26-0 f30-1)) (set! (-> *part-id-table* 923 init-specs 4 initial-valuef) (* f26-0 f28-1)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 923) - s4-1 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 923) s4-1 :origin-is-matrix #t) (set! (-> *part-id-table* 923 init-specs 3 initial-valuef) f30-1) (set! (-> *part-id-table* 923 init-specs 4 initial-valuef) f28-1) ) diff --git a/goal_src/jak2/engine/target/target-turret.gc b/goal_src/jak2/engine/target/target-turret.gc index 3d052ebea4..40938578cc 100644 --- a/goal_src/jak2/engine/target/target-turret.gc +++ b/goal_src/jak2/engine/target/target-turret.gc @@ -989,6 +989,7 @@ (go-virtual setup) ) ) + ;; og:preserve-this target-look-at-me! macro (target-look-at-me! :trans (vector+! (new 'stack-no-clear 'vector) (the-as vector (-> self root root-prim prim-core)) (new 'static 'vector :y 2048.0 :w 1.0))) (base-turret-method-36 self) (suspend) @@ -1000,12 +1001,7 @@ :post (behavior () (cond ((-> self enable-controls) - (quaternion-slerp! - (-> self root quat) - (-> self root quat) - (-> self init-quat) - (* 3.0 (-> self clock seconds-per-frame)) - ) + (quaternion-slerp! (-> self root quat) (-> self root quat) (-> self init-quat) (* 3.0 (seconds-per-frame))) (quaternion-copy! (-> self target-quat) (-> self root quat)) ) (else @@ -1208,7 +1204,7 @@ (base-turret-method-35 self) (base-turret-method-37 self) (when (>= (-> *camera-combiner* interp-val) 1.0) - (seek! (-> self path-speed-mult) (-> self path-speed-mult-final) (-> self clock seconds-per-frame)) + (seek! (-> self path-speed-mult) (-> self path-speed-mult-final) (seconds-per-frame)) (let ((gp-0 (-> self path-mode))) (case gp-0 ((1) @@ -1220,7 +1216,7 @@ (set! (-> self root trans quad) (-> s5-0 quad)) (set! (-> self root trans y) (+ (-> s5-0 y) (-> self ride-height))) ) - (seek! (-> self ride-height) 2048.0 (* 2048.0 (-> self clock seconds-per-frame))) + (seek! (-> self ride-height) 2048.0 (* 2048.0 (seconds-per-frame))) (set! (-> self path-u-prev) (-> self path-u)) (seek! (-> self path-u) @@ -1228,7 +1224,7 @@ 0.0 1.0 ) - (* (-> self path-speed) (-> self path-speed-mult) (-> self clock seconds-per-frame)) + (* (-> self path-speed) (-> self path-speed-mult) (seconds-per-frame)) ) (base-turret-method-38 self) (when (= (-> self path-u) 1.0) @@ -1290,7 +1286,7 @@ (when (-> s5-0 enable) (let ((s4-0 (-> s5-0 transform))) (let ((f0-3 (* 2.4 (fabs (-> s4-0 trans z))))) - (seek! (-> s4-0 trans z) 0.0 (* f0-3 (-> self clock seconds-per-frame))) + (seek! (-> s4-0 trans z) 0.0 (* f0-3 (seconds-per-frame))) ) (if (= (-> s4-0 trans z) 0.0) (set! (-> s5-0 enable) #f) @@ -1303,21 +1299,17 @@ (set! (-> self rotyvv) (analog-input (the-as int (-> *cpad-list* cpads 0 leftx)) 128.0 32.0 110.0 -98304.0)) (set! (-> self rotxvv) (analog-input (the-as int (-> *cpad-list* cpads 0 lefty)) 128.0 32.0 110.0 -65536.0)) ) - (+! (-> self rotyv) (* (-> self rotyvv) (-> self clock seconds-per-frame))) - (seek! (-> self rotyv) 0.0 (* 32768.0 (-> self clock seconds-per-frame))) + (+! (-> self rotyv) (* (-> self rotyvv) (seconds-per-frame))) + (seek! (-> self rotyv) 0.0 (* 32768.0 (seconds-per-frame))) (set! (-> self rotyv) (fmax -14563.556 (fmin 14563.556 (-> self rotyv)))) (set! (-> self roty) - (the float - (sar (shl (the int (+ (-> self roty) (* (-> self rotyv) (-> self clock seconds-per-frame)))) 48) 48) - ) + (the float (sar (shl (the int (+ (-> self roty) (* (-> self rotyv) (seconds-per-frame)))) 48) 48)) ) - (+! (-> self rotxv) (* (-> self rotxvv) (-> self clock seconds-per-frame))) - (seek! (-> self rotxv) 0.0 (* 32768.0 (-> self clock seconds-per-frame))) + (+! (-> self rotxv) (* (-> self rotxvv) (seconds-per-frame))) + (seek! (-> self rotxv) 0.0 (* 32768.0 (seconds-per-frame))) (set! (-> self rotxv) (fmax -9102.223 (fmin 9102.223 (-> self rotxv)))) (set! (-> self rotx) - (the float - (sar (shl (the int (+ (-> self rotx) (* (-> self rotxv) (-> self clock seconds-per-frame)))) 48) 48) - ) + (the float (sar (shl (the int (+ (-> self rotx) (* (-> self rotxv) (seconds-per-frame)))) 48) 48)) ) (cond ((>= (-> self rotx) (-> self rotx-max)) @@ -1369,9 +1361,9 @@ (seek! (-> self heat) (-> self heat-target) - (* (fmin 0.5 (fabs (- (-> self heat) (-> self heat-target)))) (-> self clock seconds-per-frame)) + (* (fmin 0.5 (fabs (- (-> self heat) (-> self heat-target)))) (seconds-per-frame)) ) - (seek! (-> self heat-target) 0.0 (* 0.4 (-> self clock seconds-per-frame))) + (seek! (-> self heat-target) 0.0 (* 0.4 (seconds-per-frame))) (transform-post) (none) ) @@ -1413,6 +1405,7 @@ (ja :group! (-> self draw art-group data 2)) (until #f (base-turret-method-37 self) + ;; og:preserve-this target-look-at-me! macro (target-look-at-me! :trans (vector+! (new 'stack-no-clear 'vector) (the-as vector (-> self root root-prim prim-core)) (new 'static 'vector :y 2048.0 :w 1.0))) (suspend) ) @@ -1426,14 +1419,14 @@ (set! (-> self root trans quad) (-> gp-0 quad)) (set! (-> self root trans y) (+ (-> gp-0 y) (-> self ride-height))) ) - (seek! (-> self ride-height) 0.0 (* 2048.0 (-> self clock seconds-per-frame))) + (seek! (-> self ride-height) 0.0 (* 2048.0 (seconds-per-frame))) ) (dotimes (gp-1 4) (let ((s5-0 (-> self gun-recoil-jmod gp-1))) (when (-> s5-0 enable) (let ((s4-0 (-> s5-0 transform))) (let ((f0-7 (* 2.4 (fabs (-> s4-0 trans z))))) - (seek! (-> s4-0 trans z) 0.0 (* f0-7 (-> self clock seconds-per-frame))) + (seek! (-> s4-0 trans z) 0.0 (* f0-7 (seconds-per-frame))) ) (if (= (-> s4-0 trans z) 0.0) (set! (-> s5-0 enable) #f) @@ -1443,10 +1436,7 @@ ) ) (set! (-> self rotxv) - (* (deg-diff - (-> self rotx) - (deg-seek-smooth (-> self rotx) 0.0 (* 16384.0 (-> self clock seconds-per-frame)) 0.1) - ) + (* (deg-diff (-> self rotx) (deg-seek-smooth (-> self rotx) 0.0 (* 16384.0 (seconds-per-frame)) 0.1)) (-> self clock frames-per-second) ) ) @@ -1456,7 +1446,7 @@ (deg-seek-smooth (-> self roty) (the float (sar (shl (the int (quaternion-y-angle (-> self init-quat))) 48) 48)) - (* 21845.334 (-> self clock seconds-per-frame)) + (* 21845.334 (seconds-per-frame)) 0.1 ) ) @@ -1464,14 +1454,10 @@ ) ) (set! (-> self roty) - (the float - (sar (shl (the int (+ (-> self roty) (* (-> self rotyv) (-> self clock seconds-per-frame)))) 48) 48) - ) + (the float (sar (shl (the int (+ (-> self roty) (* (-> self rotyv) (seconds-per-frame)))) 48) 48)) ) (set! (-> self rotx) - (the float - (sar (shl (the int (+ (-> self rotx) (* (-> self rotxv) (-> self clock seconds-per-frame)))) 48) 48) - ) + (the float (sar (shl (the int (+ (-> self rotx) (* (-> self rotxv) (seconds-per-frame)))) 48) 48)) ) (base-turret-method-40 self) (transform-post) @@ -1621,101 +1607,99 @@ ) (defmethod base-turret-method-47 base-turret ((obj base-turret)) - (with-pp - (let ((a0-1 (-> obj root trans)) - (f30-0 0.0) - (s4-0 (the-as process-drawable #f)) - ) - (let ((s5-0 (new 'stack-no-clear 'array 'collide-shape 32)) - (a1-0 (new 'stack-no-clear 'vector)) - ) - (set! (-> a1-0 quad) (-> a0-1 quad)) - (set! (-> a1-0 w) 409600.0) - (countdown (s3-0 (fill-actor-list-for-sphere *actor-hash* (the-as sphere a1-0) s5-0 32)) - (let* ((s2-0 (-> s5-0 s3-0)) - (a0-5 (if (type? s2-0 collide-shape) - s2-0 - ) - ) - ) - (when a0-5 - (let* ((s1-0 (-> a0-5 process)) - (s2-1 (if (type? s1-0 process-focusable) - s1-0 - ) - ) - ) - (when (and s2-1 - (logtest? (process-mask enemy) (-> s2-1 mask)) - (logtest? (process-mask collectable) (-> s2-1 mask)) - (not (focus-test? (the-as process-focusable s2-1) disable dead ignore inactive)) - (!= s2-1 obj) - (!= s2-1 *target*) - (base-turret-method-46 obj s2-1) - ) - (let ((f0-1 (vector-vector-xz-distance (-> obj root trans) (-> s2-1 root trans)))) - (when (or (not s4-0) (< f0-1 f30-0)) - (set! s4-0 s2-1) - (set! f30-0 f0-1) - ) - ) - ) - ) - ) - ) - ) + (let ((a0-1 (-> obj root trans)) + (f30-0 0.0) + (s4-0 (the-as process-drawable #f)) ) - (cond - (s4-0 - (let ((s5-1 (new 'stack-no-clear 'vector))) - (set! (-> s5-1 x) 0.0) - (set! (-> s5-1 y) 10240.0) - (set! (-> s5-1 z) 0.0) - (set! (-> s5-1 w) 1.0) - (let ((s1-1 (new 'stack-no-clear 'vector)) - (s3-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 12))) - (s2-2 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) - ) - (vector-matrix*! s5-1 s5-1 (-> (the-as process-focusable s4-0) node-list data 0 bone transform)) - (vector-line-distance-point! s5-1 s3-1 (vector+float*! (new 'stack-no-clear 'vector) s3-1 s2-2 4096.0) s1-1) - (let* ((a1-10 (vector-! (new 'stack-no-clear 'vector) s5-1 s1-1)) - (s4-1 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) a1-10 (-> obj root quat))) - (f30-1 (vector-vector-angle-safe s2-2 (vector-! (new 'stack-no-clear 'vector) s5-1 s3-1))) + (let ((s5-0 (new 'stack-no-clear 'array 'collide-shape 32)) + (a1-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> a1-0 quad) (-> a0-1 quad)) + (set! (-> a1-0 w) 409600.0) + (countdown (s3-0 (fill-actor-list-for-sphere *actor-hash* (the-as sphere a1-0) s5-0 32)) + (let* ((s2-0 (-> s5-0 s3-0)) + (a0-5 (if (type? s2-0 collide-shape) + s2-0 + ) ) - (let ((f0-10 (- (atan (-> s4-1 x) (-> s4-1 y))))) - (if (logtest? (-> *game-info* secrets) (game-secrets hflip-screen)) - (set! f0-10 (* -1.0 f0-10)) - ) - (set! (-> obj arrow-angle) (deg-seek (-> obj arrow-angle) f0-10 (* 65536.0 (-> pp clock seconds-per-frame)))) - ) - (cond - ((< 910.2222 f30-1) - (seek! (-> obj arrow-alpha) 1.0 (-> pp clock seconds-per-frame)) - (send-event (handle->process (-> obj hud)) 'set-target-flash #f) + ) + (when a0-5 + (let* ((s1-0 (-> a0-5 process)) + (s2-1 (if (type? s1-0 process-focusable) + s1-0 + ) + ) ) - (else - (seek! (-> obj arrow-alpha) 0.0 (* 4.0 (-> pp clock seconds-per-frame))) - (send-event (handle->process (-> obj hud)) 'set-target-flash #t) + (when (and s2-1 + (logtest? (process-mask enemy) (-> s2-1 mask)) + (logtest? (process-mask collectable) (-> s2-1 mask)) + (not (focus-test? (the-as process-focusable s2-1) disable dead ignore inactive)) + (!= s2-1 obj) + (!= s2-1 *target*) + (base-turret-method-46 obj s2-1) + ) + (let ((f0-1 (vector-vector-xz-distance (-> obj root trans) (-> s2-1 root trans)))) + (when (or (not s4-0) (< f0-1 f30-0)) + (set! s4-0 s2-1) + (set! f30-0 f0-1) ) ) ) ) - (seek! - (-> obj arrow-red) - (lerp-scale 1.0 0.0 (vector-vector-distance s5-1 (-> obj root trans)) 122880.0 245760.0) - (-> pp clock seconds-per-frame) - ) ) ) - (else - (seek! (-> obj arrow-alpha) 0.0 (-> pp clock seconds-per-frame)) - (send-event (handle->process (-> obj hud)) 'set-target-flash #f) - ) ) ) - 0 - (none) + (cond + (s4-0 + (let ((s5-1 (new 'stack-no-clear 'vector))) + (set! (-> s5-1 x) 0.0) + (set! (-> s5-1 y) 10240.0) + (set! (-> s5-1 z) 0.0) + (set! (-> s5-1 w) 1.0) + (let ((s1-1 (new 'stack-no-clear 'vector)) + (s3-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 12))) + (s2-2 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) + ) + (vector-matrix*! s5-1 s5-1 (-> (the-as process-focusable s4-0) node-list data 0 bone transform)) + (vector-line-distance-point! s5-1 s3-1 (vector+float*! (new 'stack-no-clear 'vector) s3-1 s2-2 4096.0) s1-1) + (let* ((a1-10 (vector-! (new 'stack-no-clear 'vector) s5-1 s1-1)) + (s4-1 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) a1-10 (-> obj root quat))) + (f30-1 (vector-vector-angle-safe s2-2 (vector-! (new 'stack-no-clear 'vector) s5-1 s3-1))) + ) + (let ((f0-10 (- (atan (-> s4-1 x) (-> s4-1 y))))) + (if (logtest? (-> *game-info* secrets) (game-secrets hflip-screen)) + (set! f0-10 (* -1.0 f0-10)) + ) + (set! (-> obj arrow-angle) (deg-seek (-> obj arrow-angle) f0-10 (* 65536.0 (seconds-per-frame)))) + ) + (cond + ((< 910.2222 f30-1) + (seek! (-> obj arrow-alpha) 1.0 (seconds-per-frame)) + (send-event (handle->process (-> obj hud)) 'set-target-flash #f) + ) + (else + (seek! (-> obj arrow-alpha) 0.0 (* 4.0 (seconds-per-frame))) + (send-event (handle->process (-> obj hud)) 'set-target-flash #t) + ) + ) + ) + ) + (seek! + (-> obj arrow-red) + (lerp-scale 1.0 0.0 (vector-vector-distance s5-1 (-> obj root trans)) 122880.0 245760.0) + (seconds-per-frame) + ) + ) + ) + (else + (seek! (-> obj arrow-alpha) 0.0 (seconds-per-frame)) + (send-event (handle->process (-> obj hud)) 'set-target-flash #f) + ) + ) ) + 0 + (none) ) (defmethod base-turret-method-43 base-turret ((obj base-turret)) @@ -1731,7 +1715,8 @@ (defmethod turret-init! base-turret ((obj base-turret) (arg0 entity-actor) (arg1 matrix)) (local-vars (sv-16 res-tag)) - (stack-size-set! (-> obj main-thread) 1024) ;; changed + ;; og:preserve-this changed from 512 + (stack-size-set! (-> obj main-thread) 1024) (let ((s3-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-others)))) (set! (-> s3-0 dynam) (copy *standard-dynamics* 'process)) (set! (-> s3-0 reaction) cshape-reaction-default) @@ -2024,7 +2009,7 @@ (set! (-> obj path-speed-mult-final) 0.0) ) (('set-speed-mult) - ;; NOTE: cast to (array int32) has been added because the turret-path params were changed to boxed int arrays + ;; og:preserve-this cast to (array int32) has been added because the turret-path params were changed to boxed int arrays (set! (-> obj path-speed-mult-final) (* 0.1 (the float (/ (-> (the-as (array int32) (-> arg0 param)) 0) 8)))) ) (('enable-controls) diff --git a/goal_src/jak2/engine/target/target-util.gc b/goal_src/jak2/engine/target/target-util.gc index e4f1b335a5..9bc4df8848 100644 --- a/goal_src/jak2/engine/target/target-util.gc +++ b/goal_src/jak2/engine/target/target-util.gc @@ -1039,9 +1039,8 @@ (set-vector! s1-0 0.0 0.0 0.0 1.0) ) (when (logtest? arg0 (align-opts adjust-x-vel)) - (set! (-> a1-3 x) (+ (* (-> arg1 trans x) (-> s2-0 x) (-> pp clock frames-per-second)) - (* (-> s1-0 x) (-> pp clock seconds-per-frame)) - ) + (set! (-> a1-3 x) + (+ (* (-> arg1 trans x) (-> s2-0 x) (-> pp clock frames-per-second)) (* (-> s1-0 x) (seconds-per-frame))) ) (if (not (logtest? arg0 (align-opts adjust-xz-vel keep-other-velocities))) (set! (-> a1-3 z) 0.0) @@ -1050,15 +1049,13 @@ (if (and (logtest? arg0 (align-opts adjust-y-vel)) (not (and (logtest? arg0 (align-opts ignore-y-if-zero)) (= (-> arg1 trans y) 0.0))) ) - (set! (-> a1-3 y) (+ (* (-> arg1 trans y) (-> s2-0 y) (-> pp clock frames-per-second)) - (* (-> s1-0 y) (-> pp clock seconds-per-frame)) - ) + (set! (-> a1-3 y) + (+ (* (-> arg1 trans y) (-> s2-0 y) (-> pp clock frames-per-second)) (* (-> s1-0 y) (seconds-per-frame))) ) ) (when (logtest? arg0 (align-opts adjust-xz-vel)) - (set! (-> a1-3 z) (+ (* (-> arg1 trans z) (-> s2-0 z) (-> pp clock frames-per-second)) - (* (-> s1-0 z) (-> pp clock seconds-per-frame)) - ) + (set! (-> a1-3 z) + (+ (* (-> arg1 trans z) (-> s2-0 z) (-> pp clock frames-per-second)) (* (-> s1-0 z) (seconds-per-frame))) ) (if (not (logtest? arg0 (align-opts adjust-x-vel keep-other-velocities))) (set! (-> a1-3 x) 0.0) @@ -1192,8 +1189,8 @@ ) (while (< 0.0 f0-0) (set! f1-1 (+ 5.0 f1-1)) - (+! f0-0 (* f2-0 (-> self clock seconds-per-frame))) - (set! f2-0 (- f2-0 (* (-> self control dynam gravity-length) (-> self clock seconds-per-frame)))) + (+! f0-0 (* f2-0 (seconds-per-frame))) + (set! f2-0 (- f2-0 (* (-> self control dynam gravity-length) (seconds-per-frame)))) ) (the time-frame f1-1) ) diff --git a/goal_src/jak2/engine/target/target.gc b/goal_src/jak2/engine/target/target.gc index 6f24ded39f..0ed50d21b4 100644 --- a/goal_src/jak2/engine/target/target.gc +++ b/goal_src/jak2/engine/target/target.gc @@ -559,7 +559,7 @@ ) ) ((nonzero? (-> self control sliding-start-time)) - (seek! (-> self control force-turn-to-strength) 0.0 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> self control force-turn-to-strength) 0.0 (* 4.0 (seconds-per-frame))) ) ) (set! (-> self control turn-lockout-end-time) (+ (current-time) (seconds 0.1))) @@ -1188,7 +1188,7 @@ (seek! (-> self control unknown-float35) (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ -10240.0 (-> self control ctrl-xz-vel))))) - (-> self clock seconds-per-frame) + (seconds-per-frame) ) (none) ) @@ -1442,7 +1442,7 @@ (seek! (-> self control unknown-float35) (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ -10240.0 (-> self control ctrl-xz-vel))))) - (-> self clock seconds-per-frame) + (seconds-per-frame) ) (none) ) @@ -1599,7 +1599,7 @@ (seek! (-> self control unknown-float35) (fmax 0.0 (fmin 1.0 (* 0.00012207031 (+ -2048.0 (-> self control ctrl-xz-vel))))) - (-> self clock seconds-per-frame) + (seconds-per-frame) ) (none) ) @@ -2618,7 +2618,7 @@ (go target-falling #f) ) ((< (the-as float f26-0) 0.0) - (set! f26-0 (seek (the-as float f26-0) -0.04096 (* 491520.0 (-> self clock seconds-per-frame)))) + (set! f26-0 (seek (the-as float f26-0) -0.04096 (* 491520.0 (seconds-per-frame)))) (set-forward-vel (the-as float f26-0)) ) ((and (nonzero? (-> self control unknown-time-frame18)) @@ -2896,8 +2896,8 @@ ) ) (else - (let* ((f1-5 (/ f0-2 (* (-> self control dynam gravity-length) (-> self clock seconds-per-frame)))) - (f0-7 (* 0.5 f1-5 (-> self clock seconds-per-frame) f0-2)) + (let* ((f1-5 (/ f0-2 (* (-> self control dynam gravity-length) (seconds-per-frame)))) + (f0-7 (* 0.5 f1-5 (seconds-per-frame) f0-2)) ) (let ((v1-22 (ja-group))) (if (and v1-22 @@ -2959,7 +2959,7 @@ (seek! (-> self control dynam gravity-length) (-> self control standard-dynamics gravity-length) - (* 245760.0 (-> self clock seconds-per-frame)) + (* 245760.0 (seconds-per-frame)) ) ) (when (and (>= (- (current-time) (-> self state-time)) (seconds 0.05)) @@ -3475,7 +3475,7 @@ (lambda :behavior target ((arg0 target)) (set! (-> arg0 control root-prim local-sphere w) - (seek (-> arg0 control root-prim local-sphere w) 28672.0 (* 286720.0 (-> self clock seconds-per-frame))) + (seek (-> arg0 control root-prim local-sphere w) 28672.0 (* 286720.0 (seconds-per-frame))) ) ) ) diff --git a/goal_src/jak2/engine/target/target2.gc b/goal_src/jak2/engine/target/target2.gc index b2cb566faf..a98b12b491 100644 --- a/goal_src/jak2/engine/target/target2.gc +++ b/goal_src/jak2/engine/target/target2.gc @@ -893,7 +893,7 @@ ) ) (if (using-gun? self) - (seek! (-> self control draw-offset y) 778.24 (* 4096.0 (-> self clock seconds-per-frame))) + (seek! (-> self control draw-offset y) 778.24 (* 4096.0 (seconds-per-frame))) ) (none) ) @@ -1308,7 +1308,7 @@ (set! (-> self control unknown-word04) (the-as uint (seek (the-as float (-> self control unknown-word04)) (-> self control did-move-to-pole-or-max-jump-height) - (* 2.0 (-> self clock seconds-per-frame)) + (* 2.0 (seconds-per-frame)) ) ) ) @@ -1689,8 +1689,9 @@ :trans (behavior () (set! (-> self control time-of-last-debug-float) (current-time)) (cond + ;; og:preserve-this no debug hover when paused. ((and (cpad-hold? (-> self control cpad number) r2) - (not *pause-lock*)) ;; no debug hover when paused. + (not *pause-lock*)) (let ((a1-0 (new 'stack-no-clear 'vector))) (set! (-> a1-0 quad) (-> self control trans quad)) (let ((v1-14 (new-stack-vector0)) diff --git a/goal_src/jak2/engine/ui/bigmap.gc b/goal_src/jak2/engine/ui/bigmap.gc index 7be42c4c10..4e616d91b3 100644 --- a/goal_src/jak2/engine/ui/bigmap.gc +++ b/goal_src/jak2/engine/ui/bigmap.gc @@ -76,6 +76,7 @@ (let ((layer-data (-> obj compressed-masks layer-idx))) ;; only update if past this compressed layer and was moved. (if (and layer-data (>= (the-as int layer-data) (the-as int compressed-mask-data))) + ;; og:preserve-this cast (set! (-> obj compressed-masks layer-idx) (the (pointer int8) (&- layer-data (the-as uint decompressed-size)))) ) ) @@ -88,6 +89,7 @@ ;; there was no compressed data. Initialize masks to 0. (let ((data (-> obj bit-mask data))) (dotimes (qw-idx 416) + ;; og:preserve-this cast (set! (-> (the-as (pointer int128) (&+ data (* qw-idx 16)))) (the int128 0)) ) ) @@ -274,6 +276,7 @@ (none) ) +;; og:preserve-this (defun pc-upload-map-texture ((dma-buf dma-buffer) (image-data pointer) (clut-data pointer) (width int) (height int) (tbp int) (cbp int)) "Added function in the PC port to create a map texture. The format should be mt8 for the image and ct32 for the clut (16 x 16)" (pc-texture-anim-flag start-anim-array dma-buf) @@ -339,19 +342,22 @@ (let ((v1-1 (-> s4-0 0)) (s3-0 (-> s4-0 1)) ) + ;; og:preserve-this ;; (texture-upload-dma obj arg0 (the-as (pointer uint32) (+ (+ v1-1 16) (the-as uint s4-0))) 0 16 16 (gs-psm ct32)) ;; (dma-buffer-add-gs-set arg0 (texflush 1)) ;; (texture-upload-dma obj arg0 (the-as (pointer uint32) (+ (+ s3-0 16) (the-as uint s4-0))) 8 512 208 (gs-psm mt8)) - ;; Added + ;; og:preserve-this added (pc-upload-map-texture arg0 (&+ s4-0 s3-0 16) (&+ s4-0 v1-1 16) 512 208 8 0) ) (dma-buffer-add-gs-set arg0 (tex0-1 (new 'static 'gs-tex0 :tbp0 #x8 :tbw #x8 :psm #x13 :tw #x9 :th #x9 :cld #x1)) - (tex1-1 (new 'static 'gs-tex1 :mmag #x1 :mmin #x1)) ;; pc port note : originally mmag and mmin 0 + ;; og:preserve-this originally mmag and mmin 0 + (tex1-1 (new 'static 'gs-tex1 :mmag #x1 :mmin #x1)) (texflush 1) ) (sprite-dma obj arg0 (-> obj x0) (-> obj y0) (-> obj x1) (-> obj y2)) (let ((v1-16 (+ #x1a000 (-> s4-0 1)))) + ;; og:preserve-this ;;(texture-upload-dma obj arg0 (the-as (pointer uint32) (+ (+ v1-16 16) (the-as uint s4-0))) 8 512 208 (gs-psm mt8)) (pc-upload-map-texture arg0 (&+ s4-0 v1-16 16) (&+ s4-0 (-> s4-0 0) 16) 512 208 8 0) ) @@ -360,6 +366,7 @@ (let ((v1-25 (+ (-> s4-0 0) 1024)) (s3-1 (+ #x34000 (-> s4-0 1))) ) + ;; og:preserve-this ;; (texture-upload-dma obj arg0 (the-as (pointer uint32) (+ (+ v1-25 16) (the-as uint s4-0))) 0 16 16 (gs-psm ct32)) ;; (texture-upload-dma obj arg0 (the-as (pointer uint32) (+ (+ s3-1 16) (the-as uint s4-0))) 8 512 208 (gs-psm mt8)) (pc-upload-map-texture arg0 (&+ s4-0 s3-1 16) (&+ s4-0 v1-25 16) 512 208 8 0) @@ -371,6 +378,7 @@ ) (sprite-dma obj arg0 (-> obj x0) (-> obj y0) (-> obj x1) (-> obj y2)) (let ((v1-37 (+ #x4e000 (-> s4-0 1)))) + ;; og:preserve-this ;; (texture-upload-dma obj arg0 (the-as (pointer uint32) (+ (+ v1-37 16) (the-as uint s4-0))) 8 512 208 (gs-psm mt8)) (pc-upload-map-texture arg0 (&+ s4-0 v1-37 16) (&+ s4-0 (+ (-> s4-0 0) 1024) 16) 512 208 8 0) ) @@ -384,9 +392,11 @@ "Generate DMA to draw the city map. This has only 2 layers, but has scrolling." (let ((s4-0 (the-as (pointer uint32) (-> obj bigmap-image art-group)))) + ;; og:preserve-this ; (texture-upload-dma obj arg0 (the-as (pointer uint32) (+ (+ (-> s4-0 0) 16) (the-as uint s4-0))) 0 16 16 (gs-psm ct32)) ; (dma-buffer-add-gs-set arg0 (texflush 0)) (let ((v1-10 (+ (* (the int (-> obj scroll y)) 512) (-> s4-0 1)))) + ;; og:preserve-this ; (texture-upload-dma obj arg0 (the-as (pointer uint32) (+ (+ v1-10 16) (the-as int s4-0))) 8 512 208 (gs-psm mt8)) (pc-upload-map-texture arg0 ;; dma @@ -400,11 +410,13 @@ ) (dma-buffer-add-gs-set arg0 (tex0-1 (new 'static 'gs-tex0 :tbp0 #x8 :tbw #x8 :psm #x13 :tw #x9 :th #x9 :cld #x1)) - (tex1-1 (new 'static 'gs-tex1 :mmag #x1 :mmin #x1)) ;; pc port note : originally mmag and mmin 0 + ;; og:preserve-this originally mmag and mmin 0 + (tex1-1 (new 'static 'gs-tex1 :mmag #x1 :mmin #x1)) (texflush 1) ) (sprite-dma obj arg0 (-> obj x0) (-> obj y0) (-> obj x1) (-> obj y2)) (let ((v1-21 (+ (* (+ (the int (-> obj scroll y)) 208) 512) (-> s4-0 1)))) + ;; og:preserve-this ;(texture-upload-dma obj arg0 (the-as (pointer uint32) (+ (+ v1-21 16) (the-as int s4-0))) 8 512 208 (gs-psm mt8)) (pc-upload-map-texture arg0 ;; dma @@ -498,6 +510,7 @@ (set! (-> v1-21 y) (+ (-> a0-23 y) f0-1)) ) ) + ;; og:preserve-this cast (let* ((t1-2 (the-as int (+ (* (the-as uint 320) (-> arg1 class icon-xy x)) 8))) (t2-0 (the-as int (+ (* (the-as uint 320) (-> arg1 class icon-xy y)) 8))) (a2-8 (+ t1-2 312)) @@ -672,164 +685,162 @@ (defmethod draw bigmap ((obj bigmap) (arg0 int) (arg1 int) (arg2 int) (arg3 int)) (local-vars (sv-96 pointer) (sv-100 texture) (sv-104 matrix) (sv-112 int)) - (with-pp - (when (and (= (file-status (-> obj bigmap-image) "world-map" (the-as int (-> obj load-index))) 'active) - (not (-> obj loading-flag)) - ) - (let ((f0-0 (-> *video-params* relative-x-scale))) - (cond - ((-> *blit-displays-work* horizontal-flip-flag) - (set! (-> obj x0) (+ (the int (* (the float (+ arg2 -2048)) f0-0)) 2048)) - (set! (-> obj x1) (+ (the int (* (the float (+ arg0 -2048)) f0-0)) 2048)) - ) - (else - (set! (-> obj x0) (+ (the int (* (the float (+ arg0 -2048)) f0-0)) 2048)) - (set! (-> obj x1) (+ (the int (* (the float (+ arg2 -2048)) f0-0)) 2048)) - ) + (when (and (= (file-status (-> obj bigmap-image) "world-map" (the-as int (-> obj load-index))) 'active) + (not (-> obj loading-flag)) + ) + (let ((f0-0 (-> *video-params* relative-x-scale))) + (cond + ((-> *blit-displays-work* horizontal-flip-flag) + (set! (-> obj x0) (+ (the int (* (the float (+ arg2 -2048)) f0-0)) 2048)) + (set! (-> obj x1) (+ (the int (* (the float (+ arg0 -2048)) f0-0)) 2048)) + ) + (else + (set! (-> obj x0) (+ (the int (* (the float (+ arg0 -2048)) f0-0)) 2048)) + (set! (-> obj x1) (+ (the int (* (the float (+ arg2 -2048)) f0-0)) 2048)) ) ) - (set! (-> obj y0) arg1) - (set! (-> obj y1) arg3) - (set! (-> obj y2) (/ (+ arg1 arg3) 2)) - (with-dma-buffer-add-bucket ((s4-1 (-> *display* frames (-> *display* on-screen) global-buf)) - (bucket-id tex-all-map) - ) - (dma-buffer-add-gs-set s4-1 - (test-1 (new 'static 'gs-test :ate #x1 :afail #x3 :zte #x1 :ztst (gs-ztest always))) - (alpha-1 (new 'static 'gs-alpha :b #x1 :d #x1)) - (clamp-1 (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp))) - ) - (if (= (-> obj bigmap-index) 20) - (draw-city-map obj s4-1) - (draw-non-city-map obj s4-1) - ) - ) - (with-dma-buffer-add-bucket ((s4-2 (-> *display* frames (-> *display* on-screen) global-buf)) - (bucket-id tex-all-map) - ) - (when (= (-> obj y0) 1840) - (let ((s2-1 (-> s4-2 base)) - (s3-1 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x15 :page #xc93))) - ) - (when s3-1 - (set! (-> (the-as (pointer uint128) s2-1) 0) (-> obj adgif-tmpl dma-vif quad)) - (set! (-> (the-as (pointer uint128) s2-1) 1) (-> obj adgif-tmpl quad 1)) - (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s2-1 32)) s3-1) - (&+! (-> s4-2 base) 112) + ) + (set! (-> obj y0) arg1) + (set! (-> obj y1) arg3) + (set! (-> obj y2) (/ (+ arg1 arg3) 2)) + (with-dma-buffer-add-bucket ((s4-1 (-> *display* frames (-> *display* on-screen) global-buf)) + (bucket-id tex-all-map) + ) + (dma-buffer-add-gs-set s4-1 + (test-1 (new 'static 'gs-test :ate #x1 :afail #x3 :zte #x1 :ztst (gs-ztest always))) + (alpha-1 (new 'static 'gs-alpha :b #x1 :d #x1)) + (clamp-1 (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp))) + ) + (if (= (-> obj bigmap-index) 20) + (draw-city-map obj s4-1) + (draw-non-city-map obj s4-1) + ) + ) + (with-dma-buffer-add-bucket ((s4-2 (-> *display* frames (-> *display* on-screen) global-buf)) + (bucket-id tex-all-map) + ) + (when (= (-> obj y0) 1840) + (let ((s2-1 (-> s4-2 base)) + (s3-1 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x15 :page #xc93))) ) - (if (not s3-1) - (format 0 "ERROR: bigmap: mini-map-icons texture is #f~%") - ) + (when s3-1 + (set! (-> (the-as (pointer uint128) s2-1) 0) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s2-1) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s2-1 32)) s3-1) + (&+! (-> s4-2 base) 112) ) - (let ((s3-2 (the-as connection-pers (-> *minimap* engine alive-list)))) - (while s3-2 - (let ((a2-3 (the-as connection-minimap s3-2))) - (when (logtest? (-> a2-3 class flags) (minimap-flag bigmap)) - (cond - ((= (-> obj bigmap-index) 20) - (draw-from-minimap obj s4-2 a2-3) - ) - (else - (if (not (logtest? (-> a2-3 class flags) (minimap-flag city-only))) - (draw-from-minimap obj s4-2 a2-3) - ) - ) + (if (not s3-1) + (format 0 "ERROR: bigmap: mini-map-icons texture is #f~%") + ) + ) + (let ((s3-2 (the-as connection-pers (-> *minimap* engine alive-list)))) + (while s3-2 + (let ((a2-3 (the-as connection-minimap s3-2))) + (when (logtest? (-> a2-3 class flags) (minimap-flag bigmap)) + (cond + ((= (-> obj bigmap-index) 20) + (draw-from-minimap obj s4-2 a2-3) + ) + (else + (if (not (logtest? (-> a2-3 class flags) (minimap-flag city-only))) + (draw-from-minimap obj s4-2 a2-3) + ) ) ) ) - (set! s3-2 (-> s3-2 next)) ) + (set! s3-2 (-> s3-2 next)) ) - (let ((s3-3 (new 'stack-no-clear 'vector)) - (f30-0 (-> *video-params* relative-x-scale)) - ) - (vector-z-quaternion! s3-3 (-> *target* control quat)) - (vector-xz-normalize! s3-3 -1.0) - (set! (-> s3-3 y) 0.0) - (set! (-> s3-3 w) 0.0) - (set! sv-96 (-> s4-2 base)) - (set! sv-100 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x42 :page #xb))) - (set! sv-104 (new 'stack-no-clear 'matrix)) - (set! sv-112 (the int (* 56.0 f30-0))) - (when sv-100 - (set-pos! obj (target-pos 0)) - (if (-> *blit-displays-work* horizontal-flip-flag) - (set! f30-0 (- f30-0)) - ) - (set-vector! (-> (the-as matrix sv-104) vector 0) (* (-> s3-3 z) f30-0) 0.0 (- (-> s3-3 x)) 0.0) - (set-vector! (-> (the-as matrix sv-104) vector 1) 0.0 1.0 0.0 0.0) - (set-vector! (-> (the-as matrix sv-104) vector 2) (* (-> s3-3 x) f30-0) 0.0 (-> s3-3 z) 1.0) - (set-vector! - (-> (the-as matrix sv-104) trans) - (+ (the float (-> obj x0)) (* 2.0 f30-0 (the float (-> obj pos x)))) - 0.0 - (- (the float (+ (* (-> obj pos y) 2) 1840)) (-> obj scroll y)) - 1.0 - ) - (set-vector! (-> obj corner 0) 0.0 0.0 -7.0 1.0) - (set-vector! (-> obj corner 1) 7.0 0.0 0.0 1.0) - (set-vector! (-> obj corner 2) -7.0 0.0 0.0 1.0) - (set-vector! (-> obj corner 3) 0.0 0.0 7.0 1.0) - (vector-matrix*! (the-as vector (-> obj corner)) (the-as vector (-> obj corner)) sv-104) - (vector-matrix*! (-> obj corner 1) (-> obj corner 1) sv-104) - (vector-matrix*! (-> obj corner 2) (-> obj corner 2) sv-104) - (vector-matrix*! (-> obj corner 3) (-> obj corner 3) sv-104) - (let ((v1-101 (-> obj adgif-tmpl dma-vif quad))) - (set! (-> (the-as (pointer uint128) sv-96)) v1-101) - ) - (let ((v1-102 (-> obj adgif-tmpl quad 1))) - (set! (-> (the-as (pointer uint128) sv-96) 1) v1-102) - ) - (adgif-shader<-texture-simple! (the-as adgif-shader (&+ sv-96 32)) sv-100) - (let ((v1-104 (-> obj draw-tmpl dma-vif quad))) - (set! (-> (the-as (pointer uint128) sv-96) 7) v1-104) - ) - (let ((v1-105 (-> obj draw-tmpl quad 1))) - (set! (-> (the-as (pointer uint128) sv-96) 8) v1-105) - ) - (set-vector! (the-as vector4w (&+ sv-96 144)) 0 255 255 128) - (set-vector! (the-as vector4w (&+ sv-96 160)) 0 0 0 0) - (set-vector! - (the-as vector4w (&+ sv-96 176)) - (the int (* 16.0 (-> obj corner 0 x))) - (the int (* 16.0 (-> obj corner 0 z))) - #xffffff - 0 - ) - (set-vector! (the-as vector4w (&+ sv-96 192)) 256 0 0 0) - (set-vector! - (the-as vector4w (&+ sv-96 208)) - (the int (* 16.0 (-> obj corner 1 x))) - (the int (* 16.0 (-> obj corner 1 z))) - #xffffff - 0 - ) - (set-vector! (the-as vector4w (&+ sv-96 224)) 0 256 0 0) - (set-vector! - (the-as vector4w (&+ sv-96 240)) - (the int (* 16.0 (-> obj corner 2 x))) - (the int (* 16.0 (-> obj corner 2 z))) - #xffffff - 0 - ) - (set-vector! (the-as vector4w (&+ sv-96 256)) 256 256 0 0) - (set-vector! - (the-as vector4w (&+ sv-96 272)) - (the int (* 16.0 (-> obj corner 3 x))) - (the int (* 16.0 (-> obj corner 3 z))) - #xffffff - 0 - ) - (&+! (-> s4-2 base) 288) + ) + (let ((s3-3 (new 'stack-no-clear 'vector)) + (f30-0 (-> *video-params* relative-x-scale)) ) + (vector-z-quaternion! s3-3 (-> *target* control quat)) + (vector-xz-normalize! s3-3 -1.0) + (set! (-> s3-3 y) 0.0) + (set! (-> s3-3 w) 0.0) + (set! sv-96 (-> s4-2 base)) + (set! sv-100 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x42 :page #xb))) + (set! sv-104 (new 'stack-no-clear 'matrix)) + (set! sv-112 (the int (* 56.0 f30-0))) + (when sv-100 + (set-pos! obj (target-pos 0)) + (if (-> *blit-displays-work* horizontal-flip-flag) + (set! f30-0 (- f30-0)) + ) + (set-vector! (-> (the-as matrix sv-104) vector 0) (* (-> s3-3 z) f30-0) 0.0 (- (-> s3-3 x)) 0.0) + (set-vector! (-> (the-as matrix sv-104) vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> (the-as matrix sv-104) vector 2) (* (-> s3-3 x) f30-0) 0.0 (-> s3-3 z) 1.0) + (set-vector! + (-> (the-as matrix sv-104) trans) + (+ (the float (-> obj x0)) (* 2.0 f30-0 (the float (-> obj pos x)))) + 0.0 + (- (the float (+ (* (-> obj pos y) 2) 1840)) (-> obj scroll y)) + 1.0 + ) + (set-vector! (-> obj corner 0) 0.0 0.0 -7.0 1.0) + (set-vector! (-> obj corner 1) 7.0 0.0 0.0 1.0) + (set-vector! (-> obj corner 2) -7.0 0.0 0.0 1.0) + (set-vector! (-> obj corner 3) 0.0 0.0 7.0 1.0) + (vector-matrix*! (the-as vector (-> obj corner)) (the-as vector (-> obj corner)) sv-104) + (vector-matrix*! (-> obj corner 1) (-> obj corner 1) sv-104) + (vector-matrix*! (-> obj corner 2) (-> obj corner 2) sv-104) + (vector-matrix*! (-> obj corner 3) (-> obj corner 3) sv-104) + (let ((v1-101 (-> obj adgif-tmpl dma-vif quad))) + (set! (-> (the-as (pointer uint128) sv-96)) v1-101) + ) + (let ((v1-102 (-> obj adgif-tmpl quad 1))) + (set! (-> (the-as (pointer uint128) sv-96) 1) v1-102) + ) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ sv-96 32)) sv-100) + (let ((v1-104 (-> obj draw-tmpl dma-vif quad))) + (set! (-> (the-as (pointer uint128) sv-96) 7) v1-104) + ) + (let ((v1-105 (-> obj draw-tmpl quad 1))) + (set! (-> (the-as (pointer uint128) sv-96) 8) v1-105) + ) + (set-vector! (the-as vector4w (&+ sv-96 144)) 0 255 255 128) + (set-vector! (the-as vector4w (&+ sv-96 160)) 0 0 0 0) + (set-vector! + (the-as vector4w (&+ sv-96 176)) + (the int (* 16.0 (-> obj corner 0 x))) + (the int (* 16.0 (-> obj corner 0 z))) + #xffffff + 0 + ) + (set-vector! (the-as vector4w (&+ sv-96 192)) 256 0 0 0) + (set-vector! + (the-as vector4w (&+ sv-96 208)) + (the int (* 16.0 (-> obj corner 1 x))) + (the int (* 16.0 (-> obj corner 1 z))) + #xffffff + 0 + ) + (set-vector! (the-as vector4w (&+ sv-96 224)) 0 256 0 0) + (set-vector! + (the-as vector4w (&+ sv-96 240)) + (the int (* 16.0 (-> obj corner 2 x))) + (the int (* 16.0 (-> obj corner 2 z))) + #xffffff + 0 + ) + (set-vector! (the-as vector4w (&+ sv-96 256)) 256 256 0 0) + (set-vector! + (the-as vector4w (&+ sv-96 272)) + (the int (* 16.0 (-> obj corner 3 x))) + (the int (* 16.0 (-> obj corner 3 z))) + #xffffff + 0 + ) + (&+! (-> s4-2 base) 288) ) ) ) - (+! (-> obj goal-time) (* 16.0 (-> pp clock seconds-per-frame))) - (set-dirty-mask! (-> *level* default-level) 4 #x1a400 0) ) - 0 + (+! (-> obj goal-time) (* 16.0 (seconds-per-frame))) + (set-dirty-mask! (-> *level* default-level) 4 #x1a400 0) ) + 0 ) (defmethod handle-cpad-inputs bigmap ((obj bigmap)) @@ -924,10 +935,8 @@ 0 ) -;; definition for symbol *map-save-ptr*, type (pointer uint64) (define *map-save-ptr* (the-as (pointer uint64) #f)) -;; definition for method 16 of type bigmap (defmethod dump-to-file bigmap ((obj bigmap)) (if (not *map-save-ptr*) (set! *map-save-ptr* (the-as (pointer uint64) (malloc 'debug #xd0000))) @@ -972,15 +981,9 @@ ) ) -;; failed to figure out what this is: (kmemopen global "bigmap") -;; definition for symbol *bigmap*, type bigmap +;; og:preserve-this (define-perm *bigmap* bigmap (new 'global 'bigmap)) -;; failed to figure out what this is: (kmemclose) - - - - diff --git a/goal_src/jak2/engine/ui/minimap.gc b/goal_src/jak2/engine/ui/minimap.gc index 90b03e0468..3de25ca8da 100644 --- a/goal_src/jak2/engine/ui/minimap.gc +++ b/goal_src/jak2/engine/ui/minimap.gc @@ -834,7 +834,7 @@ ) (let ((gp-0 *minimap*)) - ;; note : minimap engine connections raised for pc port + ;; og:preserve-this minimap engine connections raised for pc port (set! (-> gp-0 engine) (new 'global 'engine-minimap '*minimap* (#if PC_PORT 256 64) connection-minimap)) (countdown (v1-7 6) (set! (-> gp-0 trail v1-7 used-by) #f) @@ -988,7 +988,7 @@ ) ) ) - ;; added in PC port: they timed stuff, we just allow it to run a fixed number of iterations. + ;; og:preserve-this added in PC port: they timed stuff, we just allow it to run a fixed number of iterations. (+! v1-1 100) (.mfc0 v1-1 Count) ) @@ -1134,75 +1134,73 @@ (defmethod run-pending-updates! engine-minimap ((obj engine-minimap) (arg0 time-frame)) - (with-pp - (let ((s2-0 (the-as (pointer connection-pers) (&-> obj alive-list))) - (s3-0 (-> obj alive-list)) - ) - (while s3-0 - (let ((s4-0 (-> s3-0 next))) - (when (not (paused?)) - (cond - ((logtest? (-> s3-0 flags) (minimap-flag fade-out)) - (logclear! (-> s3-0 flags) (minimap-flag fade-in)) - (seek! (-> s3-0 alpha) 0.0 (-> pp clock seconds-per-frame)) - ) - ((and (logtest? (-> s3-0 flags) (minimap-flag task-graph)) - (not (logtest? (-> *setting-control* user-current minimap) 32)) - ) - (logior! (-> s3-0 flags) (minimap-flag fade-in)) - (seek! (-> s3-0 alpha) 0.0 (-> pp clock seconds-per-frame)) - ) - ((logtest? (-> s3-0 flags) (minimap-flag fade-in)) - (let ((f30-0 1.0)) - (when (logtest? (-> s3-0 class flags) (minimap-flag trail)) - (let ((v1-26 (get-trail-for-connection *minimap* s3-0 #f))) - (if (or (not v1-26) (>= (- (current-time) (the-as int (-> v1-26 last-updated))) (seconds 5))) - (set! f30-0 0.0001) - ) - ) - ) - (seek! (-> s3-0 alpha) f30-0 (-> pp clock seconds-per-frame)) - ) - (if (= (-> s3-0 alpha) 1.0) - (logclear! (-> s3-0 flags) (minimap-flag fade-in)) - ) - ) - ) - ) + (let ((s2-0 (the-as (pointer connection-pers) (&-> obj alive-list))) + (s3-0 (-> obj alive-list)) + ) + (while s3-0 + (let ((s4-0 (-> s3-0 next))) + (when (not (paused?)) (cond - ((and (logtest? (-> s3-0 flags) (minimap-flag fade-out)) (= (-> s3-0 alpha) 0.0)) - (kill-callback obj s3-0) - (set! (-> s2-0 0) (-> s3-0 next)) - (set! (-> s3-0 next) (-> obj dead-list)) - (set! (-> obj dead-list) s3-0) - (+! (-> obj length) -1) + ((logtest? (-> s3-0 flags) (minimap-flag fade-out)) + (logclear! (-> s3-0 flags) (minimap-flag fade-in)) + (seek! (-> s3-0 alpha) 0.0 (seconds-per-frame)) ) - ((and (handle->process (-> s3-0 handle)) - (not (and (= (logand (the-as int (-> s3-0 position)) 7) 4) - (= (-> (the-as basic (-> s3-0 position)) type) entity-actor) - (logtest? (-> (the-as entity-actor (-> s3-0 position)) extra perm status) - (entity-perm-status dead subtask-complete bit-12) - ) - ) - ) + ((and (logtest? (-> s3-0 flags) (minimap-flag task-graph)) + (not (logtest? (-> *setting-control* user-current minimap) 32)) ) - (update-callback obj) - (set! s2-0 (&-> s3-0 next)) + (logior! (-> s3-0 flags) (minimap-flag fade-in)) + (seek! (-> s3-0 alpha) 0.0 (seconds-per-frame)) + ) + ((logtest? (-> s3-0 flags) (minimap-flag fade-in)) + (let ((f30-0 1.0)) + (when (logtest? (-> s3-0 class flags) (minimap-flag trail)) + (let ((v1-26 (get-trail-for-connection *minimap* s3-0 #f))) + (if (or (not v1-26) (>= (- (current-time) (the-as int (-> v1-26 last-updated))) (seconds 5))) + (set! f30-0 0.0001) + ) + ) + ) + (seek! (-> s3-0 alpha) f30-0 (seconds-per-frame)) + ) + (if (= (-> s3-0 alpha) 1.0) + (logclear! (-> s3-0 flags) (minimap-flag fade-in)) + ) ) - (else - (logior! (-> s3-0 flags) (minimap-flag fade-out)) - (update-callback obj) - (set! s2-0 (&-> s3-0 next)) - ) ) - (set! s3-0 (the-as connection-minimap s4-0)) ) + (cond + ((and (logtest? (-> s3-0 flags) (minimap-flag fade-out)) (= (-> s3-0 alpha) 0.0)) + (kill-callback obj s3-0) + (set! (-> s2-0 0) (-> s3-0 next)) + (set! (-> s3-0 next) (-> obj dead-list)) + (set! (-> obj dead-list) s3-0) + (+! (-> obj length) -1) + ) + ((and (handle->process (-> s3-0 handle)) + (not (and (= (logand (the-as int (-> s3-0 position)) 7) 4) + (= (-> (the-as basic (-> s3-0 position)) type) entity-actor) + (logtest? (-> (the-as entity-actor (-> s3-0 position)) extra perm status) + (entity-perm-status dead subtask-complete bit-12) + ) + ) + ) + ) + (update-callback obj) + (set! s2-0 (&-> s3-0 next)) + ) + (else + (logior! (-> s3-0 flags) (minimap-flag fade-out)) + (update-callback obj) + (set! s2-0 (&-> s3-0 next)) + ) + ) + (set! s3-0 (the-as connection-minimap s4-0)) ) ) - (set! (-> obj execute-time) arg0) - 0 - (none) ) + (set! (-> obj execute-time) arg0) + 0 + (none) ) (defmethod add-icon! minimap ((obj minimap) (arg0 process) (arg1 uint) (arg2 int) (arg3 vector) (arg4 int)) @@ -1257,6 +1255,7 @@ (defun lookup-minimap-texture-by-name ((arg0 string) (arg1 string) (arg2 (pointer texture-page))) (local-vars (sv-16 texture-page)) + ;; og:preserve-this constant (dotimes (s3-0 LEVEL_TOTAL) (let ((s2-0 (-> *level* level s3-0))) (when (or (= (-> s2-0 status) 'active) (= (-> s2-0 status) 'reserved)) @@ -1281,83 +1280,81 @@ ) (defmethod update! minimap ((obj minimap)) - (with-pp - (set! (-> obj ctywide) (level-get *level* 'ctywide)) - (set! (-> obj map-bits) (the-as uint 0)) - (dotimes (v1-2 (-> *level* length)) - (let ((a0-5 (-> *level* level v1-2))) - (if (= (-> a0-5 status) 'active) - (logior! (-> obj map-bits) (-> a0-5 info city-map-bits)) - ) - ) - ) - (let ((s5-0 (the int (* 0.0000006357829 (+ 3145728.0 (-> (target-pos 0) x))))) - (v1-9 (the int (* 0.0000006357829 (+ 3145728.0 (-> (target-pos 0) z))))) + (set! (-> obj ctywide) (level-get *level* 'ctywide)) + (set! (-> obj map-bits) (the-as uint 0)) + (dotimes (v1-2 (-> *level* length)) + (let ((a0-5 (-> *level* level v1-2))) + (if (= (-> a0-5 status) 'active) + (logior! (-> obj map-bits) (-> a0-5 info city-map-bits)) ) - (when (and (< s5-0 5) (< v1-9 7) (logtest? (-> obj map-bits) (ash 1 (+ (* 5 v1-9) s5-0)))) - (let ((a0-19 (-> *minimap-texture-name-array* data (+ (* 5 v1-9) s5-0)))) - (when a0-19 - (set! (-> obj last-name) a0-19) - (set! (-> obj minimap-corner quad) (-> *minimap-corner-array* data (+ (* 5 v1-9) s5-0) quad)) - (dotimes (a0-21 (-> *level* length)) - (let ((a1-23 (-> *level* level a0-21))) - (when (= (-> a1-23 status) 'active) - (if (logtest? (-> a1-23 info city-map-bits) (ash 1 (+ (* 5 v1-9) s5-0))) - (set! (-> obj level) a1-23) - ) - ) + ) + ) + (let ((s5-0 (the int (* 0.0000006357829 (+ 3145728.0 (-> (target-pos 0) x))))) + (v1-9 (the int (* 0.0000006357829 (+ 3145728.0 (-> (target-pos 0) z))))) + ) + (when (and (< s5-0 5) (< v1-9 7) (logtest? (-> obj map-bits) (ash 1 (+ (* 5 v1-9) s5-0)))) + (let ((a0-19 (-> *minimap-texture-name-array* data (+ (* 5 v1-9) s5-0)))) + (when a0-19 + (set! (-> obj last-name) a0-19) + (set! (-> obj minimap-corner quad) (-> *minimap-corner-array* data (+ (* 5 v1-9) s5-0) quad)) + (dotimes (a0-21 (-> *level* length)) + (let ((a1-23 (-> *level* level a0-21))) + (when (= (-> a1-23 status) 'active) + (if (logtest? (-> a1-23 info city-map-bits) (ash 1 (+ (* 5 v1-9) s5-0))) + (set! (-> obj level) a1-23) + ) ) ) ) ) ) ) - (set! (-> obj last-tex) - (lookup-minimap-texture-by-name (-> obj last-name) (the-as string #f) (the-as (pointer texture-page) #f)) - ) - (let ((f30-2 (-> pp clock seconds-per-frame))) - (let ((v1-12 (-> obj last-tex))) - (cond - ((or (not (-> obj level)) (zero? (-> obj level)) (!= (-> obj level status) 'active) (not v1-12)) - (set! (-> obj offset w) 0.0) - ) - ((not (logtest? (-> *setting-control* user-current minimap) 128)) - (seek! (-> obj offset w) 0.0 f30-2) - ) - ((and *target* (nonzero? (-> obj map-bits))) - (set! (-> obj offset w) (fmin 0.5 (+ (-> obj offset w) f30-2))) - ) - (else - (set! (-> obj offset w) 0.0) - ) - ) + ) + (set! (-> obj last-tex) + (lookup-minimap-texture-by-name (-> obj last-name) (the-as string #f) (the-as (pointer texture-page) #f)) ) + (let ((f30-2 (seconds-per-frame))) + (let ((v1-12 (-> obj last-tex))) (cond - ((and *target* (focus-test? *target* board pilot)) - (let ((f0-14 0.5) - (f1-2 0.000008138021) - (f2-0 122880.0) - (v1-33 (-> *target* control transv)) - ) - (set! (-> obj target-inv-scale) - (fmax f0-14 (* f1-2 (fmin f2-0 (sqrtf (+ (* (-> v1-33 x) (-> v1-33 x)) (* (-> v1-33 z) (-> v1-33 z))))))) - ) - ) + ((or (not (-> obj level)) (zero? (-> obj level)) (!= (-> obj level status) 'active) (not v1-12)) + (set! (-> obj offset w) 0.0) + ) + ((not (logtest? (-> *setting-control* user-current minimap) 128)) + (seek! (-> obj offset w) 0.0 f30-2) + ) + ((and *target* (nonzero? (-> obj map-bits))) + (set! (-> obj offset w) (fmin 0.5 (+ (-> obj offset w) f30-2))) ) (else - (set! (-> obj target-inv-scale) 0.5) + (set! (-> obj offset w) 0.0) ) ) - (seek! (-> obj offset y) (-> obj target-inv-scale) (* 0.5 f30-2)) ) - (run-pending-updates! (-> obj engine) (-> *display* base-clock frame-counter)) - (when (and (-> obj ctywide) (and (= (-> obj ctywide status) 'active) (!= (-> obj offset w) 0.0))) - (update-trails obj) - (if *display-trail-graph* - (debug-draw obj) - ) - #t + (cond + ((and *target* (focus-test? *target* board pilot)) + (let ((f0-14 0.5) + (f1-2 0.000008138021) + (f2-0 122880.0) + (v1-33 (-> *target* control transv)) + ) + (set! (-> obj target-inv-scale) + (fmax f0-14 (* f1-2 (fmin f2-0 (sqrtf (+ (* (-> v1-33 x) (-> v1-33 x)) (* (-> v1-33 z) (-> v1-33 z))))))) + ) + ) + ) + (else + (set! (-> obj target-inv-scale) 0.5) + ) ) + (seek! (-> obj offset y) (-> obj target-inv-scale) (* 0.5 f30-2)) + ) + (run-pending-updates! (-> obj engine) (-> *display* base-clock frame-counter)) + (when (and (-> obj ctywide) (and (= (-> obj ctywide status) 'active) (!= (-> obj offset w) 0.0))) + (update-trails obj) + (if *display-trail-graph* + (debug-draw obj) + ) + #t ) ) @@ -1848,6 +1845,7 @@ (the-as int (-> a3-13 a)) ) ) + ;; og:preserve-this cast (set-vector! (-> (the-as (inline-array vector4w) sv-208) 3) (the-as int a2-6) (the-as int a1-12) 0 0) (set-vector! (-> (the-as (inline-array vector4w) sv-208) 4) @@ -1856,6 +1854,7 @@ 0 0 ) + ;; og:preserve-this cast (set-vector! (-> (the-as (inline-array vector4w) sv-208) 5) (the-as int a2-6) (the-as int a0-43) 0 0) (set-vector! (-> (the-as (inline-array vector4w) sv-208) 6) @@ -1864,6 +1863,7 @@ 0 0 ) + ;; og:preserve-this cast (set-vector! (-> (the-as (inline-array vector4w) sv-208) 7) (the-as int v1-54) (the-as int a1-12) 0 0) (set-vector! (-> (the-as (inline-array vector4w) sv-208) 8) @@ -1872,6 +1872,7 @@ 0 0 ) + ;; og:preserve-this cast (set-vector! (-> (the-as (inline-array vector4w) sv-208) 9) (the-as int v1-54) (the-as int a0-43) 0 0) ) (set-vector! @@ -1888,168 +1889,166 @@ ) (defmethod sub-draw-1-1 minimap ((obj minimap) (arg0 minimap-draw-work)) - (with-pp - (let ((s5-0 (-> arg0 buf))) - (set-display-gs-state s5-0 (the-as int (-> *map-texture-base* vram-page)) 128 128 0 0) - (let ((s3-0 (-> s5-0 base))) - (set! (-> (the-as (pointer uint128) s3-0)) (-> obj adgif-tmpl dma-vif quad)) - (set! (-> (the-as (pointer uint128) s3-0) 1) (-> obj adgif-tmpl quad 1)) - (let ((a1-2 (-> obj last-tex))) - (if (not a1-2) - (set! a1-2 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x9b :page #xb))) - ) - (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s3-0 32)) (the-as texture a1-2)) - ) - ) - (&+! (-> s5-0 base) 112) - (dma-buffer-add-gs-set s5-0 - (clamp-1 (new 'static 'gs-clamp)) - (test-1 (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))) - (texa (new 'static 'gs-texa :ta1 #x80)) - ) - (let ((s3-1 (the-as object (-> s5-0 base)))) - ;; PC PORT note : this fixes minimap stretching at non-4x3 aspeect ratio - (let ((f30-0 (#if PC_PORT 1.0 (-> *video-params* relative-x-scale)))) - (set! (-> (the-as (pointer uint128) s3-1)) (-> obj draw2-tmpl dma-vif quad)) - (set! (-> (the-as (pointer uint128) s3-1) 1) (-> obj draw2-tmpl quad 1)) - (let ((s2-0 (new-stack-vector0))) - (let ((s1-0 (new-stack-vector0))) - (set! (-> s1-0 quad) (-> (matrix-local->world #f #f) vector 2 quad)) - (set! (-> s1-0 y) 0.0) - (vector-normalize! s1-0 1.0) - (let ((v1-16 (-> arg0 mat))) - (set! (-> v1-16 vector 0 x) (* (-> s1-0 z) f30-0)) - (set! (-> v1-16 vector 0 y) 0.0) - (set! (-> v1-16 vector 0 z) (- (-> s1-0 x))) - (set! (-> v1-16 vector 0 w) 0.0) - ) - (set-vector! (-> arg0 mat vector 1) 0.0 1.0 0.0 0.0) - (set-vector! (-> arg0 mat vector 2) (* (-> s1-0 x) f30-0) 0.0 (-> s1-0 z) 0.0) - ) - (vector-! s2-0 (target-pos 0) (-> obj minimap-corner)) - (set! (-> s2-0 x) (* 0.00000023841858 (-> s2-0 x))) - (set! (-> s2-0 z) (* 0.00000023841858 (-> s2-0 z))) - (vector+! (-> arg0 mat trans) s2-0 (-> obj offset)) + (let ((s5-0 (-> arg0 buf))) + (set-display-gs-state s5-0 (the-as int (-> *map-texture-base* vram-page)) 128 128 0 0) + (let ((s3-0 (-> s5-0 base))) + (set! (-> (the-as (pointer uint128) s3-0)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-0) 1) (-> obj adgif-tmpl quad 1)) + (let ((a1-2 (-> obj last-tex))) + (if (not a1-2) + (set! a1-2 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x9b :page #xb))) ) - ) - (set! (-> arg0 mat trans y) 0.0) - (set! (-> arg0 corner 0 x) (* 0.25 (-> obj offset y))) - (set! (-> arg0 corner 0 z) (* 0.25 (-> obj offset y))) - (set! (-> arg0 corner 0 w) 1.0) - (set! (-> arg0 corner 1 x) (* -0.25 (-> obj offset y))) - (set! (-> arg0 corner 1 z) (* 0.25 (-> obj offset y))) - (set! (-> arg0 corner 1 w) 1.0) - (set! (-> arg0 corner 2 x) (* 0.25 (-> obj offset y))) - (set! (-> arg0 corner 2 z) (* -0.25 (-> obj offset y))) - (set! (-> arg0 corner 2 w) 1.0) - (set! (-> arg0 corner 3 x) (* -0.25 (-> obj offset y))) - (set! (-> arg0 corner 3 z) (* -0.25 (-> obj offset y))) - (set! (-> arg0 corner 3 w) 1.0) - (vector-matrix*! (the-as vector (-> arg0 corner)) (the-as vector (-> arg0 corner)) (-> arg0 mat)) - (vector-matrix*! (-> arg0 corner 1) (-> arg0 corner 1) (-> arg0 mat)) - (vector-matrix*! (-> arg0 corner 2) (-> arg0 corner 2) (-> arg0 mat)) - (vector-matrix*! (-> arg0 corner 3) (-> arg0 corner 3) (-> arg0 mat)) - (set-vector! (-> (the-as (inline-array vector4w) s3-1) 2) 128 128 128 128) - (set-vector! (-> (the-as (inline-array vector) s3-1) 3) (-> arg0 corner 0 x) (-> arg0 corner 0 z) 1.0 1.0) - (set-vector! (-> (the-as (inline-array vector4w) s3-1) 4) 0 0 #xffffff 0) - (set-vector! (-> (the-as (inline-array vector) s3-1) 5) (-> arg0 corner 1 x) (-> arg0 corner 1 z) 1.0 1.0) - (set-vector! (-> (the-as (inline-array vector4w) s3-1) 6) 2048 0 #xffffff 0) - (set-vector! (-> (the-as (inline-array vector) s3-1) 7) (-> arg0 corner 2 x) (-> arg0 corner 2 z) 1.0 1.0) - (set-vector! (-> (the-as (inline-array vector4w) s3-1) 8) 0 2048 #xffffff 0) - (set-vector! (-> (the-as (inline-array vector) s3-1) 9) (-> arg0 corner 3 x) (-> arg0 corner 3 z) 1.0 1.0) - (set-vector! (-> (the-as (inline-array vector4w) s3-1) 10) 2048 2048 #xffffff 0) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s3-0 32)) (the-as texture a1-2)) ) - (&+! (-> s5-0 base) 176) - (let ((f0-57 1.0)) - (when *target* - (if (focus-test? *target* pilot) - (set! f0-57 0.0) - ) - ) - (seek! (-> obj frustum-alpha) f0-57 (-> pp clock seconds-per-frame)) - ) - (dma-buffer-add-gs-set s5-0 (xyoffset-1 (new 'static 'gs-xy-offset :ofx #x640 :ofy #x640))) - (when (!= (-> obj frustum-alpha) 0.0) - (let ((s3-2 (the-as connection-pers (-> *minimap* engine alive-list)))) - (while s3-2 - (let ((a2-6 s3-2)) - (if (logtest? (-> (the-as connection-minimap a2-6) class flags) (minimap-flag frustum)) - (draw-frustum-1 obj arg0 (the-as connection-minimap a2-6)) - ) - ) - (set! s3-2 (-> s3-2 next)) - ) - ) - ) - (let ((s2-1 (-> arg0 buf base)) - (s3-3 (lookup-texture-by-id-fast (new 'static 'texture-id :page #x679))) - ) - (when s3-3 - (set! (-> (the-as (pointer uint128) s2-1)) (-> obj adgif-tmpl dma-vif quad)) - (set! (-> (the-as (pointer uint128) s2-1) 1) (-> obj adgif-tmpl quad 1)) - (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s2-1 32)) s3-3) - (&+! (-> arg0 buf base) 112) - ) - (if (not s3-3) - (format *stdcon* "minimap: mini-map-icons texture is #f~%") - ) - ) - (let ((s3-4 (the-as connection-pers (-> *minimap* engine alive-list)))) - (while s3-4 - (let ((a2-7 s3-4)) - (if (logtest? (-> (the-as connection-minimap a2-7) class flags) (minimap-flag frustum)) - (draw-frustum-2 obj arg0 (the-as connection-minimap a2-7)) - ) - ) - (set! s3-4 (-> s3-4 next)) - ) - ) - (let ((s3-5 (-> arg0 buf base)) - (a1-32 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x42 :page #xb))) - ) - (when a1-32 - (set! (-> (the-as (pointer uint128) s3-5)) (-> obj adgif-tmpl dma-vif quad)) - (set! (-> (the-as (pointer uint128) s3-5) 1) (-> obj adgif-tmpl quad 1)) - (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s3-5 32)) a1-32) - (&+! (-> arg0 buf base) 112) - ) - ) - (let ((s3-6 (the-as connection-pers (-> *minimap* engine alive-list)))) - (while s3-6 - (let ((a2-8 s3-6)) - (if (logtest? (-> (the-as connection-minimap a2-8) class flags) (minimap-flag racer)) - (draw-racer-2 obj arg0 (the-as connection-minimap a2-8)) - ) - ) - (set! s3-6 (-> s3-6 next)) - ) - ) - (dma-buffer-add-gs-set s5-0 - (frame-1 (new 'static 'gs-frame :fbw #x2 :fbmsk #xffffff :fbp (-> *map-texture-base* vram-page))) - (alpha-1 (new 'static 'gs-alpha :b #x1 :d #x1)) - (xyoffset-1 (new 'static 'gs-xy-offset)) - ) - (let ((s3-7 (the-as object (-> s5-0 base)))) - (set! (-> (the-as (pointer uint128) s3-7)) (-> obj adgif-tmpl dma-vif quad)) - (set! (-> (the-as (pointer uint128) s3-7) 1) (-> obj adgif-tmpl quad 1)) - (adgif-shader<-texture-simple! - (the-as adgif-shader (&-> (the-as (pointer uint128) s3-7) 2)) - (lookup-texture-by-id-fast (new 'static 'texture-id :index #x2a :page #x67a)) - ) - (set! (-> (the-as (pointer uint128) s3-7) 7) (-> obj sprite-tmpl dma-vif quad)) - (set! (-> (the-as (pointer uint128) s3-7) 8) (-> obj sprite-tmpl quad 1)) - (set-vector! (-> (the-as (inline-array vector4w) s3-7) 9) 128 128 128 128) - (set-vector! (-> (the-as (inline-array vector4w) s3-7) 10) 0 0 0 0) - (set-vector! (-> (the-as (inline-array vector4w) s3-7) 11) 0 0 #xffffff 0) - (set-vector! (-> (the-as (inline-array vector4w) s3-7) 12) 1024 1024 0 0) - (set-vector! (-> (the-as (inline-array vector4w) s3-7) 13) 2048 2048 #xffffff 0) - ) - (&+! (-> s5-0 base) 224) - (set! (-> arg0 buf) s5-0) ) - 0 - (none) + (&+! (-> s5-0 base) 112) + (dma-buffer-add-gs-set s5-0 + (clamp-1 (new 'static 'gs-clamp)) + (test-1 (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))) + (texa (new 'static 'gs-texa :ta1 #x80)) + ) + (let ((s3-1 (the-as object (-> s5-0 base)))) + ;; og:preserve-this this fixes minimap stretching at non-4x3 aspeect ratio + (let ((f30-0 (#if PC_PORT 1.0 (-> *video-params* relative-x-scale)))) + (set! (-> (the-as (pointer uint128) s3-1)) (-> obj draw2-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-1) 1) (-> obj draw2-tmpl quad 1)) + (let ((s2-0 (new-stack-vector0))) + (let ((s1-0 (new-stack-vector0))) + (set! (-> s1-0 quad) (-> (matrix-local->world #f #f) vector 2 quad)) + (set! (-> s1-0 y) 0.0) + (vector-normalize! s1-0 1.0) + (let ((v1-16 (-> arg0 mat))) + (set! (-> v1-16 vector 0 x) (* (-> s1-0 z) f30-0)) + (set! (-> v1-16 vector 0 y) 0.0) + (set! (-> v1-16 vector 0 z) (- (-> s1-0 x))) + (set! (-> v1-16 vector 0 w) 0.0) + ) + (set-vector! (-> arg0 mat vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> arg0 mat vector 2) (* (-> s1-0 x) f30-0) 0.0 (-> s1-0 z) 0.0) + ) + (vector-! s2-0 (target-pos 0) (-> obj minimap-corner)) + (set! (-> s2-0 x) (* 0.00000023841858 (-> s2-0 x))) + (set! (-> s2-0 z) (* 0.00000023841858 (-> s2-0 z))) + (vector+! (-> arg0 mat trans) s2-0 (-> obj offset)) + ) + ) + (set! (-> arg0 mat trans y) 0.0) + (set! (-> arg0 corner 0 x) (* 0.25 (-> obj offset y))) + (set! (-> arg0 corner 0 z) (* 0.25 (-> obj offset y))) + (set! (-> arg0 corner 0 w) 1.0) + (set! (-> arg0 corner 1 x) (* -0.25 (-> obj offset y))) + (set! (-> arg0 corner 1 z) (* 0.25 (-> obj offset y))) + (set! (-> arg0 corner 1 w) 1.0) + (set! (-> arg0 corner 2 x) (* 0.25 (-> obj offset y))) + (set! (-> arg0 corner 2 z) (* -0.25 (-> obj offset y))) + (set! (-> arg0 corner 2 w) 1.0) + (set! (-> arg0 corner 3 x) (* -0.25 (-> obj offset y))) + (set! (-> arg0 corner 3 z) (* -0.25 (-> obj offset y))) + (set! (-> arg0 corner 3 w) 1.0) + (vector-matrix*! (the-as vector (-> arg0 corner)) (the-as vector (-> arg0 corner)) (-> arg0 mat)) + (vector-matrix*! (-> arg0 corner 1) (-> arg0 corner 1) (-> arg0 mat)) + (vector-matrix*! (-> arg0 corner 2) (-> arg0 corner 2) (-> arg0 mat)) + (vector-matrix*! (-> arg0 corner 3) (-> arg0 corner 3) (-> arg0 mat)) + (set-vector! (-> (the-as (inline-array vector4w) s3-1) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector) s3-1) 3) (-> arg0 corner 0 x) (-> arg0 corner 0 z) 1.0 1.0) + (set-vector! (-> (the-as (inline-array vector4w) s3-1) 4) 0 0 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector) s3-1) 5) (-> arg0 corner 1 x) (-> arg0 corner 1 z) 1.0 1.0) + (set-vector! (-> (the-as (inline-array vector4w) s3-1) 6) 2048 0 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector) s3-1) 7) (-> arg0 corner 2 x) (-> arg0 corner 2 z) 1.0 1.0) + (set-vector! (-> (the-as (inline-array vector4w) s3-1) 8) 0 2048 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector) s3-1) 9) (-> arg0 corner 3 x) (-> arg0 corner 3 z) 1.0 1.0) + (set-vector! (-> (the-as (inline-array vector4w) s3-1) 10) 2048 2048 #xffffff 0) + ) + (&+! (-> s5-0 base) 176) + (let ((f0-57 1.0)) + (when *target* + (if (focus-test? *target* pilot) + (set! f0-57 0.0) + ) + ) + (seek! (-> obj frustum-alpha) f0-57 (seconds-per-frame)) + ) + (dma-buffer-add-gs-set s5-0 (xyoffset-1 (new 'static 'gs-xy-offset :ofx #x640 :ofy #x640))) + (when (!= (-> obj frustum-alpha) 0.0) + (let ((s3-2 (the-as connection-pers (-> *minimap* engine alive-list)))) + (while s3-2 + (let ((a2-6 s3-2)) + (if (logtest? (-> (the-as connection-minimap a2-6) class flags) (minimap-flag frustum)) + (draw-frustum-1 obj arg0 (the-as connection-minimap a2-6)) + ) + ) + (set! s3-2 (-> s3-2 next)) + ) + ) + ) + (let ((s2-1 (-> arg0 buf base)) + (s3-3 (lookup-texture-by-id-fast (new 'static 'texture-id :page #x679))) + ) + (when s3-3 + (set! (-> (the-as (pointer uint128) s2-1)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s2-1) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s2-1 32)) s3-3) + (&+! (-> arg0 buf base) 112) + ) + (if (not s3-3) + (format *stdcon* "minimap: mini-map-icons texture is #f~%") + ) + ) + (let ((s3-4 (the-as connection-pers (-> *minimap* engine alive-list)))) + (while s3-4 + (let ((a2-7 s3-4)) + (if (logtest? (-> (the-as connection-minimap a2-7) class flags) (minimap-flag frustum)) + (draw-frustum-2 obj arg0 (the-as connection-minimap a2-7)) + ) + ) + (set! s3-4 (-> s3-4 next)) + ) + ) + (let ((s3-5 (-> arg0 buf base)) + (a1-32 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x42 :page #xb))) + ) + (when a1-32 + (set! (-> (the-as (pointer uint128) s3-5)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-5) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s3-5 32)) a1-32) + (&+! (-> arg0 buf base) 112) + ) + ) + (let ((s3-6 (the-as connection-pers (-> *minimap* engine alive-list)))) + (while s3-6 + (let ((a2-8 s3-6)) + (if (logtest? (-> (the-as connection-minimap a2-8) class flags) (minimap-flag racer)) + (draw-racer-2 obj arg0 (the-as connection-minimap a2-8)) + ) + ) + (set! s3-6 (-> s3-6 next)) + ) + ) + (dma-buffer-add-gs-set s5-0 + (frame-1 (new 'static 'gs-frame :fbw #x2 :fbmsk #xffffff :fbp (-> *map-texture-base* vram-page))) + (alpha-1 (new 'static 'gs-alpha :b #x1 :d #x1)) + (xyoffset-1 (new 'static 'gs-xy-offset)) + ) + (let ((s3-7 (the-as object (-> s5-0 base)))) + (set! (-> (the-as (pointer uint128) s3-7)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-7) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! + (the-as adgif-shader (&-> (the-as (pointer uint128) s3-7) 2)) + (lookup-texture-by-id-fast (new 'static 'texture-id :index #x2a :page #x67a)) + ) + (set! (-> (the-as (pointer uint128) s3-7) 7) (-> obj sprite-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-7) 8) (-> obj sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) s3-7) 9) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) s3-7) 10) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) s3-7) 11) 0 0 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) s3-7) 12) 1024 1024 0 0) + (set-vector! (-> (the-as (inline-array vector4w) s3-7) 13) 2048 2048 #xffffff 0) + ) + (&+! (-> s5-0 base) 224) + (set! (-> arg0 buf) s5-0) ) + 0 + (none) ) (defmethod sub-draw-1-2 minimap ((obj minimap) (arg0 minimap-draw-work)) @@ -2133,23 +2132,27 @@ (cond ((-> *blit-displays-work* horizontal-flip-flag) (let ((v1-35 (-> arg0 mat))) + ;; og:preserve-this (set! (-> v1-35 vector 0 x) (* (-> sv-52 vector 0 z) (- (#if PC_PORT 1.0 f30-0)))) (set! (-> v1-35 vector 0 y) 0.0) (set! (-> v1-35 vector 0 z) (- (-> sv-52 vector 0 x))) (set! (-> v1-35 vector 0 w) 0.0) ) (set-vector! (-> arg0 mat vector 1) 0.0 1.0 0.0 0.0) + ;; og:preserve-this (set-vector! (-> arg0 mat vector 2) (* (-> sv-52 vector 0 x) (- (#if PC_PORT 1.0 f30-0))) 0.0 (-> sv-52 vector 0 z) 0.0) (set-vector! (-> arg0 mat trans) 0.0 0.0 (the float (+ (-> arg0 draw-pos y) 1896)) 1.0) ) (else (let ((v1-39 (-> arg0 mat))) + ;; og:preserve-this (set! (-> v1-39 vector 0 x) (* (-> sv-52 vector 0 z) (#if PC_PORT 1.0 f30-0))) (set! (-> v1-39 vector 0 y) 0.0) (set! (-> v1-39 vector 0 z) (- (-> sv-52 vector 0 x))) (set! (-> v1-39 vector 0 w) 0.0) ) (set-vector! (-> arg0 mat vector 1) 0.0 1.0 0.0 0.0) + ;; og:preserve-this (set-vector! (-> arg0 mat vector 2) (* (-> sv-52 vector 0 x) (#if PC_PORT 1.0 f30-0)) 0.0 (-> sv-52 vector 0 z) 0.0) (set-vector! (-> arg0 mat trans) 0.0 0.0 (the float (+ (-> arg0 draw-pos y) 1896)) 1.0) ) @@ -2232,8 +2235,8 @@ ) ) ) + ;; og:preserve-this revert widescreen correction done earlier (#when PC_PORT - ;; revert widescreen correction done earlier (*! (-> arg0 mat vector 0 x) f30-0) (*! (-> arg0 mat vector 2 x) f30-0) ) @@ -2246,316 +2249,313 @@ ;; WARN: Return type mismatch pointer vs none. (defmethod draw-connection minimap ((obj minimap) (arg0 minimap-draw-work) (arg1 connection-minimap)) - (with-pp - (let ((s1-0 (target-pos 0))) - (cond - ((= (-> arg1 position) #t) - (let* ((s3-0 (handle->process (-> arg1 handle))) - (v1-4 (if (type? s3-0 process-drawable) - s3-0 - ) - ) - ) - (when (and v1-4 (nonzero? (-> (the-as process-drawable v1-4) root))) - (set! (-> arg1 last-world-pos quad) (-> (the-as process-drawable v1-4) root trans quad)) + (let ((s1-0 (target-pos 0))) + (cond + ((= (-> arg1 position) #t) + (let* ((s3-0 (handle->process (-> arg1 handle))) + (v1-4 (if (type? s3-0 process-drawable) + s3-0 + ) + ) + ) + (when (and v1-4 (nonzero? (-> (the-as process-drawable v1-4) root))) + (set! (-> arg1 last-world-pos quad) (-> (the-as process-drawable v1-4) root trans quad)) + (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) + ) + ) + ) + ((and (= (logand (the-as int (-> arg1 position)) 7) 4) + (= (-> (the-as basic (-> arg1 position)) type) entity-actor) + ) + (let* ((v1-15 (-> arg1 position)) + (s3-1 (if v1-15 + (-> (the-as entity-actor v1-15) extra process) + ) + ) + (a0-16 (if (type? s3-1 process-drawable) + s3-1 + ) + ) + ) + (cond + (a0-16 + (set! (-> arg1 last-world-pos quad) (-> (the-as process-drawable a0-16) root trans quad)) + (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) + ) + (else + (set! (-> arg1 last-world-pos quad) (-> (the-as entity-actor (-> arg1 position)) extra trans quad)) (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) ) ) ) - ((and (= (logand (the-as int (-> arg1 position)) 7) 4) - (= (-> (the-as basic (-> arg1 position)) type) entity-actor) - ) - (let* ((v1-15 (-> arg1 position)) - (s3-1 (if v1-15 - (-> (the-as entity-actor v1-15) extra process) - ) - ) - (a0-16 (if (type? s3-1 process-drawable) - s3-1 - ) - ) - ) - (cond - (a0-16 - (set! (-> arg1 last-world-pos quad) (-> (the-as process-drawable a0-16) root trans quad)) - (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) - ) - (else - (set! (-> arg1 last-world-pos quad) (-> (the-as entity-actor (-> arg1 position)) extra trans quad)) - (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) - ) - ) - ) - ) - (else - (set! (-> arg1 last-world-pos quad) (-> (the-as vector (-> arg1 position)) quad)) - (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) - ) + ) + (else + (set! (-> arg1 last-world-pos quad) (-> (the-as vector (-> arg1 position)) quad)) + (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) ) - (let ((s3-2 (new 'stack-no-clear 'vector)) - (s2-0 #f) - ) - (let ((f30-0 (/ 1.0 (* 16384.0 (-> obj offset y))))) - 0.0 - (set! (-> s3-2 quad) (-> arg1 last-relative-pos quad)) - (set! (-> s3-2 x) (* (-> s3-2 x) f30-0)) - (set! (-> s3-2 z) (* (-> s3-2 z) f30-0)) - (set! (-> s3-2 y) 0.0) - (set! (-> s3-2 w) 1.0) - (let* ((v1-29 s3-2) - (f28-0 (sqrtf (+ (* (-> v1-29 x) (-> v1-29 x)) (* (-> v1-29 z) (-> v1-29 z))))) - ) - (cond - ((logtest? (-> arg1 class flags) (minimap-flag trail)) - (cond - (*trail-graph* - (let ((a2-2 (get-trail-for-connection obj arg1 #f))) - (cond - ((not a2-2) - (when (!= (-> arg1 alpha) 0.0) - (when (not (get-trail-for-connection obj arg1 #t)) - (let ((s2-1 (the-as connection-pers (-> *minimap* engine alive-list)))) - (while s2-1 - (let ((a1-12 s2-1)) - (if (and (= (the-as float (-> a1-12 param 1)) 0.0) (logtest? (-> arg1 class flags) (minimap-flag trail))) - (free-trail-by-connection *minimap* (the-as connection-minimap a1-12)) - ) - ) - (set! s2-1 (-> s2-1 next)) + ) + (let ((s3-2 (new 'stack-no-clear 'vector)) + (s2-0 #f) + ) + (let ((f30-0 (/ 1.0 (* 16384.0 (-> obj offset y))))) + 0.0 + (set! (-> s3-2 quad) (-> arg1 last-relative-pos quad)) + (set! (-> s3-2 x) (* (-> s3-2 x) f30-0)) + (set! (-> s3-2 z) (* (-> s3-2 z) f30-0)) + (set! (-> s3-2 y) 0.0) + (set! (-> s3-2 w) 1.0) + (let* ((v1-29 s3-2) + (f28-0 (sqrtf (+ (* (-> v1-29 x) (-> v1-29 x)) (* (-> v1-29 z) (-> v1-29 z))))) + ) + (cond + ((logtest? (-> arg1 class flags) (minimap-flag trail)) + (cond + (*trail-graph* + (let ((a2-2 (get-trail-for-connection obj arg1 #f))) + (cond + ((not a2-2) + (when (!= (-> arg1 alpha) 0.0) + (when (not (get-trail-for-connection obj arg1 #t)) + (let ((s2-1 (the-as connection-pers (-> *minimap* engine alive-list)))) + (while s2-1 + (let ((a1-12 s2-1)) + (if (and (= (the-as float (-> a1-12 param 1)) 0.0) (logtest? (-> arg1 class flags) (minimap-flag trail))) + (free-trail-by-connection *minimap* (the-as connection-minimap a1-12)) + ) ) + (set! s2-1 (-> s2-1 next)) ) ) ) - (set! s2-0 #t) - (set! (-> arg1 edge-ry) -131072.0) ) - ((>= (- (current-time) (the-as int (-> a2-2 last-updated))) (seconds 5)) - (set! s2-0 #t) - (set! (-> arg1 edge-ry) -131072.0) - ) - ((< 50.0 f28-0) - (let ((s0-0 (new 'stack-no-clear 'vector))) - (set! (-> s0-0 quad) (-> s3-2 quad)) - (let ((s1-1 (get-icon-draw-pos *minimap* arg1 a2-2 s1-0 f30-0 s3-2))) - (if (not s1-1) - (vector-normalize-copy! s3-2 s0-0 66.0) - ) - (let ((f30-1 (atan (-> s3-2 x) (-> s3-2 z)))) - (let ((f28-1 (-> arg1 edge-ry))) - (when (!= f28-1 -131072.0) - (let* ((f0-20 (deg- f30-1 f28-1)) - (f1-7 (fabs f0-20)) - (f2-3 (* 16384.0 (-> pp clock seconds-per-frame))) - ) - (when (< f2-3 f1-7) - (set! f30-1 (+ f28-1 (if (>= f0-20 0.0) - f2-3 - (- f2-3) - ) - ) - ) - (set-vector! s3-2 (sin f30-1) 0.0 (cos f30-1) 1.0) - (vector-normalize! s3-2 (if s1-1 - 50.0 - 66.0 - ) - ) - ) + (set! s2-0 #t) + (set! (-> arg1 edge-ry) -131072.0) + ) + ((>= (- (current-time) (the-as int (-> a2-2 last-updated))) (seconds 5)) + (set! s2-0 #t) + (set! (-> arg1 edge-ry) -131072.0) + ) + ((< 50.0 f28-0) + (let ((s0-0 (new 'stack-no-clear 'vector))) + (set! (-> s0-0 quad) (-> s3-2 quad)) + (let ((s1-1 (get-icon-draw-pos *minimap* arg1 a2-2 s1-0 f30-0 s3-2))) + (if (not s1-1) + (vector-normalize-copy! s3-2 s0-0 66.0) + ) + (let ((f30-1 (atan (-> s3-2 x) (-> s3-2 z)))) + (let ((f28-1 (-> arg1 edge-ry))) + (when (!= f28-1 -131072.0) + (let* ((f0-20 (deg- f30-1 f28-1)) + (f1-7 (fabs f0-20)) + (f2-3 (* 16384.0 (seconds-per-frame))) + ) + (when (< f2-3 f1-7) + (set! f30-1 (+ f28-1 (if (>= f0-20 0.0) + f2-3 + (- f2-3) + ) + ) + ) + (set-vector! s3-2 (sin f30-1) 0.0 (cos f30-1) 1.0) + (vector-normalize! s3-2 (if s1-1 + 50.0 + 66.0 + ) + ) ) ) ) - (set! (-> arg1 edge-ry) f30-1) ) - ) - ) - ) - (else - (set! (-> arg1 edge-ry) (atan (-> s3-2 x) (-> s3-2 z))) - ) - ) - ) - ) - (else - (set! s2-0 #t) - (set! (-> arg1 edge-ry) -131072.0) - ) - ) - ) - ((logtest? (-> arg1 class flags) (minimap-flag clamp)) - (cond - ((< 50.0 f28-0) - (let ((a1-19 (new 'stack-no-clear 'vector))) - (set! (-> a1-19 quad) (-> s3-2 quad)) - (vector-normalize-copy! s3-2 a1-19 54.0) - ) - (let ((f30-2 (atan (-> s3-2 x) (-> s3-2 z)))) - (let ((f28-2 (-> arg1 edge-ry))) - (when (!= f28-2 -131072.0) - (let* ((f0-35 (deg- f30-2 f28-2)) - (f1-9 (fabs f0-35)) - (f2-5 (* 16384.0 (-> pp clock seconds-per-frame))) - ) - (when (< f2-5 f1-9) - (set! f30-2 (+ f28-2 (if (>= f0-35 0.0) - f2-5 - (- f2-5) - ) - ) - ) - (set-vector! s3-2 (sin f30-2) 0.0 (cos f30-2) 1.0) - (vector-normalize! s3-2 54.0) + (set! (-> arg1 edge-ry) f30-1) ) ) ) ) - (set! (-> arg1 edge-ry) f30-2) - ) - ) - (else - (set! (-> arg1 edge-ry) (atan (-> s3-2 x) (-> s3-2 z))) - ) - ) - ) - (else - (if (< 50.0 f28-0) - (set! s2-0 #t) - ) - ) - ) - ) - ) - (if (or (logtest? (-> arg1 class flags) (minimap-flag frustum)) - (logtest? (-> arg1 class flags) (minimap-flag racer)) - (and (logtest? (-> arg1 class flags) (minimap-flag flash)) - (< (the-as int (logand (-> *display* base-clock integral-frame-counter) 15)) 8) - ) - ) - (set! s2-0 #t) - ) - (if (logtest? (-> arg1 class flags) (minimap-flag goal)) - (set! (-> arg1 class icon-xy x) (the-as uint (mod (the int (-> obj goal-time)) 6))) - ) - (when (not s2-0) - (vector-matrix*! s3-2 s3-2 (-> arg0 mat)) - (let ((v1-115 (the-as object (-> arg0 buf base)))) - (let* ((f0-48 (-> arg1 class scale)) - (a1-25 (-> arg1 class color)) - (a1-32 (copy-and-set-field a1-25 r (shr (* (-> a1-25 r) (the-as uint (-> obj color x))) 7))) - (a1-39 (copy-and-set-field a1-32 g (shr (* (-> a1-32 g) (the-as uint (-> obj color y))) 7))) - (a0-70 - (copy-and-set-field - (copy-and-set-field a1-39 b (shr (* (-> a1-39 b) (the-as uint (-> obj color z))) 7)) - a - (the int (* 128.0 (-> arg1 alpha))) + (else + (set! (-> arg1 edge-ry) (atan (-> s3-2 x) (-> s3-2 z))) ) ) ) - (let ((f1-16 (* 20.0 (-> *video-params* relative-x-scale) f0-48)) - (f0-49 (* 20.0 f0-48)) - ) - (set! (-> arg0 corner 0 x) (the float (the int (- (-> s3-2 x) (* 0.5 f1-16))))) - (set! (-> arg0 corner 0 z) (the float (the int (- (-> s3-2 z) (* 0.5 f0-49))))) - (#when PC_PORT - ;; pc port note : don't align icons to PS2 framebuffer positions since - ;; it results in jagged motion on PC, since the framebuffer can be any size we want - (when (-> *pc-settings* smooth-minimap?) - (set! (-> arg0 corner 0 x) (- (-> s3-2 x) (* 0.5 f1-16))) - (set! (-> arg0 corner 0 z) (- (-> s3-2 z) (* 0.5 f0-49))) + ) + (else + (set! s2-0 #t) + (set! (-> arg1 edge-ry) -131072.0) + ) + ) + ) + ((logtest? (-> arg1 class flags) (minimap-flag clamp)) + (cond + ((< 50.0 f28-0) + (let ((a1-19 (new 'stack-no-clear 'vector))) + (set! (-> a1-19 quad) (-> s3-2 quad)) + (vector-normalize-copy! s3-2 a1-19 54.0) + ) + (let ((f30-2 (atan (-> s3-2 x) (-> s3-2 z)))) + (let ((f28-2 (-> arg1 edge-ry))) + (when (!= f28-2 -131072.0) + (let* ((f0-35 (deg- f30-2 f28-2)) + (f1-9 (fabs f0-35)) + (f2-5 (* 16384.0 (seconds-per-frame))) + ) + (when (< f2-5 f1-9) + (set! f30-2 (+ f28-2 (if (>= f0-35 0.0) + f2-5 + (- f2-5) + ) + ) + ) + (set-vector! s3-2 (sin f30-2) 0.0 (cos f30-2) 1.0) + (vector-normalize! s3-2 54.0) + ) + ) + ) ) + (set! (-> arg1 edge-ry) f30-2) ) - (set! (-> arg0 corner 1 x) (+ (-> arg0 corner 0 x) f1-16)) - (set! (-> arg0 corner 1 z) (+ (-> arg0 corner 0 z) f0-49)) ) - (let* ((a3-1 (+ (* (the-as uint 320) (-> arg1 class icon-xy x)) 8)) - (t0-1 (+ (* (the-as uint 320) (-> arg1 class icon-xy y)) 8)) - (a1-61 (+ a3-1 312)) - (a2-14 (+ t0-1 312)) - ) - (set! (-> (the-as (pointer uint128) v1-115)) (-> obj sprite-tmpl dma-vif quad)) - (set! (-> (the-as (pointer uint128) v1-115) 1) (-> obj sprite-tmpl quad 1)) - (set-vector! - (-> (the-as (inline-array vector4w) v1-115) 2) - (the-as int (-> a0-70 r)) - (the-as int (-> a0-70 g)) - (the-as int (-> a0-70 b)) - (the-as int (-> a0-70 a)) + (else + (set! (-> arg1 edge-ry) (atan (-> s3-2 x) (-> s3-2 z))) + ) + ) + ) + (else + (if (< 50.0 f28-0) + (set! s2-0 #t) ) - (set-vector! (-> (the-as (inline-array vector4w) v1-115) 3) (the-as int a3-1) (the-as int t0-1) 0 0) - (set-vector! - (-> (the-as (inline-array vector4w) v1-115) 4) - (the int (* 16.0 (-> arg0 corner 0 x))) - (the int (* 16.0 (-> arg0 corner 0 z))) - #xffffff - 0 - ) - (set-vector! (-> (the-as (inline-array vector4w) v1-115) 5) (the-as int a1-61) (the-as int a2-14) 0 0) - ) - ) - (set-vector! - (-> (the-as (inline-array vector4w) v1-115) 6) - (the int (* 16.0 (-> arg0 corner 1 x))) - (the int (* 16.0 (-> arg0 corner 1 z))) - #xffffff - 0 ) ) - (&+! (-> arg0 buf base) 112) ) ) + (if (or (logtest? (-> arg1 class flags) (minimap-flag frustum)) + (logtest? (-> arg1 class flags) (minimap-flag racer)) + (and (logtest? (-> arg1 class flags) (minimap-flag flash)) + (< (the-as int (logand (-> *display* base-clock integral-frame-counter) 15)) 8) + ) + ) + (set! s2-0 #t) + ) + (if (logtest? (-> arg1 class flags) (minimap-flag goal)) + (set! (-> arg1 class icon-xy x) (the-as uint (mod (the int (-> obj goal-time)) 6))) + ) + (when (not s2-0) + (vector-matrix*! s3-2 s3-2 (-> arg0 mat)) + (let ((v1-115 (the-as object (-> arg0 buf base)))) + (let* ((f0-48 (-> arg1 class scale)) + (a1-25 (-> arg1 class color)) + (a1-32 (copy-and-set-field a1-25 r (shr (* (-> a1-25 r) (the-as uint (-> obj color x))) 7))) + (a1-39 (copy-and-set-field a1-32 g (shr (* (-> a1-32 g) (the-as uint (-> obj color y))) 7))) + (a0-70 + (copy-and-set-field + (copy-and-set-field a1-39 b (shr (* (-> a1-39 b) (the-as uint (-> obj color z))) 7)) + a + (the int (* 128.0 (-> arg1 alpha))) + ) + ) + ) + (let ((f1-16 (* 20.0 (-> *video-params* relative-x-scale) f0-48)) + (f0-49 (* 20.0 f0-48)) + ) + (set! (-> arg0 corner 0 x) (the float (the int (- (-> s3-2 x) (* 0.5 f1-16))))) + (set! (-> arg0 corner 0 z) (the float (the int (- (-> s3-2 z) (* 0.5 f0-49))))) + ;; og:preserve-this + (#when PC_PORT + ;; pc port note : don't align icons to PS2 framebuffer positions since + ;; it results in jagged motion on PC, since the framebuffer can be any size we want + (when (-> *pc-settings* smooth-minimap?) + (set! (-> arg0 corner 0 x) (- (-> s3-2 x) (* 0.5 f1-16))) + (set! (-> arg0 corner 0 z) (- (-> s3-2 z) (* 0.5 f0-49))) + ) + ) + (set! (-> arg0 corner 1 x) (+ (-> arg0 corner 0 x) f1-16)) + (set! (-> arg0 corner 1 z) (+ (-> arg0 corner 0 z) f0-49)) + ) + (let* ((a3-1 (+ (* (the-as uint 320) (-> arg1 class icon-xy x)) 8)) + (t0-1 (+ (* (the-as uint 320) (-> arg1 class icon-xy y)) 8)) + (a1-61 (+ a3-1 312)) + (a2-14 (+ t0-1 312)) + ) + (set! (-> (the-as (pointer uint128) v1-115)) (-> obj sprite-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) v1-115) 1) (-> obj sprite-tmpl quad 1)) + (set-vector! + (-> (the-as (inline-array vector4w) v1-115) 2) + (the-as int (-> a0-70 r)) + (the-as int (-> a0-70 g)) + (the-as int (-> a0-70 b)) + (the-as int (-> a0-70 a)) + ) + (set-vector! (-> (the-as (inline-array vector4w) v1-115) 3) (the-as int a3-1) (the-as int t0-1) 0 0) + (set-vector! + (-> (the-as (inline-array vector4w) v1-115) 4) + (the int (* 16.0 (-> arg0 corner 0 x))) + (the int (* 16.0 (-> arg0 corner 0 z))) + #xffffff + 0 + ) + (set-vector! (-> (the-as (inline-array vector4w) v1-115) 5) (the-as int a1-61) (the-as int a2-14) 0 0) + ) + ) + (set-vector! + (-> (the-as (inline-array vector4w) v1-115) 6) + (the int (* 16.0 (-> arg0 corner 1 x))) + (the int (* 16.0 (-> arg0 corner 1 z))) + #xffffff + 0 + ) + ) + (&+! (-> arg0 buf base) 112) + ) ) - (none) ) + (none) ) (defmethod draw-1 minimap ((obj minimap) (arg0 dma-buffer) (arg1 vector4w) (arg2 symbol)) (local-vars (v1-19 uint128)) - (with-pp - (when (= (level-status *level* 'ctywide) 'active) - (let ((s5-1 (new 'stack-no-clear 'minimap-draw-work))) - (set! (-> s5-1 buf) arg0) - (set! (-> s5-1 draw-pos quad) (-> arg1 quad)) - (set! (-> s5-1 justify-right) arg2) - (sub-draw-1-1 obj s5-1) - (sub-draw-1-2 obj s5-1) - (set! (-> obj ctywide) (level-get *level* 'ctywide)) - (let ((s2-1 (-> s5-1 buf base)) - (s4-1 (lookup-texture-by-id-fast (new 'static 'texture-id :page #x679))) - ) - (let ((s3-1 (-> obj ctywide texture-mask 8))) - (when s4-1 - (set! (-> (the-as (pointer uint128) s2-1)) (-> obj adgif-tmpl dma-vif quad)) - (set! (-> (the-as (pointer uint128) s2-1) 1) (-> obj adgif-tmpl quad 1)) - (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s2-1 32)) s4-1) - (&+! (-> s5-1 buf base) 112) - (let ((v1-18 (-> s3-1 mask quad)) - (a0-8 (-> s4-1 masks data 0 mask quad)) - ) - (.por v1-19 v1-18 a0-8) - ) - (set! (-> s3-1 mask quad) v1-19) - ) + (when (= (level-status *level* 'ctywide) 'active) + (let ((s5-1 (new 'stack-no-clear 'minimap-draw-work))) + (set! (-> s5-1 buf) arg0) + (set! (-> s5-1 draw-pos quad) (-> arg1 quad)) + (set! (-> s5-1 justify-right) arg2) + (sub-draw-1-1 obj s5-1) + (sub-draw-1-2 obj s5-1) + (set! (-> obj ctywide) (level-get *level* 'ctywide)) + (let ((s2-1 (-> s5-1 buf base)) + (s4-1 (lookup-texture-by-id-fast (new 'static 'texture-id :page #x679))) ) - (if (not s4-1) - (format *stdcon* "minimap: mini-map-icons texture is #f~%") + (let ((s3-1 (-> obj ctywide texture-mask 8))) + (when s4-1 + (set! (-> (the-as (pointer uint128) s2-1)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s2-1) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s2-1 32)) s4-1) + (&+! (-> s5-1 buf base) 112) + (let ((v1-18 (-> s3-1 mask quad)) + (a0-8 (-> s4-1 masks data 0 mask quad)) + ) + (.por v1-19 v1-18 a0-8) ) - ) - (let ((s4-2 (the-as connection-pers (-> *minimap* engine alive-list)))) - (while s4-2 - (let ((a2-1 s4-2)) - (draw-connection obj s5-1 (the-as connection-minimap a2-1)) - ) - (set! s4-2 (-> s4-2 next)) + (set! (-> s3-1 mask quad) v1-19) ) ) - (if (not (paused?)) - (+! (-> obj goal-time) (* 14.0 (-> pp clock seconds-per-frame))) + (if (not s4-1) + (format *stdcon* "minimap: mini-map-icons texture is #f~%") ) - (reset-display-gs-state *display* (-> s5-1 buf)) ) + (let ((s4-2 (the-as connection-pers (-> *minimap* engine alive-list)))) + (while s4-2 + (let ((a2-1 s4-2)) + (draw-connection obj s5-1 (the-as connection-minimap a2-1)) + ) + (set! s4-2 (-> s4-2 next)) + ) + ) + (if (not (paused?)) + (+! (-> obj goal-time) (* 14.0 (seconds-per-frame))) + ) + (reset-display-gs-state *display* (-> s5-1 buf)) ) - 0 - (none) ) + 0 + (none) ) (defmethod draw-sprite2 minimap ((obj minimap) (arg0 dma-buffer) (arg1 vector4w) (arg2 symbol)) diff --git a/goal_src/jak2/kernel/gkernel-h.gc b/goal_src/jak2/kernel/gkernel-h.gc index 37a2ed12e8..dc04d2560c 100644 --- a/goal_src/jak2/kernel/gkernel-h.gc +++ b/goal_src/jak2/kernel/gkernel-h.gc @@ -765,6 +765,10 @@ ) (defmacro seconds-per-frame () + `(-> PP clock seconds-per-frame) + ) + +(defmacro seconds-per-frame-high-fps () "Macro for assuming a 16.6 ms frame time at higher frame rates." `(if (= (get-video-mode) 'custom) 0.016666668 diff --git a/goal_src/jak2/levels/atoll/atoll-obs.gc b/goal_src/jak2/levels/atoll/atoll-obs.gc index 64e9dd78b5..b8b7036a5a 100644 --- a/goal_src/jak2/levels/atoll/atoll-obs.gc +++ b/goal_src/jak2/levels/atoll/atoll-obs.gc @@ -262,14 +262,10 @@ This commonly includes things such as: ) :code (the-as (function none :behavior turbine) sleep-code) :post (behavior () - (quaternion-rotate-y! - (-> self root quat) - (-> self root quat) - (* (-> self rotspeed) (-> self clock seconds-per-frame)) - ) + (quaternion-rotate-y! (-> self root quat) (-> self root quat) (* (-> self rotspeed) (seconds-per-frame))) (let ((f1-2 (- (-> self dest-height) (-> self root trans y)))) (if (< 0.0 f1-2) - (+! (-> self root trans y) (* (fmax 6144.0 (* 0.5 f1-2)) (-> self clock seconds-per-frame))) + (+! (-> self root trans y) (* (fmax 6144.0 (* 0.5 f1-2)) (seconds-per-frame))) ) ) (update! (-> self sound)) @@ -287,14 +283,10 @@ This commonly includes things such as: :trans (the-as (function none :behavior turbine) rider-trans) :code (the-as (function none :behavior turbine) sleep-code) :post (behavior () - (quaternion-rotate-y! - (-> self root quat) - (-> self root quat) - (* (-> self rotspeed) (-> self clock seconds-per-frame)) - ) + (quaternion-rotate-y! (-> self root quat) (-> self root quat) (* (-> self rotspeed) (seconds-per-frame))) (let ((f1-2 (- (-> self dest-height) (-> self root trans y)))) (if (< 0.0 f1-2) - (+! (-> self root trans y) (* (fmax 6144.0 (* 0.5 f1-2)) (-> self clock seconds-per-frame))) + (+! (-> self root trans y) (* (fmax 6144.0 (* 0.5 f1-2)) (seconds-per-frame))) ) ) (update! (-> self sound)) @@ -628,7 +620,7 @@ This commonly includes things such as: ) (until (>= (- (current-time) gp-6) (seconds 0.5)) (set! (-> self rot-angle) - (the float (sar (shl (the int (+ (-> self rot-angle) (* f30-1 (-> self clock seconds-per-frame)))) 48) 48)) + (the float (sar (shl (the int (+ (-> self rot-angle) (* f30-1 (seconds-per-frame)))) 48) 48)) ) (suspend) ) diff --git a/goal_src/jak2/levels/atoll/atoll-part.gc b/goal_src/jak2/levels/atoll/atoll-part.gc index b8162ee617..6384a02fbc 100644 --- a/goal_src/jak2/levels/atoll/atoll-part.gc +++ b/goal_src/jak2/levels/atoll/atoll-part.gc @@ -554,22 +554,8 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) f30-0 (-> arg2 vector 0 z) 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 1336)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-3d*) - (a1-4 (-> *part-id-table* 1337)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-0 quad)) - (t9-3 a0-5 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1336) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 1337) s3-0) ) ) ) @@ -759,14 +745,7 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 1336)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1336) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/goal_src/jak2/levels/atoll/juicer.gc b/goal_src/jak2/levels/atoll/juicer.gc index 6307def098..9ca4342696 100644 --- a/goal_src/jak2/levels/atoll/juicer.gc +++ b/goal_src/jak2/levels/atoll/juicer.gc @@ -174,39 +174,11 @@ (s2-0 (new 'stack-no-clear 'vector)) (s1-0 (new 'stack-no-clear 'matrix)) ) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 4637)) - (a2-0 *launch-matrix*) - ) - (set! (-> a2-0 trans quad) (-> s5-0 quad)) - (t9-1 a0-2 a1-1 a2-0 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 4638)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s5-0 quad)) - (t9-2 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4637) s5-0) + (launch-particles (-> *part-id-table* 4638) s5-0) (when (not (handle->process (-> obj victim))) - (let ((t9-3 sp-launch-particles-var) - (a0-8 *sp-particle-system-2d*) - (a1-4 (-> *part-id-table* 4637)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s4-0 quad)) - (t9-3 a0-8 a1-4 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-4 sp-launch-particles-var) - (a0-9 *sp-particle-system-2d*) - (a1-5 (-> *part-id-table* 4638)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s4-0 quad)) - (t9-4 a0-9 a1-5 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4637) s4-0) + (launch-particles (-> *part-id-table* 4638) s4-0) ) (vector-! s2-0 s4-0 s5-0) (vector-normalize! s2-0 1.0) @@ -700,24 +672,22 @@ ) (defmethod juicer-method-183 juicer ((obj juicer)) - (with-pp - (cond - ((-> obj torso-track-player) - (set! (-> obj joint-enable) #t) - (seek! (-> obj joint-blend) 1.0 (* 2.0 (-> pp clock seconds-per-frame))) - (juicer-method-182 obj) - ) - ((-> obj joint-enable) - (seek! (-> obj joint-blend) 0.0 (* 4.0 (-> pp clock seconds-per-frame))) - (juicer-method-182 obj) - (if (= (-> obj joint-blend) 0.0) - (set! (-> obj joint-enable) #f) - ) - ) - ) - 0 - (none) + (cond + ((-> obj torso-track-player) + (set! (-> obj joint-enable) #t) + (seek! (-> obj joint-blend) 1.0 (* 2.0 (seconds-per-frame))) + (juicer-method-182 obj) + ) + ((-> obj joint-enable) + (seek! (-> obj joint-blend) 0.0 (* 4.0 (seconds-per-frame))) + (juicer-method-182 obj) + (if (= (-> obj joint-blend) 0.0) + (set! (-> obj joint-enable) #f) + ) + ) ) + 0 + (none) ) (defmethod track-target! juicer ((obj juicer)) diff --git a/goal_src/jak2/levels/castle/boss/casboss-texture.gc b/goal_src/jak2/levels/castle/boss/casboss-texture.gc index fc60f57e1c..ae091cba51 100644 --- a/goal_src/jak2/levels/castle/boss/casboss-texture.gc +++ b/goal_src/jak2/levels/castle/boss/casboss-texture.gc @@ -138,77 +138,75 @@ ) (defun krew-texture-anim-func () - (with-pp - (let ((gp-0 *krew-holo-texture-anim-array*)) - (when (not (paused?)) - (let ((s5-0 (-> gp-0 array-data 0 data 0))) - (cond - ((= (-> s5-0 extra x) 0.0) - (cond - ((>= 0.0 (-> s5-0 extra y)) - (set! (-> s5-0 extra y) (rand-vu-float-range 150.0 300.0)) - (set! (-> s5-0 extra z) (-> s5-0 extra y)) - (set! (-> s5-0 extra w) (rand-vu-float-range 0.1 0.5)) - (set! (-> s5-0 extra x) 1.0) - ) - (else - (set! (-> s5-0 extra y) (- (-> s5-0 extra y) (* 300.0 (-> pp clock seconds-per-frame)))) - ) + (let ((gp-0 *krew-holo-texture-anim-array*)) + (when (not (paused?)) + (let ((s5-0 (-> gp-0 array-data 0 data 0))) + (cond + ((= (-> s5-0 extra x) 0.0) + (cond + ((>= 0.0 (-> s5-0 extra y)) + (set! (-> s5-0 extra y) (rand-vu-float-range 150.0 300.0)) + (set! (-> s5-0 extra z) (-> s5-0 extra y)) + (set! (-> s5-0 extra w) (rand-vu-float-range 0.1 0.5)) + (set! (-> s5-0 extra x) 1.0) + ) + (else + (set! (-> s5-0 extra y) (- (-> s5-0 extra y) (* 300.0 (seconds-per-frame)))) ) ) - ((= (-> s5-0 extra x) 1.0) - (cond - ((>= 0.0 (-> s5-0 extra y)) - (set! (-> s5-0 extra y) (rand-vu-float-range 300.0 600.0)) - (set! (-> s5-0 extra x) 0.0) - ) - (else - (let ((f0-16 (+ 0.1 (* (-> s5-0 extra w) (sin (* 32768.0 (/ (-> s5-0 extra y) (-> s5-0 extra z)))))))) - (set-vector! (-> s5-0 start-color) (* 0.5 f0-16) (* 0.7 f0-16) f0-16 1.0) - (set-vector! (-> s5-0 end-color) (* 0.5 f0-16) (* 0.7 f0-16) f0-16 1.0) - ) - (set! (-> s5-0 extra y) (- (-> s5-0 extra y) (* 300.0 (-> pp clock seconds-per-frame)))) + ) + ((= (-> s5-0 extra x) 1.0) + (cond + ((>= 0.0 (-> s5-0 extra y)) + (set! (-> s5-0 extra y) (rand-vu-float-range 300.0 600.0)) + (set! (-> s5-0 extra x) 0.0) + ) + (else + (let ((f0-16 (+ 0.1 (* (-> s5-0 extra w) (sin (* 32768.0 (/ (-> s5-0 extra y) (-> s5-0 extra z)))))))) + (set-vector! (-> s5-0 start-color) (* 0.5 f0-16) (* 0.7 f0-16) f0-16 1.0) + (set-vector! (-> s5-0 end-color) (* 0.5 f0-16) (* 0.7 f0-16) f0-16 1.0) ) + (set! (-> s5-0 extra y) (- (-> s5-0 extra y) (* 300.0 (seconds-per-frame)))) ) ) - ) + ) ) - (let ((gp-1 (-> gp-0 array-data 0 data 1))) - (cond - ((= (-> gp-1 extra x) 0.0) - (cond - ((>= 0.0 (-> gp-1 extra y)) - (set! (-> gp-1 extra y) (rand-vu-float-range 75.0 150.0)) - (set! (-> gp-1 extra z) (-> gp-1 extra y)) - (set! (-> gp-1 extra x) 1.0) - ) - (else - (set! (-> gp-1 start-st-offset y) 0.0) - (set! (-> gp-1 end-st-offset y) 0.0) - (set! (-> gp-1 extra y) (- (-> gp-1 extra y) (* 300.0 (-> pp clock seconds-per-frame)))) - ) + ) + (let ((gp-1 (-> gp-0 array-data 0 data 1))) + (cond + ((= (-> gp-1 extra x) 0.0) + (cond + ((>= 0.0 (-> gp-1 extra y)) + (set! (-> gp-1 extra y) (rand-vu-float-range 75.0 150.0)) + (set! (-> gp-1 extra z) (-> gp-1 extra y)) + (set! (-> gp-1 extra x) 1.0) + ) + (else + (set! (-> gp-1 start-st-offset y) 0.0) + (set! (-> gp-1 end-st-offset y) 0.0) + (set! (-> gp-1 extra y) (- (-> gp-1 extra y) (* 300.0 (seconds-per-frame)))) ) ) - ((= (-> gp-1 extra x) 1.0) - (cond - ((>= 0.0 (-> gp-1 extra y)) - (set! (-> gp-1 extra y) (rand-vu-float-range 300.0 600.0)) - (set! (-> gp-1 extra x) 0.0) - ) - (else - (let ((f0-34 (- 1.0 (/ (-> gp-1 extra y) (-> gp-1 extra z))))) - (set! (-> gp-1 start-st-offset y) f0-34) - (set! (-> gp-1 end-st-offset y) f0-34) - ) - (set! (-> gp-1 extra y) (- (-> gp-1 extra y) (* 300.0 (-> pp clock seconds-per-frame)))) + ) + ((= (-> gp-1 extra x) 1.0) + (cond + ((>= 0.0 (-> gp-1 extra y)) + (set! (-> gp-1 extra y) (rand-vu-float-range 300.0 600.0)) + (set! (-> gp-1 extra x) 0.0) + ) + (else + (let ((f0-34 (- 1.0 (/ (-> gp-1 extra y) (-> gp-1 extra z))))) + (set! (-> gp-1 start-st-offset y) f0-34) + (set! (-> gp-1 end-st-offset y) f0-34) ) + (set! (-> gp-1 extra y) (- (-> gp-1 extra y) (* 300.0 (seconds-per-frame)))) ) ) - ) + ) ) ) ) - 0 - (none) ) + 0 + (none) ) diff --git a/goal_src/jak2/levels/castle/boss/castle-scenes.gc b/goal_src/jak2/levels/castle/boss/castle-scenes.gc index 87918a8662..71f950203d 100644 --- a/goal_src/jak2/levels/castle/boss/castle-scenes.gc +++ b/goal_src/jak2/levels/castle/boss/castle-scenes.gc @@ -638,7 +638,7 @@ *screen-filter* (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) - (* 30.0 (-> self clock seconds-per-frame)) + (* 30.0 (seconds-per-frame)) (bucket-id screen-filter) ) ) @@ -655,7 +655,7 @@ *screen-filter* (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) (new 'static 'vector :x 255.0 :y 128.0 :w 96.0) - (* 6.0 (-> self clock seconds-per-frame)) + (* 6.0 (seconds-per-frame)) (bucket-id screen-filter) ) ) @@ -683,7 +683,7 @@ *screen-filter* (new 'static 'vector :x 255.0 :y 128.0 :w 96.0) (new 'static 'vector :x 255.0) - (-> self clock seconds-per-frame) + (seconds-per-frame) (bucket-id screen-filter) ) ) diff --git a/goal_src/jak2/levels/castle/castle-obs.gc b/goal_src/jak2/levels/castle/castle-obs.gc index 798b8eb17c..ee313b48d0 100644 --- a/goal_src/jak2/levels/castle/castle-obs.gc +++ b/goal_src/jak2/levels/castle/castle-obs.gc @@ -226,25 +226,11 @@ This commonly includes things such as: (cond ((< f30-0 0.0) (quaternion-smooth-seek! (-> self root quat) (-> self root quat) (-> self quat180) 0.1) - (let ((t9-2 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 5119)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> self blue-pos quad)) - (t9-2 a0-2 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 5119) (-> self blue-pos)) ) (else (quaternion-smooth-seek! (-> self root quat) (-> self root quat) (-> self quat0) 0.1) - (let ((t9-4 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-4 (-> *part-id-table* 5120)) - (a2-4 *launch-matrix*) - ) - (set! (-> a2-4 trans quad) (-> self red-pos quad)) - (t9-4 a0-4 a1-4 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 5120) (-> self red-pos)) ) ) ) @@ -603,14 +589,7 @@ This commonly includes things such as: ) ) ) - (let ((t9-10 sp-launch-particles-var) - (a0-21 *sp-particle-system-2d*) - (a1-10 (-> *part-id-table* 166)) - (a2-8 *launch-matrix*) - ) - (set! (-> a2-8 trans quad) (-> s5-2 quad)) - (t9-10 a0-21 a1-10 a2-8 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 166) s5-2) ) (set! (-> self next-spawn-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.07 0.4))))) ) @@ -2570,7 +2549,8 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 512) ;; added + ;; og:preserve-this added + (stack-size-set! (-> obj main-thread) 512) (local-vars (sv-16 res-tag) (sv-32 res-tag)) (let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (let ((v1-2 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0)))) diff --git a/goal_src/jak2/levels/castle/castle-part.gc b/goal_src/jak2/levels/castle/castle-part.gc index 3ebb197279..51617bdb8b 100644 --- a/goal_src/jak2/levels/castle/castle-part.gc +++ b/goal_src/jak2/levels/castle/castle-part.gc @@ -134,38 +134,10 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 5129)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-3d*) - (a1-3 (-> *part-id-table* 5130)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-3d*) - (a1-4 (-> *part-id-table* 5131)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-0 quad)) - (t9-3 a0-5 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-4 sp-launch-particles-var) - (a0-6 *sp-particle-system-3d*) - (a1-5 (-> *part-id-table* 5132)) - (a2-4 *launch-matrix*) - ) - (set! (-> a2-4 trans quad) (-> s3-0 quad)) - (t9-4 a0-6 a1-5 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 5129) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 5130) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 5131) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 5132) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) @@ -660,30 +632,9 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 vector 0 x) (-> arg2 vector 0 y) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 5151)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 5152)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-4 *sp-particle-system-3d*) - (a1-3 (-> *part-id-table* 5153)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-3 a0-4 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 5151) gp-0) + (launch-particles (-> *part-id-table* 5152) gp-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 5153) gp-0) ) (none) ) diff --git a/goal_src/jak2/levels/castle/roboguard-level.gc b/goal_src/jak2/levels/castle/roboguard-level.gc index 9708cfb3bc..5c7336a59a 100644 --- a/goal_src/jak2/levels/castle/roboguard-level.gc +++ b/goal_src/jak2/levels/castle/roboguard-level.gc @@ -624,8 +624,8 @@ ) ) (logand! (-> self flags) -65) - (seek! (-> self speed) 81920.0 (* 1228800.0 (-> self clock seconds-per-frame))) - (seek! (-> self turning-acc) 4096.0 (* 1228800.0 (-> self clock seconds-per-frame))) + (seek! (-> self speed) 81920.0 (* 1228800.0 (seconds-per-frame))) + (seek! (-> self turning-acc) 4096.0 (* 1228800.0 (seconds-per-frame))) (let ((v1-20 (-> self nav))) (set! (-> v1-20 target-speed) (-> self speed)) ) @@ -1175,29 +1175,27 @@ ) (defmethod nav-enemy-method-142 roboguard-level ((obj roboguard-level) (arg0 nav-control)) - (with-pp - (let ((s3-0 (new 'stack-no-clear 'vector))) - (let ((a1-1 (-> arg0 state))) - (set! (-> s3-0 quad) (-> a1-1 heading quad)) - ) - (set! (-> s3-0 y) 0.0) - (vector-normalize! s3-0 1.0) - (let ((gp-0 (new 'stack-no-clear 'quaternion)) - (s5-1 (-> obj root quat)) - ) - (quaternion-set! gp-0 0.0 (-> s3-0 x) 0.0 (+ 1.0 (-> s3-0 z))) - (quaternion-normalize! gp-0) - (quaternion-pseudo-seek - s5-1 - s5-1 - gp-0 - (* (fmax 0.5 (* 0.00024414062 (-> arg0 state speed))) (-> pp clock seconds-per-frame)) + (let ((s3-0 (new 'stack-no-clear 'vector))) + (let ((a1-1 (-> arg0 state))) + (set! (-> s3-0 quad) (-> a1-1 heading quad)) + ) + (set! (-> s3-0 y) 0.0) + (vector-normalize! s3-0 1.0) + (let ((gp-0 (new 'stack-no-clear 'quaternion)) + (s5-1 (-> obj root quat)) ) + (quaternion-set! gp-0 0.0 (-> s3-0 x) 0.0 (+ 1.0 (-> s3-0 z))) + (quaternion-normalize! gp-0) + (quaternion-pseudo-seek + s5-1 + s5-1 + gp-0 + (* (fmax 0.5 (* 0.00024414062 (-> arg0 state speed))) (seconds-per-frame)) ) ) - 0 - (none) ) + 0 + (none) ) (defmethod nav-enemy-method-176 roboguard-level ((obj roboguard-level)) diff --git a/goal_src/jak2/levels/city/bombbot/bombbot.gc b/goal_src/jak2/levels/city/bombbot/bombbot.gc index 7f12510b16..1ec76bf24f 100644 --- a/goal_src/jak2/levels/city/bombbot/bombbot.gc +++ b/goal_src/jak2/levels/city/bombbot/bombbot.gc @@ -893,7 +893,7 @@ (let ((a1-7 (-> s1-0 speed))) (let ((v1-42 (-> s1-0 speed))) (let ((a0-13 (vector-! (new 'stack-no-clear 'vector) s0-0 (-> s1-0 speed)))) - (let ((a2-14 (* 4.0 (-> pp clock seconds-per-frame)))) + (let ((a2-14 (* 4.0 (seconds-per-frame)))) (.mov vf7 a2-14) ) (.lvf vf5 (&-> a0-13 quad)) @@ -1809,22 +1809,8 @@ ) (set! (-> *part-id-table* 4630 init-specs 4 initial-valuef) (vector-length s5-0)) (draw-beam (-> *part-id-table* 4630) s4-0 s5-0 #f #t) - (let ((t9-20 sp-launch-particles-var) - (a0-76 *sp-particle-system-2d*) - (a1-34 (-> *part-id-table* 4631)) - (a2-20 *launch-matrix*) - ) - (set! (-> a2-20 trans quad) (-> s4-0 quad)) - (t9-20 a0-76 a1-34 a2-20 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-21 sp-launch-particles-var) - (a0-77 *sp-particle-system-2d*) - (a1-35 (-> *part-id-table* 4632)) - (a2-21 *launch-matrix*) - ) - (set! (-> a2-21 trans quad) (-> (vector+! (new 'stack-no-clear 'vector) s5-0 s4-0) quad)) - (t9-21 a0-77 a1-35 a2-21 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4631) s4-0) + (launch-particles (-> *part-id-table* 4632) (vector+! (new 'stack-no-clear 'vector) s5-0 s4-0)) ) ) ) @@ -1881,10 +1867,10 @@ (let ((f30-0 1.0)) (when (and gp-0 (< (fabs (- (-> self target-pos y) (-> self root trans y))) 20480.0)) ) - (seek! (-> self legs-strength 0) f30-0 (* 0.5 (-> self clock seconds-per-frame))) - (seek! (-> self legs-strength 1) f30-0 (* 0.5 (-> self clock seconds-per-frame))) - (seek! (-> self legs-strength 2) f30-0 (* 0.5 (-> self clock seconds-per-frame))) - (seek! (-> self legs-strength 3) f30-0 (* 0.5 (-> self clock seconds-per-frame))) + (seek! (-> self legs-strength 0) f30-0 (* 0.5 (seconds-per-frame))) + (seek! (-> self legs-strength 1) f30-0 (* 0.5 (seconds-per-frame))) + (seek! (-> self legs-strength 2) f30-0 (* 0.5 (seconds-per-frame))) + (seek! (-> self legs-strength 3) f30-0 (* 0.5 (seconds-per-frame))) ) (cond (gp-0 @@ -1950,7 +1936,7 @@ ) ) (if (!= (-> self nav state mesh) *default-nav-mesh*) - (+! (-> self root trans y) (* 4.0 (-> self clock seconds-per-frame) (- f0-28 (-> self root trans y)))) + (+! (-> self root trans y) (* 4.0 (seconds-per-frame) (- f0-28 (-> self root trans y)))) ) ) (if (= (vector-length (-> self root transv)) 0.0) @@ -2038,11 +2024,7 @@ (-> *bombbot-nav-enemy-info* run-travel-speed) ) ) - (seek! - (-> self root trans y) - (-> self city-path node gp-1 position y) - (* 16384.0 (-> self clock seconds-per-frame)) - ) + (seek! (-> self root trans y) (-> self city-path node gp-1 position y) (* 16384.0 (seconds-per-frame))) (track-target! self) (update-transforms (-> self root)) ) @@ -2086,21 +2068,21 @@ :trans (behavior () (let ((v1-0 (-> self nav))) (set! (-> v1-0 target-speed) - (- (-> self nav target-speed) (* 0.4 (-> self clock seconds-per-frame) (-> self nav target-speed))) + (- (-> self nav target-speed) (* 0.4 (seconds-per-frame) (-> self nav target-speed))) ) ) 0 (if (>= (- (current-time) (-> self state-time)) 0) - (seek! (-> self legs-strength 0) 0.8 (* 10.0 (-> self clock seconds-per-frame))) + (seek! (-> self legs-strength 0) 0.8 (* 10.0 (seconds-per-frame))) ) (if (>= (- (current-time) (-> self state-time)) (seconds 0.8)) - (seek! (-> self legs-strength 3) 0.4 (* 10.0 (-> self clock seconds-per-frame))) + (seek! (-> self legs-strength 3) 0.4 (* 10.0 (seconds-per-frame))) ) (if (>= (- (current-time) (-> self state-time)) (seconds 1.6)) - (seek! (-> self legs-strength 1) 0.0 (* 10.0 (-> self clock seconds-per-frame))) + (seek! (-> self legs-strength 1) 0.0 (* 10.0 (seconds-per-frame))) ) (if (>= (- (current-time) (-> self state-time)) (seconds 2.4)) - (seek! (-> self legs-strength 2) 0.5 (* 10.0 (-> self clock seconds-per-frame))) + (seek! (-> self legs-strength 2) 0.5 (* 10.0 (seconds-per-frame))) ) (when (>= (- (current-time) (-> self state-time)) (seconds 2.8)) (sound-play "bb-explode") @@ -2502,139 +2484,110 @@ (sv-224 vector) (sv-240 vector) ) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - (vf3 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (let ((s4-0 (the-as bombbot (-> arg0 param1)))) - (let ((s1-0 (new 'stack-no-clear 'vector)) - (s3-0 (quaternion-copy! (new 'stack-no-clear 'quaternion) *unity-quaternion*)) - ) - (let ((f30-0 0.0) - (s2-0 (vector-reset! (new 'stack-no-clear 'vector))) - ) - (dotimes (s0-0 4) - (let ((v1-3 (-> s4-0 feet s0-0))) - (let ((a1-2 s2-0)) - (let ((a0-2 s2-0)) - (let ((a2-1 (+ (the-as uint (-> s4-0 feet 0 real-position)) (* 112 s0-0)))) - (let ((a3-3 0.25)) - (.mov vf7 a3-3) - ) - (.lvf vf5 (&-> (the-as (pointer int128) a2-1))) - ) - (.lvf vf4 (&-> a0-2 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-2 quad) vf6) - ) - (set! (-> v1-3 main-y) (- (-> s4-0 feet s0-0 real-position y) (-> s4-0 root trans y))) - (set! (-> v1-3 main-y) (-> v1-3 delta-y)) - (+! f30-0 (* 0.25 (-> v1-3 main-y))) - (set! (-> s1-0 quad) (-> v1-3 pos-offset quad)) - (set! (-> s1-0 y) (* -2.0 (-> v1-3 main-y))) - (new 'stack-no-clear 'vector) - (set! sv-224 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> v1-3 pos-offset) 1.0)) - ) - (set! sv-240 (vector-normalize-copy! (new 'stack-no-clear 'vector) s1-0 1.0)) - (let ((f0-8 (vector-vector-angle-safe sv-224 sv-240))) - (when (!= f0-8 0.0) - (set! sv-176 quaternion*!) - (set! sv-192 s3-0) - (set! sv-208 s3-0) - (let ((t9-4 quaternion-vector-angle!) - (a0-14 (new 'stack-no-clear 'quaternion)) - (a1-8 (new 'stack-no-clear 'vector)) - ) - (.lvf vf1 (&-> sv-224 quad)) - (.lvf vf2 (&-> sv-240 quad)) - (.outer.product.a.vf acc vf1 vf2) - (.outer.product.b.vf vf3 vf2 vf1 acc) - (.svf (&-> a1-8 quad) vf3) - (let ((a2-5 (t9-4 a0-14 a1-8 f0-8))) - (sv-176 sv-192 sv-208 a2-5) - ) - ) - ) - ) - ) - (let* ((f0-9 0.0) - (f0-10 (+ -16384.0 f0-9)) - (f2-0 (- f30-0 (-> s4-0 main-pos-y))) - (f1-7 (- (-> s4-0 main-spd-y))) - (f0-12 (+ f0-10 (* 60.0 f2-0) (* 10.0 f1-7))) - ) - (+! (-> s4-0 main-spd-y) (* f0-12 (-> pp clock seconds-per-frame))) - ) - (+! (-> s4-0 main-pos-y) (* (-> s4-0 main-spd-y) (-> pp clock seconds-per-frame))) - (vector-! s2-0 s2-0 (-> s4-0 root trans)) - (vector-inv-orient-by-quat! s2-0 s2-0 (-> s4-0 root quat)) - (let ((a1-13 (-> s4-0 main-pos))) - (let ((v1-19 (-> s4-0 main-pos))) - (let ((a0-20 (vector-! (new 'stack-no-clear 'vector) s2-0 (-> s4-0 main-pos)))) - (let ((a2-10 (* 4.0 (-> pp clock seconds-per-frame)))) - (.mov vf7 a2-10) - ) - (.lvf vf5 (&-> a0-20 quad)) - ) - (.lvf vf4 (&-> v1-19 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-13 quad) vf6) - ) - ) - (quaternion-slerp! (-> s4-0 main-quat) (-> s4-0 main-quat) s3-0 0.8) - ) - (quaternion-copy! (-> arg1 quat) (-> s4-0 main-quat)) - (set! (-> arg1 trans quad) (-> s4-0 main-pos quad)) - (set! (-> arg1 trans y) (+ 16384.0 (-> s4-0 main-pos-y))) - (quaternion-copy! (-> arg1 quat) (-> s4-0 rigidbody state rotation)) - (let ((s3-1 (-> arg1 trans)) - (v1-23 (-> s4-0 rigidbody)) - (a1-17 (new 'stack-no-clear 'vector)) - ) - (set! (-> s3-1 quad) (-> (rigid-body-method-23 (-> v1-23 state) a1-17) quad)) - ) - ) - (cspace<-parented-transformq-joint! arg0 arg1) - 0 - (none) - ) - ) - ) - -(defun bombbot-head-callback ((arg0 cspace) (arg1 transformq)) - (with-pp + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) (let ((s4-0 (the-as bombbot (-> arg0 param1)))) - (let ((s2-0 (new 'stack-no-clear 'vector)) - (s3-0 (new 'stack-no-clear 'quaternion)) + (let ((s1-0 (new 'stack-no-clear 'vector)) + (s3-0 (quaternion-copy! (new 'stack-no-clear 'quaternion) *unity-quaternion*)) + ) + (let ((f30-0 0.0) + (s2-0 (vector-reset! (new 'stack-no-clear 'vector))) + ) + (dotimes (s0-0 4) + (let ((v1-3 (-> s4-0 feet s0-0))) + (let ((a1-2 s2-0)) + (let ((a0-2 s2-0)) + (let ((a2-1 (+ (the-as uint (-> s4-0 feet 0 real-position)) (* 112 s0-0)))) + (let ((a3-3 0.25)) + (.mov vf7 a3-3) + ) + (.lvf vf5 (&-> (the-as (pointer int128) a2-1))) + ) + (.lvf vf4 (&-> a0-2 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-2 quad) vf6) + ) + (set! (-> v1-3 main-y) (- (-> s4-0 feet s0-0 real-position y) (-> s4-0 root trans y))) + (set! (-> v1-3 main-y) (-> v1-3 delta-y)) + (+! f30-0 (* 0.25 (-> v1-3 main-y))) + (set! (-> s1-0 quad) (-> v1-3 pos-offset quad)) + (set! (-> s1-0 y) (* -2.0 (-> v1-3 main-y))) + (new 'stack-no-clear 'vector) + (set! sv-224 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> v1-3 pos-offset) 1.0)) + ) + (set! sv-240 (vector-normalize-copy! (new 'stack-no-clear 'vector) s1-0 1.0)) + (let ((f0-8 (vector-vector-angle-safe sv-224 sv-240))) + (when (!= f0-8 0.0) + (set! sv-176 quaternion*!) + (set! sv-192 s3-0) + (set! sv-208 s3-0) + (let ((t9-4 quaternion-vector-angle!) + (a0-14 (new 'stack-no-clear 'quaternion)) + (a1-8 (new 'stack-no-clear 'vector)) + ) + (.lvf vf1 (&-> sv-224 quad)) + (.lvf vf2 (&-> sv-240 quad)) + (.outer.product.a.vf acc vf1 vf2) + (.outer.product.b.vf vf3 vf2 vf1 acc) + (.svf (&-> a1-8 quad) vf3) + (let ((a2-5 (t9-4 a0-14 a1-8 f0-8))) + (sv-176 sv-192 sv-208 a2-5) + ) + ) + ) + ) + ) + (let* ((f0-9 0.0) + (f0-10 (+ -16384.0 f0-9)) + (f2-0 (- f30-0 (-> s4-0 main-pos-y))) + (f1-7 (- (-> s4-0 main-spd-y))) + (f0-12 (+ f0-10 (* 60.0 f2-0) (* 10.0 f1-7))) + ) + (+! (-> s4-0 main-spd-y) (* f0-12 (seconds-per-frame))) + ) + (+! (-> s4-0 main-pos-y) (* (-> s4-0 main-spd-y) (seconds-per-frame))) + (vector-! s2-0 s2-0 (-> s4-0 root trans)) + (vector-inv-orient-by-quat! s2-0 s2-0 (-> s4-0 root quat)) + (let ((a1-13 (-> s4-0 main-pos))) + (let ((v1-19 (-> s4-0 main-pos))) + (let ((a0-20 (vector-! (new 'stack-no-clear 'vector) s2-0 (-> s4-0 main-pos)))) + (let ((a2-10 (* 4.0 (seconds-per-frame)))) + (.mov vf7 a2-10) + ) + (.lvf vf5 (&-> a0-20 quad)) + ) + (.lvf vf4 (&-> v1-19 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-13 quad) vf6) ) - (let ((a1-1 (-> s4-0 nav state))) - (set! (-> s2-0 quad) (-> a1-1 target-post quad)) ) - (vector-! s2-0 s2-0 (-> s4-0 root trans)) - (set! (-> s2-0 y) 0.0) - (vector-normalize! s2-0 1.0) - (quaternion-from-two-vectors! - s3-0 - (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> s4-0 root quat)) - s2-0 - ) - (quaternion-smooth-seek! (-> s4-0 top-quat) (-> s4-0 top-quat) s3-0 (* 4.0 (-> pp clock seconds-per-frame))) + (quaternion-slerp! (-> s4-0 main-quat) (-> s4-0 main-quat) s3-0 0.8) + ) + (quaternion-copy! (-> arg1 quat) (-> s4-0 main-quat)) + (set! (-> arg1 trans quad) (-> s4-0 main-pos quad)) + (set! (-> arg1 trans y) (+ 16384.0 (-> s4-0 main-pos-y))) + (quaternion-copy! (-> arg1 quat) (-> s4-0 rigidbody state rotation)) + (let ((s3-1 (-> arg1 trans)) + (v1-23 (-> s4-0 rigidbody)) + (a1-17 (new 'stack-no-clear 'vector)) + ) + (set! (-> s3-1 quad) (-> (rigid-body-method-23 (-> v1-23 state) a1-17) quad)) ) - (quaternion-copy! (-> arg1 quat) (-> s4-0 top-quat)) ) (cspace<-parented-transformq-joint! arg0 arg1) 0 @@ -2642,94 +2595,111 @@ ) ) +(defun bombbot-head-callback ((arg0 cspace) (arg1 transformq)) + (let ((s4-0 (the-as bombbot (-> arg0 param1)))) + (let ((s2-0 (new 'stack-no-clear 'vector)) + (s3-0 (new 'stack-no-clear 'quaternion)) + ) + (let ((a1-1 (-> s4-0 nav state))) + (set! (-> s2-0 quad) (-> a1-1 target-post quad)) + ) + (vector-! s2-0 s2-0 (-> s4-0 root trans)) + (set! (-> s2-0 y) 0.0) + (vector-normalize! s2-0 1.0) + (quaternion-from-two-vectors! + s3-0 + (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> s4-0 root quat)) + s2-0 + ) + (quaternion-smooth-seek! (-> s4-0 top-quat) (-> s4-0 top-quat) s3-0 (* 4.0 (seconds-per-frame))) + ) + (quaternion-copy! (-> arg1 quat) (-> s4-0 top-quat)) + ) + (cspace<-parented-transformq-joint! arg0 arg1) + 0 + (none) + ) + (defun bombbot-gun-swivel-callback ((arg0 cspace) (arg1 transformq)) (local-vars (sv-128 vector) (sv-144 vector) (sv-160 vector)) - (with-pp - (rlet ((vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - ) - (init-vf0-vector) - (cspace<-parented-transformq-joint! arg0 arg1) - (let ((s3-0 (the-as bombbot (-> arg0 param1)))) - (set! sv-160 (new 'stack-no-clear 'vector)) - (let ((s4-0 (new 'stack-no-clear 'quaternion)) - (s0-0 (new 'stack-no-clear 'vector)) - (s1-0 (new 'stack-no-clear 'vector)) - (s2-0 (new 'stack-no-clear 'vector)) - (s5-0 (matrix->trans (-> arg0 bone transform) (new 'stack-no-clear 'vector))) - ) - (set! sv-144 sv-160) - (set! sv-128 (-> s3-0 target-pos)) - (let ((v0-2 (matrix->trans (-> arg0 bone transform) (new 'stack-no-clear 'vector)))) - (.lvf vf4 (&-> sv-128 quad)) - (.lvf vf5 (&-> v0-2 quad)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (cspace<-parented-transformq-joint! arg0 arg1) + (let ((s3-0 (the-as bombbot (-> arg0 param1)))) + (set! sv-160 (new 'stack-no-clear 'vector)) + (let ((s4-0 (new 'stack-no-clear 'quaternion)) + (s0-0 (new 'stack-no-clear 'vector)) + (s1-0 (new 'stack-no-clear 'vector)) + (s2-0 (new 'stack-no-clear 'vector)) + (s5-0 (matrix->trans (-> arg0 bone transform) (new 'stack-no-clear 'vector))) ) - (.mov.vf vf6 vf0 :mask #b1000) - (.sub.vf vf6 vf4 vf5 :mask #b111) - (.svf (&-> sv-144 quad) vf6) - (rot-zxy-from-vector! s0-0 (-> arg0 bone transform vector 2)) - (rot-zxy-from-vector! s0-0 *z-vector*) - (rot-zxy-from-vector! s1-0 sv-160) - (set! (-> s2-0 x) (deg- (-> s1-0 x) (-> s0-0 x))) - (set! (-> s2-0 y) (deg- (-> s1-0 y) (-> s0-0 y))) - (set! (-> s2-0 y) (deg- (-> s1-0 y) 0.0)) - (set! (-> s3-0 angle-turret) - (deg-seek (-> s3-0 angle-turret) (-> s2-0 y) (* 36408.89 (-> pp clock seconds-per-frame))) - ) - (quaternion-vector-angle! s4-0 *up-vector* (-> s3-0 angle-turret)) - (quaternion->matrix (-> arg0 bone transform) s4-0) - (set! (-> arg0 bone transform trans quad) (-> s5-0 quad)) + (set! sv-144 sv-160) + (set! sv-128 (-> s3-0 target-pos)) + (let ((v0-2 (matrix->trans (-> arg0 bone transform) (new 'stack-no-clear 'vector)))) + (.lvf vf4 (&-> sv-128 quad)) + (.lvf vf5 (&-> v0-2 quad)) ) + (.mov.vf vf6 vf0 :mask #b1000) + (.sub.vf vf6 vf4 vf5 :mask #b111) + (.svf (&-> sv-144 quad) vf6) + (rot-zxy-from-vector! s0-0 (-> arg0 bone transform vector 2)) + (rot-zxy-from-vector! s0-0 *z-vector*) + (rot-zxy-from-vector! s1-0 sv-160) + (set! (-> s2-0 x) (deg- (-> s1-0 x) (-> s0-0 x))) + (set! (-> s2-0 y) (deg- (-> s1-0 y) (-> s0-0 y))) + (set! (-> s2-0 y) (deg- (-> s1-0 y) 0.0)) + (set! (-> s3-0 angle-turret) (deg-seek (-> s3-0 angle-turret) (-> s2-0 y) (* 36408.89 (seconds-per-frame)))) + (quaternion-vector-angle! s4-0 *up-vector* (-> s3-0 angle-turret)) + (quaternion->matrix (-> arg0 bone transform) s4-0) + (set! (-> arg0 bone transform trans quad) (-> s5-0 quad)) ) - 0 - (none) ) + 0 + (none) ) ) (defun bombbot-gun-callback ((arg0 cspace) (arg1 transformq)) (local-vars (sv-112 vector) (sv-128 vector)) - (with-pp - (rlet ((vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - ) - (init-vf0-vector) - (cspace<-parented-transformq-joint! arg0 arg1) - (let ((s4-0 (the-as bombbot (-> arg0 param1)))) - (let ((s0-0 (new 'stack-no-clear 'vector))) - (new 'stack-no-clear 'vector) - (let ((s2-0 (new 'stack-no-clear 'vector)) - (s1-0 (new 'stack-no-clear 'vector)) - (s3-0 (new 'stack-no-clear 'vector)) - ) - (set! sv-128 s0-0) - (set! sv-112 (-> s4-0 target-pos)) - (let ((v0-1 (matrix->trans (-> arg0 bone transform) (new 'stack-no-clear 'vector)))) - (.lvf vf4 (&-> sv-112 quad)) - (.lvf vf5 (&-> v0-1 quad)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (cspace<-parented-transformq-joint! arg0 arg1) + (let ((s4-0 (the-as bombbot (-> arg0 param1)))) + (let ((s0-0 (new 'stack-no-clear 'vector))) + (new 'stack-no-clear 'vector) + (let ((s2-0 (new 'stack-no-clear 'vector)) + (s1-0 (new 'stack-no-clear 'vector)) + (s3-0 (new 'stack-no-clear 'vector)) ) - (.mov.vf vf6 vf0 :mask #b1000) - (.sub.vf vf6 vf4 vf5 :mask #b111) - (.svf (&-> sv-128 quad) vf6) - (rot-zxy-from-vector! s2-0 (-> arg0 bone transform vector 2)) - (rot-zxy-from-vector! s1-0 s0-0) - (set! (-> s3-0 x) (fmax -2730.6667 (fmin 2730.6667 (deg- (-> s1-0 x) (-> s2-0 x))))) - (set! (-> s3-0 y) (deg- (-> s1-0 y) (-> s2-0 y))) - (set! (-> s4-0 angle-gun) - (deg-seek (-> s4-0 angle-gun) (-> s3-0 x) (* 7281.778 (-> pp clock seconds-per-frame))) - ) + (set! sv-128 s0-0) + (set! sv-112 (-> s4-0 target-pos)) + (let ((v0-1 (matrix->trans (-> arg0 bone transform) (new 'stack-no-clear 'vector)))) + (.lvf vf4 (&-> sv-112 quad)) + (.lvf vf5 (&-> v0-1 quad)) ) + (.mov.vf vf6 vf0 :mask #b1000) + (.sub.vf vf6 vf4 vf5 :mask #b111) + (.svf (&-> sv-128 quad) vf6) + (rot-zxy-from-vector! s2-0 (-> arg0 bone transform vector 2)) + (rot-zxy-from-vector! s1-0 s0-0) + (set! (-> s3-0 x) (fmax -2730.6667 (fmin 2730.6667 (deg- (-> s1-0 x) (-> s2-0 x))))) + (set! (-> s3-0 y) (deg- (-> s1-0 y) (-> s2-0 y))) + (set! (-> s4-0 angle-gun) (deg-seek (-> s4-0 angle-gun) (-> s3-0 x) (* 7281.778 (seconds-per-frame)))) ) - (quaternion-vector-angle! (-> arg1 quat) *x-vector* (-> s4-0 angle-gun)) ) - (cspace<-parented-transformq-joint! arg0 arg1) - 0 - (none) + (quaternion-vector-angle! (-> arg1 quat) *x-vector* (-> s4-0 angle-gun)) ) + (cspace<-parented-transformq-joint! arg0 arg1) + 0 + (none) ) ) @@ -2851,16 +2821,14 @@ ) (defmethod bombbot-method-184 bombbot ((obj bombbot)) - (with-pp - (rigid-body-control-method-10 - (-> obj rigidbody) - (the-as rigid-body-object obj) - (-> pp clock seconds-per-frame) - 0.033333335 - ) - 0 - (none) + (rigid-body-control-method-10 + (-> obj rigidbody) + (the-as rigid-body-object obj) + (seconds-per-frame) + 0.033333335 ) + 0 + (none) ) (defmethod init-enemy! bombbot ((obj bombbot)) @@ -3188,7 +3156,7 @@ *screen-filter* (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) - (-> self clock seconds-per-frame) + (seconds-per-frame) (bucket-id tex-all-map) ) (while (< (- (current-time) (-> self state-time)) (seconds 1)) diff --git a/goal_src/jak2/levels/city/burning-bush/ctywide-bbush.gc b/goal_src/jak2/levels/city/burning-bush/ctywide-bbush.gc index cd2de0fa8d..bcd2c31568 100644 --- a/goal_src/jak2/levels/city/burning-bush/ctywide-bbush.gc +++ b/goal_src/jak2/levels/city/burning-bush/ctywide-bbush.gc @@ -1519,6 +1519,7 @@ ) ) +;; og:preserve-this ;; this is unnecessary. the task manager can close the task. (set-subtask-hook! *game-info* @@ -1730,22 +1731,8 @@ ) ) ) - (let ((t9-8 sp-launch-particles-var) - (a0-8 *sp-particle-system-2d*) - (a1-6 (-> *part-id-table* 4593)) - (a2-5 *launch-matrix*) - ) - (set! (-> a2-5 trans quad) (-> gp-2 quad)) - (t9-8 a0-8 a1-6 a2-5 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-9 sp-launch-particles-var) - (a0-9 *sp-particle-system-2d*) - (a1-7 (-> *part-id-table* 4594)) - (a2-6 *launch-matrix*) - ) - (set! (-> a2-6 trans quad) (-> gp-2 quad)) - (t9-9 a0-9 a1-7 a2-6 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4593) gp-2) + (launch-particles (-> *part-id-table* 4594) gp-2) ) ) ) @@ -2685,7 +2672,7 @@ This commonly includes things such as: (lambda :behavior task-manager () (set! (-> self state-time) (current-time)) (none)) ) -;; PC PORT NOTE : added complete hook for collection bbush tasks where we wait for the hud to die first +;; og:preserve-this added complete hook for collection bbush tasks where we wait for the hud to die first (set-subtask-hook! *game-info* (game-task-node city-burning-bush-collection-1-resolution) TASK_MANAGER_COMPLETE_HOOK (lambda :behavior task-manager () diff --git a/goal_src/jak2/levels/city/common/pilot-states.gc b/goal_src/jak2/levels/city/common/pilot-states.gc index 416f3cd71f..49b603b4d7 100644 --- a/goal_src/jak2/levels/city/common/pilot-states.gc +++ b/goal_src/jak2/levels/city/common/pilot-states.gc @@ -181,10 +181,7 @@ (set! (-> gp-0 left-right-interp) (fmax -1.0 - (fmin - 1.0 - (+ (-> gp-0 left-right-interp) (* 8.0 (- f3-0 (-> gp-0 left-right-interp)) (-> self clock seconds-per-frame))) - ) + (fmin 1.0 (+ (-> gp-0 left-right-interp) (* 8.0 (- f3-0 (-> gp-0 left-right-interp)) (seconds-per-frame)))) ) ) ) @@ -195,10 +192,7 @@ (set! (-> gp-0 front-back-interp) (fmax -1.0 - (fmin - 1.0 - (+ (-> gp-0 front-back-interp) (* 8.0 (- f3-4 (-> gp-0 front-back-interp)) (-> self clock seconds-per-frame))) - ) + (fmin 1.0 (+ (-> gp-0 front-back-interp) (* 8.0 (- f3-4 (-> gp-0 front-back-interp)) (seconds-per-frame)))) ) ) ) @@ -206,10 +200,7 @@ (set! (-> gp-0 up-down-interp) (fmax -1.0 - (fmin - 1.0 - (+ (-> gp-0 up-down-interp) (* 8.0 (- f3-8 (-> gp-0 up-down-interp)) (-> self clock seconds-per-frame))) - ) + (fmin 1.0 (+ (-> gp-0 up-down-interp) (* 8.0 (- f3-8 (-> gp-0 up-down-interp)) (seconds-per-frame)))) ) ) ) @@ -500,6 +491,7 @@ ) ) ) + ;; og:preserve-this (init-vf0-vector) (.svf (&-> (-> gp-0 accel-array) 0 quad) vf0) ) diff --git a/goal_src/jak2/levels/city/common/target-pilot.gc b/goal_src/jak2/levels/city/common/target-pilot.gc index 84f9a64f79..1619101949 100644 --- a/goal_src/jak2/levels/city/common/target-pilot.gc +++ b/goal_src/jak2/levels/city/common/target-pilot.gc @@ -237,6 +237,7 @@ ) ) ) + ;; og:preserve-this cast (let ((v1-43 (get-best-seat-for-vehicle (the-as vehicle s4-1) (-> self control trans) 1 1))) (set! (-> s5-0 seat-index) (max 0 v1-43)) ) @@ -395,7 +396,7 @@ (set! (-> s3-0 vec 2 x) (* (-> s3-0 vec 2 x) (fmax 0.25 (fmin 1.0 (* 0.000008138021 (vector-length (-> self control transv)))))) ) - (seek! (-> gp-2 cam-side-shift) (-> s3-0 vec 2 x) (* 16384.0 (-> self clock seconds-per-frame))) + (seek! (-> gp-2 cam-side-shift) (-> s3-0 vec 2 x) (* 16384.0 (seconds-per-frame))) ) (set! (-> s4-0 x) (+ (-> s3-0 vec 0 x) (* (-> gp-2 cam-side-shift) (-> s3-0 vec 1 x)))) (set! (-> s4-0 z) (+ (-> s3-0 vec 0 z) (* (-> gp-2 cam-side-shift) (-> s3-0 vec 1 z)))) diff --git a/goal_src/jak2/levels/city/ctyport-obs.gc b/goal_src/jak2/levels/city/ctyport-obs.gc index b198c608bf..44d6dd98be 100644 --- a/goal_src/jak2/levels/city/ctyport-obs.gc +++ b/goal_src/jak2/levels/city/ctyport-obs.gc @@ -356,100 +356,94 @@ ) (defmethod vehicle-method-120 boat-base ((obj boat-base)) - (with-pp - (let ((t9-0 (method-of-type vehicle vehicle-method-120))) - (t9-0 obj) - ) - (when (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) - (let ((a1-1 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) - (s5-0 (new 'stack-no-clear 'quaternion)) - ) - (quaternion-from-two-vectors-max-angle! s5-0 a1-1 *up-vector* (* 728.1778 (-> pp clock seconds-per-frame))) - (quaternion*! (-> obj root quat) s5-0 (-> obj root quat)) - ) - (let ((s4-0 (new 'stack-no-clear 'vector)) - (s5-1 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) - ) - (new 'stack-no-clear 'vector) - (let ((a1-4 (-> obj nav state))) - (set! (-> s4-0 quad) (-> a1-4 velocity quad)) - ) - (let ((s1-0 (new 'stack-no-clear 'vector)) - (s2-0 (new 'stack-no-clear 'vector)) - (s3-0 (new 'stack 'clamp-travel-vector-to-mesh-return-info)) - ) - (let ((s0-0 (-> obj nav state current-poly))) - (vector-xz-normalize-copy! s1-0 s4-0 163840.0) - (set! (-> s2-0 quad) (-> s1-0 quad)) - (clamp-vector-to-mesh-no-gaps (-> obj nav) (-> obj root trans) s0-0 s2-0 s3-0) - ) - (when (-> s3-0 found-boundary) - (let ((f30-0 (vector-length s4-0))) - (vector-flatten! s4-0 s4-0 (-> s3-0 boundary-normal)) - (vector-rotate90-around-y! s4-0 (-> s3-0 boundary-normal)) - (vector-normalize! s4-0 f30-0) - ) - (when (= obj *debug-actor*) - (add-debug-vector #t (bucket-id debug-no-zbuf1) (-> obj root trans) s4-0 (meters 10) *color-blue*) - (format *stdcon* "avoid border~%") - ) - ) - ) - (set! (-> obj y-rot) (- (-> obj y-rot) (* 2.0 (-> pp clock seconds-per-frame) (-> obj y-rot)))) - (+! (-> obj y-rot) - (* 10.0 - (-> pp clock seconds-per-frame) - (deg- (deg- (vector-y-angle s4-0) (quaternion-y-angle (-> obj root quat))) (-> obj y-rot)) - ) - ) - (set! (-> obj y-rot) (fmax -10922.667 (fmin 10922.667 (-> obj y-rot)))) - (set! (-> obj y-rot) (deg- (vector-y-angle s4-0) (quaternion-y-angle (-> obj root quat)))) - (quaternion-rotate-local-y! - (-> obj root quat) - (-> obj root quat) - (* (-> obj y-rot) (-> pp clock seconds-per-frame)) - ) - (vector-v*float+! (-> obj root trans) (-> obj root trans) s5-1 8954.266) - ) - (seek! (-> obj root trans y) 4096.0 (* 4096.0 (-> pp clock seconds-per-frame))) - (when (= obj *debug-actor*) - (format *stdcon* "no physics~%") - (format *stdcon* "~M~%" (-> obj root trans y)) - ) - ) - (if (= obj *debug-actor*) - (format *stdcon* "speed ~M~%" (vector-length (-> obj root transv))) - ) - (let ((s4-2 (ppointer->process (-> obj parent))) - (s5-2 (new 'stack-no-clear 'vector)) - ) - (when s4-2 - (let ((a1-24 (-> obj nav state))) - (set! (-> s5-2 quad) (-> a1-24 target-post quad)) - ) - (when (< (vector-vector-xz-distance (-> obj root trans) s5-2) 163840.0) - (+! (-> obj path-index) 0.01) - (let ((f0-22 (-> obj path-index))) - (set! (-> obj path-index) (- f0-22 (* (the float (the int (/ f0-22 1.0))) 1.0))) - ) - ) - (get-point-at-percent-along-path! - (-> (the-as boat-manager (+ (* (-> obj path-num) 4) (the-as uint s4-2))) paths 0) - s5-2 - (-> obj path-index) - 'interp - ) - (let ((v1-76 (-> obj nav state))) - (logclear! (-> v1-76 flags) (nav-state-flag directional-mode)) - (logior! (-> v1-76 flags) (nav-state-flag target-poly-dirty)) - (set! (-> v1-76 target-post quad) (-> s5-2 quad)) - ) - 0 - ) - ) - (draw-thrusters obj) - (none) + (let ((t9-0 (method-of-type vehicle vehicle-method-120))) + (t9-0 obj) ) + (when (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) + (let ((a1-1 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) + (s5-0 (new 'stack-no-clear 'quaternion)) + ) + (quaternion-from-two-vectors-max-angle! s5-0 a1-1 *up-vector* (* 728.1778 (seconds-per-frame))) + (quaternion*! (-> obj root quat) s5-0 (-> obj root quat)) + ) + (let ((s4-0 (new 'stack-no-clear 'vector)) + (s5-1 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) + ) + (new 'stack-no-clear 'vector) + (let ((a1-4 (-> obj nav state))) + (set! (-> s4-0 quad) (-> a1-4 velocity quad)) + ) + (let ((s1-0 (new 'stack-no-clear 'vector)) + (s2-0 (new 'stack-no-clear 'vector)) + (s3-0 (new 'stack 'clamp-travel-vector-to-mesh-return-info)) + ) + (let ((s0-0 (-> obj nav state current-poly))) + (vector-xz-normalize-copy! s1-0 s4-0 163840.0) + (set! (-> s2-0 quad) (-> s1-0 quad)) + (clamp-vector-to-mesh-no-gaps (-> obj nav) (-> obj root trans) s0-0 s2-0 s3-0) + ) + (when (-> s3-0 found-boundary) + (let ((f30-0 (vector-length s4-0))) + (vector-flatten! s4-0 s4-0 (-> s3-0 boundary-normal)) + (vector-rotate90-around-y! s4-0 (-> s3-0 boundary-normal)) + (vector-normalize! s4-0 f30-0) + ) + (when (= obj *debug-actor*) + (add-debug-vector #t (bucket-id debug-no-zbuf1) (-> obj root trans) s4-0 (meters 10) *color-blue*) + (format *stdcon* "avoid border~%") + ) + ) + ) + (set! (-> obj y-rot) (- (-> obj y-rot) (* 2.0 (seconds-per-frame) (-> obj y-rot)))) + (+! (-> obj y-rot) + (* 10.0 + (seconds-per-frame) + (deg- (deg- (vector-y-angle s4-0) (quaternion-y-angle (-> obj root quat))) (-> obj y-rot)) + ) + ) + (set! (-> obj y-rot) (fmax -10922.667 (fmin 10922.667 (-> obj y-rot)))) + (set! (-> obj y-rot) (deg- (vector-y-angle s4-0) (quaternion-y-angle (-> obj root quat)))) + (quaternion-rotate-local-y! (-> obj root quat) (-> obj root quat) (* (-> obj y-rot) (seconds-per-frame))) + (vector-v*float+! (-> obj root trans) (-> obj root trans) s5-1 8954.266) + ) + (seek! (-> obj root trans y) 4096.0 (* 4096.0 (seconds-per-frame))) + (when (= obj *debug-actor*) + (format *stdcon* "no physics~%") + (format *stdcon* "~M~%" (-> obj root trans y)) + ) + ) + (if (= obj *debug-actor*) + (format *stdcon* "speed ~M~%" (vector-length (-> obj root transv))) + ) + (let ((s4-2 (ppointer->process (-> obj parent))) + (s5-2 (new 'stack-no-clear 'vector)) + ) + (when s4-2 + (let ((a1-24 (-> obj nav state))) + (set! (-> s5-2 quad) (-> a1-24 target-post quad)) + ) + (when (< (vector-vector-xz-distance (-> obj root trans) s5-2) 163840.0) + (+! (-> obj path-index) 0.01) + (let ((f0-22 (-> obj path-index))) + (set! (-> obj path-index) (- f0-22 (* (the float (the int (/ f0-22 1.0))) 1.0))) + ) + ) + (get-point-at-percent-along-path! + (-> (the-as boat-manager (+ (* (-> obj path-num) 4) (the-as uint s4-2))) paths 0) + s5-2 + (-> obj path-index) + 'interp + ) + (let ((v1-76 (-> obj nav state))) + (logclear! (-> v1-76 flags) (nav-state-flag directional-mode)) + (logior! (-> v1-76 flags) (nav-state-flag target-poly-dirty)) + (set! (-> v1-76 target-post quad) (-> s5-2 quad)) + ) + 0 + ) + ) + (draw-thrusters obj) + (none) ) (defmethod rigid-body-object-method-29 boat-base ((obj boat-base) (arg0 float)) diff --git a/goal_src/jak2/levels/city/ctywide-obs.gc b/goal_src/jak2/levels/city/ctywide-obs.gc index 331efdbb24..7850af7681 100644 --- a/goal_src/jak2/levels/city/ctywide-obs.gc +++ b/goal_src/jak2/levels/city/ctywide-obs.gc @@ -407,6 +407,7 @@ (security-wall-method-24 self) (none) ) + ;; og:preserve-this :code (behavior () (until #f (when (or (and (logtest? (game-feature pass-red) (-> *game-info* features)) (= 29 (-> self pass))) @@ -1864,124 +1865,114 @@ This commonly includes things such as: (defmethod cty-guard-turret-method-35 cty-guard-turret ((obj cty-guard-turret)) (local-vars (sv-192 vector)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (let ((s5-0 (handle->process (-> obj focus handle)))) - (when s5-0 - (let ((s4-0 (new 'stack-no-clear 'vector))) - (set! (-> s4-0 quad) (-> (get-trans (the-as process-focusable s5-0) 3) quad)) - (let ((s0-0 (new 'stack-no-clear 'vector))) - (let ((v1-8 (-> obj root trans))) - (let ((a0-5 *y-vector*)) - (let ((a1-3 10240.0)) - (.mov vf7 a1-3) - ) - (.lvf vf5 (&-> a0-5 quad)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (handle->process (-> obj focus handle)))) + (when s5-0 + (let ((s4-0 (new 'stack-no-clear 'vector))) + (set! (-> s4-0 quad) (-> (get-trans (the-as process-focusable s5-0) 3) quad)) + (let ((s0-0 (new 'stack-no-clear 'vector))) + (let ((v1-8 (-> obj root trans))) + (let ((a0-5 *y-vector*)) + (let ((a1-3 10240.0)) + (.mov vf7 a1-3) ) - (.lvf vf4 (&-> v1-8 quad)) + (.lvf vf5 (&-> a0-5 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> s0-0 quad) vf6) - (let ((f30-0 (vector-vector-xz-distance s4-0 s0-0))) - (let ((f0-2 (* 0.0000012207031 f30-0)) - (a0-7 s4-0) - ) - (let ((v1-10 s4-0)) - (let ((a1-6 (-> (the-as process-focusable s5-0) root transv))) - (let ((a2-0 f0-2)) - (.mov vf7 a2-0) - ) - (.lvf vf5 (&-> a1-6 quad)) - ) - (.lvf vf4 (&-> v1-10 quad)) + (.lvf vf4 (&-> v1-8 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> s0-0 quad) vf6) + (let ((f30-0 (vector-vector-xz-distance s4-0 s0-0))) + (let ((f0-2 (* 0.0000012207031 f30-0)) + (a0-7 s4-0) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a0-7 quad) vf6) - ) - (let ((s3-1 (vector-! (new 'stack-no-clear 'vector) s4-0 s0-0)) - (s1-0 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) + (let ((v1-10 s4-0)) + (let ((a1-6 (-> (the-as process-focusable s5-0) root transv))) + (let ((a2-0 f0-2)) + (.mov vf7 a2-0) ) - (set! sv-192 (new 'stack-no-clear 'vector)) - (let ((s2-0 (new 'stack-no-clear 'vector))) - (-> obj node-list data 6 bone transform) - (-> obj node-list data 7 bone transform) - (-> obj node-list data 8 bone transform) - (vector-rotate90-around-y! sv-192 s3-1) - (set! (-> sv-192 y) 0.0) - (vector-normalize! sv-192 1.0) - (let* ((f26-0 (vector-vector-xz-distance-squared s0-0 s4-0)) - (f0-4 7389.184) - (f28-0 (* f0-4 f0-4)) - (t9-6 vector-vector-xz-distance-squared) - (a0-13 (new 'stack-no-clear 'vector)) + (.lvf vf5 (&-> a1-6 quad)) + ) + (.lvf vf4 (&-> v1-10 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a0-7 quad) vf6) + ) + (let ((s3-1 (vector-! (new 'stack-no-clear 'vector) s4-0 s0-0)) + (s1-0 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) + ) + (set! sv-192 (new 'stack-no-clear 'vector)) + (let ((s2-0 (new 'stack-no-clear 'vector))) + (-> obj node-list data 6 bone transform) + (-> obj node-list data 7 bone transform) + (-> obj node-list data 8 bone transform) + (vector-rotate90-around-y! sv-192 s3-1) + (set! (-> sv-192 y) 0.0) + (vector-normalize! sv-192 1.0) + (let* ((f26-0 (vector-vector-xz-distance-squared s0-0 s4-0)) + (f0-4 7389.184) + (f28-0 (* f0-4 f0-4)) + (t9-6 vector-vector-xz-distance-squared) + (a0-13 (new 'stack-no-clear 'vector)) + ) + (let ((v1-27 7389.184)) + (.mov vf7 v1-27) + ) + (.lvf vf5 (&-> sv-192 quad)) + (.lvf vf4 (&-> s0-0 quad)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a0-13 quad) vf6) + (let* ((f2-0 (t9-6 a0-13 s4-0)) + (f28-1 (acos (fmax -1.0 (fmin 1.0 (/ (- (- f26-0 f28-0) f2-0) (* -2.0 (sqrtf f2-0) (sqrtf f28-0))))))) ) - (let ((v1-27 7389.184)) - (.mov vf7 v1-27) - ) - (.lvf vf5 (&-> sv-192 quad)) - (.lvf vf4 (&-> s0-0 quad)) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a0-13 quad) vf6) - (let* ((f2-0 (t9-6 a0-13 s4-0)) - (f28-1 (acos (fmax -1.0 (fmin 1.0 (/ (- (- f26-0 f28-0) f2-0) (* -2.0 (sqrtf f2-0) (sqrtf f28-0))))))) - ) - (let ((s0-1 (new 'stack-no-clear 'vector)) - (s4-1 (new 'stack-no-clear 'vector)) - ) - (if (< f28-1 11832.889) - (set! f28-1 11832.889) - ) - (rot-zxy-from-vector! s0-1 s1-0) - (rot-zxy-from-vector! s2-0 s3-1) - (set! (-> s4-1 x) (deg- (-> s2-0 x) (-> s0-1 x))) - (set! (-> s4-1 y) (deg- (-> s2-0 y) (-> s0-1 y))) - (cond - ((focus-test? (the-as process-focusable s5-0) pilot) - (set! (-> obj angle-turret) - (deg-seek (-> obj angle-turret) (-> s4-1 y) (* 36408.89 (-> pp clock seconds-per-frame))) - ) - (set! (-> obj angle-guns) - (deg-seek (-> obj angle-guns) (-> s4-1 x) (* 7281.778 (-> pp clock seconds-per-frame))) - ) - ) - (else - (set! (-> obj angle-turret) - (deg-seek (-> obj angle-turret) (-> s4-1 y) (* 18204.445 (-> pp clock seconds-per-frame))) - ) - (set! (-> obj angle-guns) - (deg-seek (-> obj angle-guns) (-> s4-1 x) (* 7281.778 (-> pp clock seconds-per-frame))) - ) - ) + (let ((s0-1 (new 'stack-no-clear 'vector)) + (s4-1 (new 'stack-no-clear 'vector)) ) - (quaternion-axis-angle! (-> obj jm-turret quat) 0.0 1.0 0.0 (-> obj angle-turret)) - (when (= (+ (fabs (- (-> obj angle-turret) (-> s4-1 y))) (fabs (- (-> obj angle-guns) (-> s4-1 x)))) 0.0) - (set! (-> obj next-time-shot) (+ (current-time) (seconds 1))) - (set! (-> obj num-shots) (the-as uint 0)) - 0 + (if (< f28-1 11832.889) + (set! f28-1 11832.889) + ) + (rot-zxy-from-vector! s0-1 s1-0) + (rot-zxy-from-vector! s2-0 s3-1) + (set! (-> s4-1 x) (deg- (-> s2-0 x) (-> s0-1 x))) + (set! (-> s4-1 y) (deg- (-> s2-0 y) (-> s0-1 y))) + (cond + ((focus-test? (the-as process-focusable s5-0) pilot) + (set! (-> obj angle-turret) (deg-seek (-> obj angle-turret) (-> s4-1 y) (* 36408.89 (seconds-per-frame)))) + (set! (-> obj angle-guns) (deg-seek (-> obj angle-guns) (-> s4-1 x) (* 7281.778 (seconds-per-frame)))) + ) + (else + (set! (-> obj angle-turret) (deg-seek (-> obj angle-turret) (-> s4-1 y) (* 18204.445 (seconds-per-frame)))) + (set! (-> obj angle-guns) (deg-seek (-> obj angle-guns) (-> s4-1 x) (* 7281.778 (seconds-per-frame)))) ) ) - (let ((s5-1 (new 'stack-no-clear 'quaternion))) - (let ((f0-42 (/ 45511.11 (* 0.00024414062 f30-0)))) - (quaternion-axis-angle! s5-1 1.0 0.0 0.0 (fmax (fmin (-> obj angle-guns) f0-42) (- f0-42))) - ) - (quaternion*! - (-> obj jm-gunsL quat) - (quaternion-axis-angle! (new 'stack-no-clear 'quaternion) 0.0 1.0 0.0 (+ -16384.0 f28-1)) - s5-1 - ) + (quaternion-axis-angle! (-> obj jm-turret quat) 0.0 1.0 0.0 (-> obj angle-turret)) + (when (= (+ (fabs (- (-> obj angle-turret) (-> s4-1 y))) (fabs (- (-> obj angle-guns) (-> s4-1 x)))) 0.0) + (set! (-> obj next-time-shot) (+ (current-time) (seconds 1))) + (set! (-> obj num-shots) (the-as uint 0)) + 0 + ) + ) + (let ((s5-1 (new 'stack-no-clear 'quaternion))) + (let ((f0-42 (/ 45511.11 (* 0.00024414062 f30-0)))) + (quaternion-axis-angle! s5-1 1.0 0.0 0.0 (fmax (fmin (-> obj angle-guns) f0-42) (- f0-42))) + ) + (quaternion*! + (-> obj jm-gunsL quat) + (quaternion-axis-angle! (new 'stack-no-clear 'quaternion) 0.0 1.0 0.0 (+ -16384.0 f28-1)) + s5-1 ) ) ) @@ -1990,8 +1981,8 @@ This commonly includes things such as: ) ) ) - (quaternion-copy! (-> obj jm-gunsR quat) (-> obj jm-gunsL quat)) ) + (quaternion-copy! (-> obj jm-gunsR quat) (-> obj jm-gunsL quat)) ) ) ) @@ -2806,7 +2797,7 @@ This commonly includes things such as: (set! (-> self y-rot) (deg-seek (-> self y-rot) (deg- (vector-y-angle s4-0) (quaternion-y-angle (-> self root quat))) - (* 36408.89 (-> self clock seconds-per-frame)) + (* 36408.89 (seconds-per-frame)) ) ) ) @@ -4168,9 +4159,7 @@ This commonly includes things such as: :post (behavior () (if (< 0.0 (-> self angle)) (set! (-> self angle) - (- (-> self angle) - (* 6.0 (-> self clock seconds-per-frame) (fmax 1820.4445 (fmin (-> self angle) (-> self angle)))) - ) + (- (-> self angle) (* 6.0 (seconds-per-frame) (fmax 1820.4445 (fmin (-> self angle) (-> self angle))))) ) (set! (-> self angle) 0.0) ) diff --git a/goal_src/jak2/levels/city/farm/ctyfarma-part.gc b/goal_src/jak2/levels/city/farm/ctyfarma-part.gc index 1edcaacfe8..a3a308d2ea 100644 --- a/goal_src/jak2/levels/city/farm/ctyfarma-part.gc +++ b/goal_src/jak2/levels/city/farm/ctyfarma-part.gc @@ -121,22 +121,8 @@ (if (< (vector-vector-distance (camera-pos) s3-0) 204800.0) (sound-play "dirt-drips" :position s3-0) ) - (let ((t9-5 sp-launch-particles-var) - (a0-7 *sp-particle-system-2d*) - (a1-4 (-> *part-id-table* 4495)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-5 a0-7 a1-4 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-6 sp-launch-particles-var) - (a0-8 *sp-particle-system-3d*) - (a1-5 (-> *part-id-table* 4496)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-0 quad)) - (t9-6 a0-8 a1-5 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4495) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 4496) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/goal_src/jak2/levels/city/farm/ctyfarmb-part.gc b/goal_src/jak2/levels/city/farm/ctyfarmb-part.gc index ef1ddc39fe..16993cd392 100644 --- a/goal_src/jak2/levels/city/farm/ctyfarmb-part.gc +++ b/goal_src/jak2/levels/city/farm/ctyfarmb-part.gc @@ -121,22 +121,8 @@ (if (< (vector-vector-distance (camera-pos) s3-0) 204800.0) (sound-play "dirt-drips" :position s3-0) ) - (let ((t9-5 sp-launch-particles-var) - (a0-7 *sp-particle-system-2d*) - (a1-4 (-> *part-id-table* 4503)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-5 a0-7 a1-4 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-6 sp-launch-particles-var) - (a0-8 *sp-particle-system-3d*) - (a1-5 (-> *part-id-table* 4504)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-0 quad)) - (t9-6 a0-8 a1-5 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4503) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 4504) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/goal_src/jak2/levels/city/kiddogescort/crocesc-states.gc b/goal_src/jak2/levels/city/kiddogescort/crocesc-states.gc index 1363cf4192..10f0a4cbc0 100644 --- a/goal_src/jak2/levels/city/kiddogescort/crocesc-states.gc +++ b/goal_src/jak2/levels/city/kiddogescort/crocesc-states.gc @@ -609,7 +609,7 @@ (let* ((f0-2 (* (vector-vector-distance (-> self root trans) gp-0) (-> self clock frames-per-second))) (f0-3 (lerp-scale 0.3 1.2 f0-2 0.0 81920.0)) ) - (seek! (-> self anim-speed) f0-3 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self anim-speed) f0-3 (* 2.0 (seconds-per-frame))) ) ) ) diff --git a/goal_src/jak2/levels/city/kiddogescort/crocesc.gc b/goal_src/jak2/levels/city/kiddogescort/crocesc.gc index 952d1938ce..7e8275897a 100644 --- a/goal_src/jak2/levels/city/kiddogescort/crocesc.gc +++ b/goal_src/jak2/levels/city/kiddogescort/crocesc.gc @@ -587,7 +587,7 @@ This commonly includes things such as: (with-pp (let ((f30-0 (-> obj nav state speed))) (let ((f0-1 (lerp-scale 0.0 1.0 f30-0 9011.2 28672.0))) - (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (-> pp clock seconds-per-frame))) + (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (seconds-per-frame))) ) (let ((f28-0 (-> obj travel-anim-interp)) (v1-7 (if (> (-> obj skel active-channels) 0) diff --git a/goal_src/jak2/levels/city/kiddogescort/kidesc-states.gc b/goal_src/jak2/levels/city/kiddogescort/kidesc-states.gc index 2eefc886b3..f9c25eb55d 100644 --- a/goal_src/jak2/levels/city/kiddogescort/kidesc-states.gc +++ b/goal_src/jak2/levels/city/kiddogescort/kidesc-states.gc @@ -527,9 +527,9 @@ (if (< 0.0 f0-4) (set! f22-0 (/ (fabs (-> gp-0 front-back-interp)) f0-4)) ) - (set! f30-0 (seek f30-0 f20-0 (* 4.0 (-> self clock seconds-per-frame)))) - (set! f28-0 (seek f28-0 f24-0 (* 4.0 (-> self clock seconds-per-frame)))) - (set! f26-0 (seek f26-0 f22-0 (* 4.0 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 f20-0 (* 4.0 (seconds-per-frame)))) + (set! f28-0 (seek f28-0 f24-0 (* 4.0 (seconds-per-frame)))) + (set! f26-0 (seek f26-0 f22-0 (* 4.0 (seconds-per-frame)))) ) ) ) diff --git a/goal_src/jak2/levels/city/kiosk/kiosk-part.gc b/goal_src/jak2/levels/city/kiosk/kiosk-part.gc index b2e21994f8..0b8b597f17 100644 --- a/goal_src/jak2/levels/city/kiosk/kiosk-part.gc +++ b/goal_src/jak2/levels/city/kiosk/kiosk-part.gc @@ -196,22 +196,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 4562)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-2d*) - (a1-4 (-> *part-id-table* 4563)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-3 a0-5 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4562) gp-0) + (launch-particles (-> *part-id-table* 4563) gp-0) ) ) (none) diff --git a/goal_src/jak2/levels/city/market/ashelin/ctyasha-obs.gc b/goal_src/jak2/levels/city/market/ashelin/ctyasha-obs.gc index a7d2f728c7..e4233e6a02 100644 --- a/goal_src/jak2/levels/city/market/ashelin/ctyasha-obs.gc +++ b/goal_src/jak2/levels/city/market/ashelin/ctyasha-obs.gc @@ -947,7 +947,7 @@ ) ) (let* ((f0-0 (-> self root scale x)) - (f0-3 (seek f0-0 1.0 (* 1.5 (-> self clock seconds-per-frame)))) + (f0-3 (seek f0-0 1.0 (* 1.5 (seconds-per-frame)))) ) (set-vector! (-> self root scale) f0-3 f0-3 f0-3 1.0) ) @@ -1052,7 +1052,7 @@ ) ) (let* ((f0-0 (-> self root scale x)) - (f0-3 (seek f0-0 1.0 (* 1.15 (-> self clock seconds-per-frame)))) + (f0-3 (seek f0-0 1.0 (* 1.15 (seconds-per-frame)))) ) (set-vector! (-> self root scale) f0-3 f0-3 f0-3 1.0) ) diff --git a/goal_src/jak2/levels/city/meet-brutter/meet-brutter.gc b/goal_src/jak2/levels/city/meet-brutter/meet-brutter.gc index f44881216a..b074576d7f 100644 --- a/goal_src/jak2/levels/city/meet-brutter/meet-brutter.gc +++ b/goal_src/jak2/levels/city/meet-brutter/meet-brutter.gc @@ -914,7 +914,7 @@ :frame-num (lerp-scale 0.0 2.0 (+ (* -2.0 f30-0 f30-0 f30-0) (* 3.0 f30-0 f30-0)) 0.0 1.0) ) (suspend) - (+! f30-0 (* 4.0 (-> self clock seconds-per-frame))) + (+! f30-0 (* 4.0 (seconds-per-frame))) ) ) (let ((s5-2 (new 'stack-no-clear 'vector))) @@ -1080,18 +1080,15 @@ (gp-0 (rigid-body-method-22 (-> v1-30 state) a1-10 a2-1)) ) (vector-inv-orient-by-quat! gp-0 gp-0 (-> self root quat)) - (seek! (-> self v-speed x) (-> gp-0 x) (* 81920.0 (-> self clock seconds-per-frame))) - (seek! (-> self v-speed z) (-> gp-0 z) (* 49152.0 (-> self clock seconds-per-frame))) + (seek! (-> self v-speed x) (-> gp-0 x) (* 81920.0 (seconds-per-frame))) + (seek! (-> self v-speed z) (-> gp-0 z) (* 49152.0 (seconds-per-frame))) (set! (-> self left-right-interp) (fmax 0.0 (fmin 2.0 (+ (-> self left-right-interp) - (* 8.0 - (- (lerp-scale 0.0 2.0 (-> gp-0 x) -20480.0 20480.0) (-> self left-right-interp)) - (-> self clock seconds-per-frame) - ) + (* 8.0 (- (lerp-scale 0.0 2.0 (-> gp-0 x) -20480.0 20480.0) (-> self left-right-interp)) (seconds-per-frame)) ) ) ) @@ -1104,7 +1101,7 @@ (+ (-> self front-back-interp) (* 8.0 (- (lerp-scale 0.0 2.0 (- (-> self v-speed z) (-> gp-0 z)) -16384.0 16384.0) (-> self front-back-interp)) - (-> self clock seconds-per-frame) + (seconds-per-frame) ) ) ) diff --git a/goal_src/jak2/levels/city/onintent/onin-game.gc b/goal_src/jak2/levels/city/onintent/onin-game.gc index 2d02df43b2..1dea67c38f 100644 --- a/goal_src/jak2/levels/city/onintent/onin-game.gc +++ b/goal_src/jak2/levels/city/onintent/onin-game.gc @@ -1992,7 +1992,7 @@ (none) ) :post (behavior () - (+! (-> self root transv y) (* (-> self gravity) (-> self clock seconds-per-frame))) + (+! (-> self root transv y) (* (-> self gravity) (seconds-per-frame))) (set! (-> self root transv x) (* 0.999 (-> self root transv x))) (vector-v+! (-> self root trans) (-> self root trans) (-> self root transv)) (spawn (-> self part) (-> self root trans)) @@ -2659,7 +2659,7 @@ (suspend) ) ) - ;; pc port : give skill directly + ;; og:preserve-this give skill directly (#if PC_PORT (send-event *target* 'get-pickup (pickup-type skill) (-> *FACT-bank* super-skill-inc)) (script-eval '(birth-pickup ("pecker-npc-1" "head") skill FACT_SUPER_SKILL_INC flags (suck-in))) diff --git a/goal_src/jak2/levels/city/package/delivery-task.gc b/goal_src/jak2/levels/city/package/delivery-task.gc index bedcef68af..29c27c7eeb 100644 --- a/goal_src/jak2/levels/city/package/delivery-task.gc +++ b/goal_src/jak2/levels/city/package/delivery-task.gc @@ -61,7 +61,7 @@ (cond (gp-0 (when (focus-test? (the-as process-focusable gp-0) dead) - (seek! (-> self scale) 0.0 (* 0.5 (-> self clock seconds-per-frame))) + (seek! (-> self scale) 0.0 (* 0.5 (seconds-per-frame))) (if (= (-> self scale) 0.0) (go-virtual die) ) diff --git a/goal_src/jak2/levels/city/palace/ctypal-part.gc b/goal_src/jak2/levels/city/palace/ctypal-part.gc index e62a4c1d08..edc79ff332 100644 --- a/goal_src/jak2/levels/city/palace/ctypal-part.gc +++ b/goal_src/jak2/levels/city/palace/ctypal-part.gc @@ -283,30 +283,9 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 4527)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 4528)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-3d*) - (a1-4 (-> *part-id-table* 4529)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-0 quad)) - (t9-3 a0-5 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4527) s3-0) + (launch-particles (-> *part-id-table* 4528) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 4529) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/goal_src/jak2/levels/city/port/ctyport-part.gc b/goal_src/jak2/levels/city/port/ctyport-part.gc index 1b9c4c2a55..66df92a241 100644 --- a/goal_src/jak2/levels/city/port/ctyport-part.gc +++ b/goal_src/jak2/levels/city/port/ctyport-part.gc @@ -219,30 +219,9 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 4159)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 4160)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-3d*) - (a1-4 (-> *part-id-table* 4161)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-0 quad)) - (t9-3 a0-5 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4159) s3-0) + (launch-particles (-> *part-id-table* 4160) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 4161) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/goal_src/jak2/levels/city/port/portrun/portrun.gc b/goal_src/jak2/levels/city/port/portrun/portrun.gc index 488498dbaf..4e5fb84700 100644 --- a/goal_src/jak2/levels/city/port/portrun/portrun.gc +++ b/goal_src/jak2/levels/city/port/portrun/portrun.gc @@ -866,104 +866,102 @@ ;; WARN: Return type mismatch float vs none. (defmethod ctyport-mine-method-23 ctyport-mine ((obj ctyport-mine)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (get-base-height *ocean-map-city*) - (let ((f0-1 (-> obj period)) - (t9-1 sin-rad) - (f1-0 -3.1415925) - (f2-0 6.283185) - (f3-1 (the float (+ (current-time) (the-as time-frame (-> obj time-skew))))) - ) - (t9-1 (+ f1-0 (* f2-0 (/ (- f3-1 (* (the float (the int (/ f3-1 f0-1))) f0-1)) f0-1)))) - ) - (let ((s5-0 (-> obj info))) - (cond - ((zero? (-> obj info type)) - (let* ((f0-8 (+ (* 2.0 (-> s5-0 offset)) (/ (* 0.0033333334 (the float (current-time))) (-> s5-0 speed)))) - (f0-9 (- f0-8 (* (the float (the int (/ f0-8 2.0))) 2.0))) - ) - (if (< 1.0 f0-9) - (set! f0-9 (- 2.0 f0-9)) - ) - (let ((f0-13 (* 0.5 (- 1.0 (cos (* 32768.0 f0-9)))))) - (let ((v1-23 (-> obj root trans)) - (a0-5 (new 'stack-no-clear 'vector)) - ) - (set! (-> a0-5 x) (-> s5-0 pos1-x)) - (set! (-> a0-5 y) (-> s5-0 pos1-y)) - (set! (-> a0-5 z) (-> s5-0 pos1-z)) - (set! (-> a0-5 w) 1.0) - (vector-float*! v1-23 a0-5 f0-13) - ) - (let ((s4-0 (-> obj root trans))) - (let ((v1-27 (-> obj root trans))) - (let ((a0-6 (new 'stack-no-clear 'vector))) - (set! (-> a0-6 x) (-> s5-0 pos2-x)) - (set! (-> a0-6 y) (-> s5-0 pos2-y)) - (set! (-> a0-6 z) (-> s5-0 pos2-z)) - (set! (-> a0-6 w) 1.0) - (let ((a1-3 (- 1.0 f0-13))) - (.mov vf7 a1-3) - ) - (.lvf vf5 (&-> a0-6 quad)) - ) - (.lvf vf4 (&-> v1-27 quad)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (get-base-height *ocean-map-city*) + (let ((f0-1 (-> obj period)) + (t9-1 sin-rad) + (f1-0 -3.1415925) + (f2-0 6.283185) + (f3-1 (the float (+ (current-time) (the-as time-frame (-> obj time-skew))))) + ) + (t9-1 (+ f1-0 (* f2-0 (/ (- f3-1 (* (the float (the int (/ f3-1 f0-1))) f0-1)) f0-1)))) + ) + (let ((s5-0 (-> obj info))) + (cond + ((zero? (-> obj info type)) + (let* ((f0-8 (+ (* 2.0 (-> s5-0 offset)) (/ (* 0.0033333334 (the float (current-time))) (-> s5-0 speed)))) + (f0-9 (- f0-8 (* (the float (the int (/ f0-8 2.0))) 2.0))) + ) + (if (< 1.0 f0-9) + (set! f0-9 (- 2.0 f0-9)) + ) + (let ((f0-13 (* 0.5 (- 1.0 (cos (* 32768.0 f0-9)))))) + (let ((v1-23 (-> obj root trans)) + (a0-5 (new 'stack-no-clear 'vector)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> s4-0 quad) vf6) + (set! (-> a0-5 x) (-> s5-0 pos1-x)) + (set! (-> a0-5 y) (-> s5-0 pos1-y)) + (set! (-> a0-5 z) (-> s5-0 pos1-z)) + (set! (-> a0-5 w) 1.0) + (vector-float*! v1-23 a0-5 f0-13) + ) + (let ((s4-0 (-> obj root trans))) + (let ((v1-27 (-> obj root trans))) + (let ((a0-6 (new 'stack-no-clear 'vector))) + (set! (-> a0-6 x) (-> s5-0 pos2-x)) + (set! (-> a0-6 y) (-> s5-0 pos2-y)) + (set! (-> a0-6 z) (-> s5-0 pos2-z)) + (set! (-> a0-6 w) 1.0) + (let ((a1-3 (- 1.0 f0-13))) + (.mov vf7 a1-3) + ) + (.lvf vf5 (&-> a0-6 quad)) + ) + (.lvf vf4 (&-> v1-27 quad)) ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> s4-0 quad) vf6) ) ) ) - (else - (let ((s4-1 (-> obj root trans))) - (let ((s3-0 (new 'stack-no-clear 'vector))) - (set! (-> s3-0 x) (-> s5-0 pos1-x)) - (set! (-> s3-0 y) (-> s5-0 pos1-y)) - (set! (-> s3-0 z) (-> s5-0 pos1-z)) - (set! (-> s3-0 w) 1.0) - (let ((v1-35 - (vector-rotate-around-y! - (new 'stack-no-clear 'vector) - *x-vector* - (+ (* 182.04445 (* 360.0 (-> s5-0 offset))) (* 0.60681486 (-> s5-0 speed) (the float (current-time)))) - ) + ) + (else + (let ((s4-1 (-> obj root trans))) + (let ((s3-0 (new 'stack-no-clear 'vector))) + (set! (-> s3-0 x) (-> s5-0 pos1-x)) + (set! (-> s3-0 y) (-> s5-0 pos1-y)) + (set! (-> s3-0 z) (-> s5-0 pos1-z)) + (set! (-> s3-0 w) 1.0) + (let ((v1-35 + (vector-rotate-around-y! + (new 'stack-no-clear 'vector) + *x-vector* + (+ (* 182.04445 (* 360.0 (-> s5-0 offset))) (* 0.60681486 (-> s5-0 speed) (the float (current-time)))) ) ) - (let ((a0-8 (-> s5-0 pos2-x))) - (.mov vf7 a0-8) ) - (.lvf vf5 (&-> v1-35 quad)) + (let ((a0-8 (-> s5-0 pos2-x))) + (.mov vf7 a0-8) ) - (.lvf vf4 (&-> s3-0 quad)) + (.lvf vf5 (&-> v1-35 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> s4-1 quad) vf6) + (.lvf vf4 (&-> s3-0 quad)) ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> s4-1 quad) vf6) ) ) ) - (+! (-> obj speed-y) - (* 10.0 (-> pp clock seconds-per-frame) (- (get-height *ocean* (-> obj root trans) #t) (-> obj trans-y))) - ) - (set! (-> obj speed-y) (- (-> obj speed-y) (* (-> obj speed-y) (-> pp clock seconds-per-frame)))) - (set! (-> obj speed-y) (- (-> obj speed-y) (* 4096.0 (-> pp clock seconds-per-frame)))) - (+! (-> obj trans-y) (* (-> obj speed-y) (-> pp clock seconds-per-frame))) - (set! (-> obj root trans y) (+ 2048.0 (-> obj trans-y))) - (none) ) + (+! (-> obj speed-y) + (* 10.0 (seconds-per-frame) (- (get-height *ocean* (-> obj root trans) #t) (-> obj trans-y))) + ) + (set! (-> obj speed-y) (- (-> obj speed-y) (* (-> obj speed-y) (seconds-per-frame)))) + (set! (-> obj speed-y) (- (-> obj speed-y) (* 4096.0 (seconds-per-frame)))) + (+! (-> obj trans-y) (* (-> obj speed-y) (seconds-per-frame))) + (set! (-> obj root trans y) (+ 2048.0 (-> obj trans-y))) + (none) ) ) @@ -987,7 +985,7 @@ :post (behavior () (cond ((and (-> self beep) (< (- (current-time) (-> self state-time)) (seconds 1))) - (vector-seek! (-> self beep-color) *null-vector* (* 4.0 (-> self clock seconds-per-frame))) + (vector-seek! (-> self beep-color) *null-vector* (* 4.0 (seconds-per-frame))) (when (< (-> self beep-time) (current-time)) (sound-play "cargo-beep") (set-vector! (-> self beep-color) 1.0 1.0 1.0 1.0) @@ -1085,9 +1083,9 @@ (none) ) :post (behavior () - (set! (-> self speed-y) (- (-> self speed-y) (* (-> self speed-y) (-> self clock seconds-per-frame)))) - (set! (-> self speed-y) (- (-> self speed-y) (* (-> self acc-y) (-> self clock seconds-per-frame)))) - (+! (-> self trans-y) (* (-> self speed-y) (-> self clock seconds-per-frame))) + (set! (-> self speed-y) (- (-> self speed-y) (* (-> self speed-y) (seconds-per-frame)))) + (set! (-> self speed-y) (- (-> self speed-y) (* (-> self acc-y) (seconds-per-frame)))) + (+! (-> self trans-y) (* (-> self speed-y) (seconds-per-frame))) (set! (-> self root trans y) (+ 2048.0 (-> self trans-y))) (transform-post) (none) @@ -1225,8 +1223,8 @@ ) :trans (behavior () (when (>= (- (current-time) (-> self state-time)) (seconds 0.3)) - (+! (-> self trans-y) (* (-> self root transv y) (-> self clock seconds-per-frame))) - (+! (-> self root transv y) (* -8.0 (-> self clock seconds-per-frame) (-> self root transv y))) + (+! (-> self trans-y) (* (-> self root transv y) (seconds-per-frame))) + (+! (-> self root transv y) (* -8.0 (seconds-per-frame) (-> self root transv y))) (set! (-> self root trans y) (+ (-> self trans-y) (* 1024.0 (+ (sin (* 182.04445 (* 50.0 (+ 10.0 (* 0.0033333334 (the float (current-time))))))) @@ -1448,11 +1446,11 @@ ) :trans (behavior () (+! (-> self speed-y) - (* 10.0 (-> self clock seconds-per-frame) (- (get-height *ocean* (-> self root trans) #t) (-> self trans-y))) + (* 10.0 (seconds-per-frame) (- (get-height *ocean* (-> self root trans) #t) (-> self trans-y))) ) - (set! (-> self speed-y) (- (-> self speed-y) (* (-> self speed-y) (-> self clock seconds-per-frame)))) - (set! (-> self speed-y) (- (-> self speed-y) (* 409.6 (-> self clock seconds-per-frame)))) - (+! (-> self trans-y) (* (-> self speed-y) (-> self clock seconds-per-frame))) + (set! (-> self speed-y) (- (-> self speed-y) (* (-> self speed-y) (seconds-per-frame)))) + (set! (-> self speed-y) (- (-> self speed-y) (* 409.6 (seconds-per-frame)))) + (+! (-> self trans-y) (* (-> self speed-y) (seconds-per-frame))) (set! (-> self root trans y) (-> self trans-y)) (none) ) diff --git a/goal_src/jak2/levels/city/shuttle/shuttle.gc b/goal_src/jak2/levels/city/shuttle/shuttle.gc index d081b54a36..46e833dbd2 100644 --- a/goal_src/jak2/levels/city/shuttle/shuttle.gc +++ b/goal_src/jak2/levels/city/shuttle/shuttle.gc @@ -604,7 +604,7 @@ :frame-num (lerp-scale 0.0 2.0 (+ (* -2.0 f28-0 f28-0 f28-0) (* 3.0 f28-0 f28-0)) 0.0 1.0) ) (suspend) - (+! f28-0 (-> self clock seconds-per-frame)) + (+! f28-0 (seconds-per-frame)) ) ) (ja-channel-push! 1 (seconds 0.1)) @@ -766,7 +766,7 @@ :frame-num (lerp-scale 0.0 2.0 (+ (* -2.0 f28-0 f28-0 f28-0) (* 3.0 f28-0 f28-0)) 0.0 1.0) ) (suspend) - (+! f28-0 (-> self clock seconds-per-frame)) + (+! f28-0 (seconds-per-frame)) ) ) (ja-channel-push! 1 (seconds 0.1)) @@ -1776,6 +1776,7 @@ ) #f (label cfg-20) + ;; og:preserve-this ;; unnecessary - the task manager can take care of this (task-node-close! (game-task-node city-burning-bush-shuttle-1-resolution)) (none) diff --git a/goal_src/jak2/levels/city/slums/ctysluma-part.gc b/goal_src/jak2/levels/city/slums/ctysluma-part.gc index 3d0c1cf1bc..a41727ba81 100644 --- a/goal_src/jak2/levels/city/slums/ctysluma-part.gc +++ b/goal_src/jak2/levels/city/slums/ctysluma-part.gc @@ -626,14 +626,7 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 3718)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 3718) s3-0) ) ) (sparticle-motion-blur arg0 arg1 arg2) diff --git a/goal_src/jak2/levels/city/slums/ctyslumb-part.gc b/goal_src/jak2/levels/city/slums/ctyslumb-part.gc index fdb1f3aebc..7e38b48245 100644 --- a/goal_src/jak2/levels/city/slums/ctyslumb-part.gc +++ b/goal_src/jak2/levels/city/slums/ctyslumb-part.gc @@ -1138,14 +1138,7 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 3890)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 3890) s3-0) ) ) (sparticle-motion-blur arg0 arg1 arg2) diff --git a/goal_src/jak2/levels/city/slums/kor/kid.gc b/goal_src/jak2/levels/city/slums/kor/kid.gc index 0aea2ab6a2..ab1fc63682 100644 --- a/goal_src/jak2/levels/city/slums/kor/kid.gc +++ b/goal_src/jak2/levels/city/slums/kor/kid.gc @@ -521,7 +521,7 @@ (with-pp (let ((f30-0 (-> obj nav state speed))) (let ((f0-1 (lerp-scale 0.0 1.0 f30-0 6144.0 22528.0))) - (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (-> pp clock seconds-per-frame))) + (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (seconds-per-frame))) ) (let ((f28-0 (-> obj travel-anim-interp)) (v1-7 (if (> (-> obj skel active-channels) 0) diff --git a/goal_src/jak2/levels/city/slums/kor/kor.gc b/goal_src/jak2/levels/city/slums/kor/kor.gc index 10a013176f..d43309ddf5 100644 --- a/goal_src/jak2/levels/city/slums/kor/kor.gc +++ b/goal_src/jak2/levels/city/slums/kor/kor.gc @@ -525,7 +525,7 @@ (with-pp (let ((f30-0 (-> obj nav state speed))) (let ((f0-1 (lerp-scale 0.0 1.0 f30-0 6144.0 20889.6))) - (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (-> pp clock seconds-per-frame))) + (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (seconds-per-frame))) ) (let ((f28-0 (-> obj travel-anim-interp)) (v1-7 (if (> (-> obj skel active-channels) 0) diff --git a/goal_src/jak2/levels/city/traffic/citizen/citizen-fat.gc b/goal_src/jak2/levels/city/traffic/citizen/citizen-fat.gc index 54329d306d..9ecfda48c1 100644 --- a/goal_src/jak2/levels/city/traffic/citizen/citizen-fat.gc +++ b/goal_src/jak2/levels/city/traffic/citizen/citizen-fat.gc @@ -519,7 +519,7 @@ :frame-num (lerp-scale 0.0 2.0 (+ (* -2.0 f28-0 f28-0 f28-0) (* 3.0 f28-0 f28-0)) 0.0 1.0) ) (suspend) - (+! f28-0 (-> self clock seconds-per-frame)) + (+! f28-0 (seconds-per-frame)) ) ) (ja-channel-push! 1 (seconds 0.1)) diff --git a/goal_src/jak2/levels/city/traffic/citizen/citizen-norm.gc b/goal_src/jak2/levels/city/traffic/citizen/citizen-norm.gc index 85e70c6307..5cee19854a 100644 --- a/goal_src/jak2/levels/city/traffic/citizen/citizen-norm.gc +++ b/goal_src/jak2/levels/city/traffic/citizen/citizen-norm.gc @@ -564,7 +564,7 @@ :frame-num (lerp-scale 0.0 2.0 (+ (* -2.0 f28-0 f28-0 f28-0) (* 3.0 f28-0 f28-0)) 0.0 1.0) ) (suspend) - (+! f28-0 (-> self clock seconds-per-frame)) + (+! f28-0 (seconds-per-frame)) ) ) (ja-channel-push! 1 (seconds 0.1)) diff --git a/goal_src/jak2/levels/city/traffic/citizen/citizen.gc b/goal_src/jak2/levels/city/traffic/citizen/citizen.gc index 18de844c99..eb13cb70f5 100644 --- a/goal_src/jak2/levels/city/traffic/citizen/citizen.gc +++ b/goal_src/jak2/levels/city/traffic/citizen/citizen.gc @@ -345,31 +345,29 @@ ) (defmethod citizen-method-200 citizen ((obj citizen)) - (with-pp - (set! (-> obj root transv x) 0.0) - (set! (-> obj root transv z) 0.0) - (when (-> obj enemy-info move-to-ground) - (if (focus-test? obj under-water) - (enemy-method-47 obj (-> obj root transv)) - (+! (-> obj root transv y) (* (-> obj enemy-info movement-gravity) (-> pp clock seconds-per-frame))) - ) - ) - (let ((a2-0 (new 'stack-no-clear 'move-above-ground-params))) - (let ((v1-15 (-> obj enemy-info))) - (set! (-> a2-0 gnd-collide-with) (the-as collide-spec (-> obj gnd-collide))) - (set! (-> a2-0 popup) 8192.0) - (set! (-> a2-0 dont-move-if-overlaps?) #t) - (set! (-> a2-0 hover-if-no-ground?) (-> v1-15 hover-if-no-ground)) - (set! (-> a2-0 overlaps-params options) (overlaps-others-options oo0 oo2)) - (set! (-> a2-0 overlaps-params collide-with-filter) (-> v1-15 overlaps-others-collide-with-filter)) + (set! (-> obj root transv x) 0.0) + (set! (-> obj root transv z) 0.0) + (when (-> obj enemy-info move-to-ground) + (if (focus-test? obj under-water) + (enemy-method-47 obj (-> obj root transv)) + (+! (-> obj root transv y) (* (-> obj enemy-info movement-gravity) (seconds-per-frame))) ) - (set! (-> a2-0 overlaps-params tlist) *touching-list*) - (-> a2-0 overlaps-params) - (enemy-method-128 obj (-> obj root transv) a2-0) - ) - 0 - (none) ) + (let ((a2-0 (new 'stack-no-clear 'move-above-ground-params))) + (let ((v1-15 (-> obj enemy-info))) + (set! (-> a2-0 gnd-collide-with) (the-as collide-spec (-> obj gnd-collide))) + (set! (-> a2-0 popup) 8192.0) + (set! (-> a2-0 dont-move-if-overlaps?) #t) + (set! (-> a2-0 hover-if-no-ground?) (-> v1-15 hover-if-no-ground)) + (set! (-> a2-0 overlaps-params options) (overlaps-others-options oo0 oo2)) + (set! (-> a2-0 overlaps-params collide-with-filter) (-> v1-15 overlaps-others-collide-with-filter)) + ) + (set! (-> a2-0 overlaps-params tlist) *touching-list*) + (-> a2-0 overlaps-params) + (enemy-method-128 obj (-> obj root transv) a2-0) + ) + 0 + (none) ) (defmethod track-target! citizen ((obj citizen)) @@ -457,153 +455,125 @@ ) (defmethod enemy-method-128 citizen ((obj citizen) (arg0 vector) (arg1 move-above-ground-params)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((gp-0 (-> obj root))) + (set! (-> arg1 on-ground?) #f) + (set! (-> arg1 do-move?) #t) + (set! (-> arg1 old-gspot-pos quad) (-> gp-0 gspot-pos quad)) + (set! (-> arg1 old-gspot-normal quad) (-> gp-0 gspot-normal quad)) + (set! (-> gp-0 trans-old-old-old quad) (-> gp-0 trans-old-old quad)) + (set! (-> gp-0 trans-old-old quad) (-> gp-0 trans-old quad)) + (set! (-> gp-0 trans-old quad) (-> gp-0 trans quad)) + (set! (-> gp-0 prev-status) (-> gp-0 status)) + (vector-v+! (-> gp-0 trans) (-> gp-0 trans) arg0) + (set! (-> arg1 new-pos quad) (-> gp-0 trans quad)) + (when (= (-> obj controller traffic sync-mask-8) (ash 1 (logand (-> obj traffic-id) 7))) + (let ((s2-0 (new 'stack-no-clear 'collide-query))) + (logclear! (-> gp-0 status) (collide-status on-ground)) + (let* ((a0-14 obj) + (t9-1 (method-of-object a0-14 enemy-above-ground?)) + (a1-2 s2-0) + (a2-2 (new 'stack-no-clear 'vector)) + ) + (let ((v1-14 (-> gp-0 trans))) + (let ((a3-0 (-> gp-0 transv))) + (let ((t0-1 0.15)) + (.mov vf7 t0-1) + ) + (.lvf vf5 (&-> a3-0 quad)) + ) + (.lvf vf4 (&-> v1-14 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a2-2 quad) vf6) + (when (t9-1 a0-14 a1-2 a2-2 (-> arg1 gnd-collide-with) 16384.0 81920.0 1024.0) + (set! (-> gp-0 gspot-pos quad) (-> gp-0 trans quad)) + (set! (-> gp-0 gspot-pos y) (-> s2-0 best-other-tri intersect y)) + (set! (-> gp-0 gspot-normal quad) (-> s2-0 best-other-tri normal quad)) + (logior! (-> gp-0 status) (collide-status on-ground)) + (set! (-> gp-0 ground-pat) (-> s2-0 best-other-tri pat)) + ) + ) + ) + (set! (-> obj gnd-height) (-> gp-0 gspot-pos y)) + (set! (-> gp-0 gspot-pos y) (-> arg1 old-gspot-pos y)) + ) + (let ((f0-5 (- (-> obj gnd-height) (-> gp-0 gspot-pos y)))) + (cond + ((< 0.0 f0-5) + (+! (-> gp-0 gspot-pos y) (* 10.0 (seconds-per-frame) f0-5)) ) - (init-vf0-vector) - (let ((gp-0 (-> obj root))) - (set! (-> arg1 on-ground?) #f) - (set! (-> arg1 do-move?) #t) - (set! (-> arg1 old-gspot-pos quad) (-> gp-0 gspot-pos quad)) - (set! (-> arg1 old-gspot-normal quad) (-> gp-0 gspot-normal quad)) - (set! (-> gp-0 trans-old-old-old quad) (-> gp-0 trans-old-old quad)) - (set! (-> gp-0 trans-old-old quad) (-> gp-0 trans-old quad)) - (set! (-> gp-0 trans-old quad) (-> gp-0 trans quad)) - (set! (-> gp-0 prev-status) (-> gp-0 status)) - (vector-v+! (-> gp-0 trans) (-> gp-0 trans) arg0) - (set! (-> arg1 new-pos quad) (-> gp-0 trans quad)) - (when (= (-> obj controller traffic sync-mask-8) (ash 1 (logand (-> obj traffic-id) 7))) - (let ((s2-0 (new 'stack-no-clear 'collide-query))) - (logclear! (-> gp-0 status) (collide-status on-ground)) - (let* ((a0-14 obj) - (t9-1 (method-of-object a0-14 enemy-above-ground?)) - (a1-2 s2-0) - (a2-2 (new 'stack-no-clear 'vector)) - ) - (let ((v1-14 (-> gp-0 trans))) - (let ((a3-0 (-> gp-0 transv))) - (let ((t0-1 0.15)) - (.mov vf7 t0-1) - ) - (.lvf vf5 (&-> a3-0 quad)) - ) - (.lvf vf4 (&-> v1-14 quad)) + (else + (+! (-> gp-0 gspot-pos y) (* 10.0 (seconds-per-frame) f0-5)) + (if (< (-> gp-0 gspot-pos y) (-> obj gnd-height)) + (set! (-> gp-0 gspot-pos y) (-> obj gnd-height)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a2-2 quad) vf6) - (when (t9-1 a0-14 a1-2 a2-2 (-> arg1 gnd-collide-with) 16384.0 81920.0 1024.0) - (set! (-> gp-0 gspot-pos quad) (-> gp-0 trans quad)) - (set! (-> gp-0 gspot-pos y) (-> s2-0 best-other-tri intersect y)) - (set! (-> gp-0 gspot-normal quad) (-> s2-0 best-other-tri normal quad)) - (logior! (-> gp-0 status) (collide-status on-ground)) - (set! (-> gp-0 ground-pat) (-> s2-0 best-other-tri pat)) - ) - ) - ) - (set! (-> obj gnd-height) (-> gp-0 gspot-pos y)) - (set! (-> gp-0 gspot-pos y) (-> arg1 old-gspot-pos y)) - ) - (let ((f0-5 (- (-> obj gnd-height) (-> gp-0 gspot-pos y)))) - (cond - ((< 0.0 f0-5) - (+! (-> gp-0 gspot-pos y) (* 10.0 (-> pp clock seconds-per-frame) f0-5)) - ) - (else - (+! (-> gp-0 gspot-pos y) (* 10.0 (-> pp clock seconds-per-frame) f0-5)) - (if (< (-> gp-0 gspot-pos y) (-> obj gnd-height)) - (set! (-> gp-0 gspot-pos y) (-> obj gnd-height)) - ) - ) - ) - ) - (set! (-> arg1 on-ground?) #t) - (set! (-> arg1 pat) (-> gp-0 ground-pat)) - (when (>= (-> gp-0 gspot-pos y) (-> arg1 new-pos y)) - (set! (-> arg1 new-pos y) (-> gp-0 gspot-pos y)) - (set! (-> gp-0 ground-impact-vel) (- (vector-dot arg0 (-> gp-0 dynam gravity-normal)))) - (set! (-> arg0 y) 0.0) - ) - (set! (-> gp-0 trans quad) (-> arg1 new-pos quad)) - (when (-> arg1 do-move?) - (cond - ((-> arg1 on-ground?) - (let ((a1-3 (-> gp-0 gspot-pos)) - (a0-22 (-> gp-0 gspot-normal)) - (v1-41 (-> arg1 pat)) - ) - (set! (-> gp-0 grount-touch-point quad) (-> a1-3 quad)) - (set! (-> gp-0 poly-normal quad) (-> a0-22 quad)) - (set! (-> gp-0 surface-normal quad) (-> a0-22 quad)) - (set! (-> gp-0 local-normal quad) (-> a0-22 quad)) - (set! (-> gp-0 ground-poly-normal quad) (-> a0-22 quad)) - (set! (-> gp-0 poly-pat) v1-41) - (set! (-> gp-0 cur-pat) v1-41) - (set! (-> gp-0 ground-pat) v1-41) - ) - (logior! (-> gp-0 status) (collide-status on-surface on-ground touch-surface)) - ) - (else - (logclear! (-> gp-0 status) (collide-status - on-surface - on-ground - touch-surface - touch-wall - touch-ceiling - touch-actor - on-special-surface - touch-edge - blocked - on-water - impact-surface - touch-background - stuck - glance - ) - ) - (when (not (logtest? (-> gp-0 root-prim prim-core action) (collide-action no-normal-reset))) - (let ((v1-51 (-> gp-0 dynam gravity-normal))) - (set! (-> gp-0 local-normal quad) (-> v1-51 quad)) - (set! (-> gp-0 surface-normal quad) (-> v1-51 quad)) - (set! (-> gp-0 poly-normal quad) (-> v1-51 quad)) - ) - (set! (-> gp-0 coverage) 0.0) - (set! (-> gp-0 touch-angle) 0.0) - ) - ) ) ) ) - 0 - (none) - ) - ) - ) - -(defmethod nav-enemy-method-142 citizen ((obj citizen) (arg0 nav-control)) - (with-pp - (let ((s3-0 (new 'stack-no-clear 'vector))) - (let ((a1-1 (-> arg0 state))) - (set! (-> s3-0 quad) (-> a1-1 heading quad)) + (set! (-> arg1 on-ground?) #t) + (set! (-> arg1 pat) (-> gp-0 ground-pat)) + (when (>= (-> gp-0 gspot-pos y) (-> arg1 new-pos y)) + (set! (-> arg1 new-pos y) (-> gp-0 gspot-pos y)) + (set! (-> gp-0 ground-impact-vel) (- (vector-dot arg0 (-> gp-0 dynam gravity-normal)))) + (set! (-> arg0 y) 0.0) ) - (set! (-> s3-0 y) 0.0) - (vector-normalize! s3-0 1.0) - (let ((gp-0 (new 'stack-no-clear 'quaternion)) - (s5-1 (-> obj root quat)) + (set! (-> gp-0 trans quad) (-> arg1 new-pos quad)) + (when (-> arg1 do-move?) + (cond + ((-> arg1 on-ground?) + (let ((a1-3 (-> gp-0 gspot-pos)) + (a0-22 (-> gp-0 gspot-normal)) + (v1-41 (-> arg1 pat)) + ) + (set! (-> gp-0 grount-touch-point quad) (-> a1-3 quad)) + (set! (-> gp-0 poly-normal quad) (-> a0-22 quad)) + (set! (-> gp-0 surface-normal quad) (-> a0-22 quad)) + (set! (-> gp-0 local-normal quad) (-> a0-22 quad)) + (set! (-> gp-0 ground-poly-normal quad) (-> a0-22 quad)) + (set! (-> gp-0 poly-pat) v1-41) + (set! (-> gp-0 cur-pat) v1-41) + (set! (-> gp-0 ground-pat) v1-41) + ) + (logior! (-> gp-0 status) (collide-status on-surface on-ground touch-surface)) + ) + (else + (logclear! (-> gp-0 status) (collide-status + on-surface + on-ground + touch-surface + touch-wall + touch-ceiling + touch-actor + on-special-surface + touch-edge + blocked + on-water + impact-surface + touch-background + stuck + glance + ) + ) + (when (not (logtest? (-> gp-0 root-prim prim-core action) (collide-action no-normal-reset))) + (let ((v1-51 (-> gp-0 dynam gravity-normal))) + (set! (-> gp-0 local-normal quad) (-> v1-51 quad)) + (set! (-> gp-0 surface-normal quad) (-> v1-51 quad)) + (set! (-> gp-0 poly-normal quad) (-> v1-51 quad)) + ) + (set! (-> gp-0 coverage) 0.0) + (set! (-> gp-0 touch-angle) 0.0) + ) ) - ;; modified for PC, see comment near definition in collide-shape-h.gc - (normalized-heading-to-quaternion! gp-0 s3-0) - (quaternion-pseudo-seek - s5-1 - s5-1 - gp-0 - (* (fmax 0.5 (* 0.00024414062 (-> arg0 state speed))) (-> pp clock seconds-per-frame)) ) ) ) @@ -612,6 +582,30 @@ ) ) +(defmethod nav-enemy-method-142 citizen ((obj citizen) (arg0 nav-control)) + (let ((s3-0 (new 'stack-no-clear 'vector))) + (let ((a1-1 (-> arg0 state))) + (set! (-> s3-0 quad) (-> a1-1 heading quad)) + ) + (set! (-> s3-0 y) 0.0) + (vector-normalize! s3-0 1.0) + (let ((gp-0 (new 'stack-no-clear 'quaternion)) + (s5-1 (-> obj root quat)) + ) + ;; og:preserve-this modified for PC, see comment near definition in collide-shape-h.gc + (normalized-heading-to-quaternion! gp-0 s3-0) + (quaternion-pseudo-seek + s5-1 + s5-1 + gp-0 + (* (fmax 0.5 (* 0.00024414062 (-> arg0 state speed))) (seconds-per-frame)) + ) + ) + ) + 0 + (none) + ) + (defmethod nav-enemy-method-176 citizen ((obj citizen)) (nav-enemy-method-177 obj) (let ((a0-2 obj)) @@ -776,7 +770,7 @@ This commonly includes things such as: ) ) ) - (seek! (-> self interp) f28-0 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> self interp) f28-0 (* 4.0 (seconds-per-frame))) (let ((v1-76 (-> self skel root-channel 1)) (f0-21 (-> self interp)) ) @@ -1480,7 +1474,7 @@ This commonly includes things such as: ) (when (>= (- (current-time) (-> self state-time)) (-> self wait-time)) (let ((f0-2 (-> self nav state speed))) - (set! (-> self nav target-speed) (seek f0-2 0.0 (* 12288.0 (-> self clock seconds-per-frame)))) + (set! (-> self nav target-speed) (seek f0-2 0.0 (* 12288.0 (seconds-per-frame)))) ) 0 (when (= (-> self nav state speed) 0.0) @@ -1579,7 +1573,7 @@ This commonly includes things such as: (let ((a1-1 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> self root quat))) (gp-0 (new 'stack-no-clear 'quaternion)) ) - (quaternion-from-two-vectors-max-angle! gp-0 a1-1 *up-vector* (* 7281.778 (-> self clock seconds-per-frame))) + (quaternion-from-two-vectors-max-angle! gp-0 a1-1 *up-vector* (* 7281.778 (seconds-per-frame))) (quaternion*! (-> self root quat) gp-0 (-> self root quat)) ) (let ((t9-3 (-> (method-of-type nav-enemy knocked) trans))) diff --git a/goal_src/jak2/levels/city/traffic/citizen/civilian.gc b/goal_src/jak2/levels/city/traffic/citizen/civilian.gc index 7a19d5e987..2e1ac39f1d 100644 --- a/goal_src/jak2/levels/city/traffic/citizen/civilian.gc +++ b/goal_src/jak2/levels/city/traffic/citizen/civilian.gc @@ -150,6 +150,7 @@ (defmethod damage-amount-from-attack civilian ((obj civilian) (arg0 process) (arg1 event-message-block)) "@returns the amount of damage taken from an attack. This can come straight off the [[attack-info]] or via [[penetrate-using->damage]]" (cond + ;; og:preserve-this constant ((= (scf-get-territory) GAME_TERRITORY_SCEI) (let ((a1-1 (-> arg1 param 1)) (a0-1 arg0) @@ -395,7 +396,7 @@ (dotimes (s0-0 s2-0) (+! f30-0 (civilian-method-214 obj (-> s3-0 branch-array s0-0) (+ arg1 -1) arg2 s1-0)) ) - ;; changed to fix a divide by zero crash + ;; og:preserve-this changed to fix a divide by zero crash (set! arg3 (+ s1-0 (the float (/-0-guard (the int f30-0) s2-0)))) ) ) @@ -1845,7 +1846,7 @@ :frame-num (lerp-scale 0.0 1.0 (+ (* -2.0 f30-0 f30-0 f30-0) (* 3.0 f30-0 f30-0)) 0.0 1.0) ) (suspend) - (+! f30-0 (* 3.0 (-> self clock seconds-per-frame))) + (+! f30-0 (* 3.0 (seconds-per-frame))) ) ) (let ((gp-2 (new 'stack-no-clear 'vector))) diff --git a/goal_src/jak2/levels/city/traffic/citizen/guard.gc b/goal_src/jak2/levels/city/traffic/citizen/guard.gc index 941f92ab96..500fd3acde 100644 --- a/goal_src/jak2/levels/city/traffic/citizen/guard.gc +++ b/goal_src/jak2/levels/city/traffic/citizen/guard.gc @@ -333,142 +333,133 @@ (sv-304 vector) (sv-320 vector) ) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (set! sv-240 arg0) - (let ((s0-0 (new 'stack-no-clear 'vector))) - (let ((v1-1 (-> obj root trans))) - (let ((a0-1 *y-vector*)) - (let ((a1-2 8192.0)) - (.mov vf7 a1-2) - ) - (.lvf vf5 (&-> a0-1 quad)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (set! sv-240 arg0) + (let ((s0-0 (new 'stack-no-clear 'vector))) + (let ((v1-1 (-> obj root trans))) + (let ((a0-1 *y-vector*)) + (let ((a1-2 8192.0)) + (.mov vf7 a1-2) ) - (.lvf vf4 (&-> v1-1 quad)) + (.lvf vf5 (&-> a0-1 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> s0-0 quad) vf6) - (set! sv-320 (new 'stack-no-clear 'vector)) - (set! sv-304 (new 'stack-no-clear 'vector)) - (let ((s1-0 (new 'stack-no-clear 'vector)) - (s2-0 (new 'stack-no-clear 'vector)) - (s5-0 (new 'stack-no-clear 'vector)) + (.lvf vf4 (&-> v1-1 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> s0-0 quad) vf6) + (set! sv-320 (new 'stack-no-clear 'vector)) + (set! sv-304 (new 'stack-no-clear 'vector)) + (let ((s1-0 (new 'stack-no-clear 'vector)) + (s2-0 (new 'stack-no-clear 'vector)) + (s5-0 (new 'stack-no-clear 'vector)) + ) + (-> obj node-list data 4 bone transform) + (let ((s4-0 (vector-x-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) + (s3-0 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) ) - (-> obj node-list data 4 bone transform) - (let ((s4-0 (vector-x-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) - (s3-0 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) - ) - (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)) - (set! (-> s0-0 quad) (-> obj root trans quad)) - (cond - ((logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) - (let ((a1-6 s0-0)) - (let ((v1-14 s0-0)) - (let ((a0-9 s4-0)) - (let ((a2-1 4096.0)) - (.mov vf7 a2-1) - ) - (.lvf vf5 (&-> a0-9 quad)) + (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)) + (set! (-> s0-0 quad) (-> obj root trans quad)) + (cond + ((logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) + (let ((a1-6 s0-0)) + (let ((v1-14 s0-0)) + (let ((a0-9 s4-0)) + (let ((a2-1 4096.0)) + (.mov vf7 a2-1) ) - (.lvf vf4 (&-> v1-14 quad)) + (.lvf vf5 (&-> a0-9 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-6 quad) vf6) + (.lvf vf4 (&-> v1-14 quad)) ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-6 quad) vf6) ) - (else - (let ((a1-7 s0-0)) - (let ((v1-15 s0-0)) - (let ((a0-10 s4-0)) - (let ((a2-3 2048.0)) - (.mov vf7 a2-3) - ) - (.lvf vf5 (&-> a0-10 quad)) + ) + (else + (let ((a1-7 s0-0)) + (let ((v1-15 s0-0)) + (let ((a0-10 s4-0)) + (let ((a2-3 2048.0)) + (.mov vf7 a2-3) ) - (.lvf vf4 (&-> v1-15 quad)) + (.lvf vf5 (&-> a0-10 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-7 quad) vf6) + (.lvf vf4 (&-> v1-15 quad)) ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-7 quad) vf6) ) ) - (let ((a1-8 s0-0)) - (let ((v1-16 s0-0)) - (let ((a0-11 s3-0)) - (let ((a2-5 8540.16)) - (.mov vf7 a2-5) - ) - (.lvf vf5 (&-> a0-11 quad)) + ) + (let ((a1-8 s0-0)) + (let ((v1-16 s0-0)) + (let ((a0-11 s3-0)) + (let ((a2-5 8540.16)) + (.mov vf7 a2-5) ) - (.lvf vf4 (&-> v1-16 quad)) + (.lvf vf5 (&-> a0-11 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-8 quad) vf6) + (.lvf vf4 (&-> v1-16 quad)) ) - (vector-normalize! (vector-! sv-320 sv-240 s0-0) 1.0) - (set! sv-288 (new 'stack-no-clear 'vector)) - (let ((v1-20 (-> sv-240 quad))) - (set! (-> sv-288 quad) v1-20) - ) - (set! sv-256 vector-rotate90-around-y!) - (set! sv-272 (new 'stack-no-clear 'vector)) - (let* ((a1-13 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) sv-288 s0-0) -2998.272)) - (v0-5 (sv-256 sv-272 a1-13)) - ) - (vector+! sv-288 sv-288 v0-5) - ) - (vector-normalize! (vector-! sv-320 sv-288 s0-0) 1.0) - (vector-z-quaternion! sv-304 (-> obj root quat)) - (rot-zxy-from-vector! s2-0 sv-304) - (rot-zxy-from-vector! s1-0 sv-320) - (set! (-> s5-0 x) (fmax -14563.556 (fmin 14563.556 (deg- (-> s1-0 x) (-> s2-0 x))))) - (set! (-> s5-0 y) (fmax -14563.556 (fmin 14563.556 (deg- (-> s1-0 y) (-> s2-0 y))))) - (set! (-> s5-0 z) 0.0) - (let ((s2-1 (new 'stack-no-clear 'quaternion))) - (let ((s1-1 (new 'stack-no-clear 'quaternion))) - (quaternion-vector-angle! s2-1 s4-0 (-> s5-0 x)) - (quaternion-vector-angle! s1-1 s3-0 (-> s5-0 y)) - (quaternion*! s2-1 s1-1 s2-1) - ) - (quaternion-pseudo-seek (-> obj joint quat) (-> obj joint quat) s2-1 (-> pp clock seconds-per-frame)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-8 quad) vf6) + ) + (vector-normalize! (vector-! sv-320 sv-240 s0-0) 1.0) + (set! sv-288 (new 'stack-no-clear 'vector)) + (let ((v1-20 (-> sv-240 quad))) + (set! (-> sv-288 quad) v1-20) + ) + (set! sv-256 vector-rotate90-around-y!) + (set! sv-272 (new 'stack-no-clear 'vector)) + (let* ((a1-13 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) sv-288 s0-0) -2998.272)) + (v0-5 (sv-256 sv-272 a1-13)) + ) + (vector+! sv-288 sv-288 v0-5) + ) + (vector-normalize! (vector-! sv-320 sv-288 s0-0) 1.0) + (vector-z-quaternion! sv-304 (-> obj root quat)) + (rot-zxy-from-vector! s2-0 sv-304) + (rot-zxy-from-vector! s1-0 sv-320) + (set! (-> s5-0 x) (fmax -14563.556 (fmin 14563.556 (deg- (-> s1-0 x) (-> s2-0 x))))) + (set! (-> s5-0 y) (fmax -14563.556 (fmin 14563.556 (deg- (-> s1-0 y) (-> s2-0 y))))) + (set! (-> s5-0 z) 0.0) + (let ((s2-1 (new 'stack-no-clear 'quaternion))) + (let ((s1-1 (new 'stack-no-clear 'quaternion))) + (quaternion-vector-angle! s2-1 s4-0 (-> s5-0 x)) + (quaternion-vector-angle! s1-1 s3-0 (-> s5-0 y)) + (quaternion*! s2-1 s1-1 s2-1) ) + (quaternion-pseudo-seek (-> obj joint quat) (-> obj joint quat) s2-1 (seconds-per-frame)) ) ) ) - 0 - (none) - ) - ) - ) - -(defmethod crimson-guard-method-219 crimson-guard ((obj crimson-guard)) - (with-pp - (quaternion-pseudo-seek - (-> obj joint quat) - (-> obj joint quat) - *unity-quaternion* - (-> pp clock seconds-per-frame) ) 0 (none) ) ) +(defmethod crimson-guard-method-219 crimson-guard ((obj crimson-guard)) + (quaternion-pseudo-seek (-> obj joint quat) (-> obj joint quat) *unity-quaternion* (seconds-per-frame)) + 0 + (none) + ) + (define *guard-min-id-hack* 255) (defmethod track-target! crimson-guard ((obj crimson-guard)) @@ -3249,11 +3240,7 @@ :frame-num 0.0 ) (until (ja-done? 0) - (quaternion-rotate-local-y! - (-> self root quat) - (-> self root quat) - (* f30-0 (-> self clock seconds-per-frame)) - ) + (quaternion-rotate-local-y! (-> self root quat) (-> self root quat) (* f30-0 (seconds-per-frame))) (suspend) (ja :num! (seek!)) ) @@ -3264,11 +3251,7 @@ :frame-num (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 25)) frames num-frames) -1)) ) (until (ja-done? 0) - (quaternion-rotate-local-y! - (-> self root quat) - (-> self root quat) - (* f30-0 (-> self clock seconds-per-frame)) - ) + (quaternion-rotate-local-y! (-> self root quat) (-> self root quat) (* f30-0 (seconds-per-frame))) (suspend) (ja :num! (seek! 0.0)) ) @@ -3514,6 +3497,7 @@ (f4-0 (-> v1-18 y)) (f5-0 (-> v1-18 z)) ) + ;; og:preserve-this inlined vector-dot ; (.mula.s f0-7 f3-2) ; (.madda.s f1-4 f4-0) ; (.madd.s f0-8 f2-2 f5-0) diff --git a/goal_src/jak2/levels/city/traffic/citizen/metalhead-flitter.gc b/goal_src/jak2/levels/city/traffic/citizen/metalhead-flitter.gc index d1b62c8707..96309efd77 100644 --- a/goal_src/jak2/levels/city/traffic/citizen/metalhead-flitter.gc +++ b/goal_src/jak2/levels/city/traffic/citizen/metalhead-flitter.gc @@ -871,7 +871,7 @@ ) (until (ja-done? 0) (suspend) - (set! f30-0 (seek f30-0 (metalhead-flitter-method-209 self) (* 0.2 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 (metalhead-flitter-method-209 self) (* 0.2 (seconds-per-frame)))) (ja :num! (seek! max 0.8)) (let ((a0-7 (-> self skel root-channel 1))) (set! (-> a0-7 frame-interp 1) f30-0) diff --git a/goal_src/jak2/levels/city/traffic/citizen/metalhead-predator.gc b/goal_src/jak2/levels/city/traffic/citizen/metalhead-predator.gc index 9d6964231e..f52c9e5f2b 100644 --- a/goal_src/jak2/levels/city/traffic/citizen/metalhead-predator.gc +++ b/goal_src/jak2/levels/city/traffic/citizen/metalhead-predator.gc @@ -331,59 +331,57 @@ ) (defmethod metalhead-predator-method-208 metalhead-predator ((obj metalhead-predator)) - (with-pp - (cond - ((< (-> obj hit-points) 2) - (when (!= (-> obj dest-fade) 128.0) - (sound-play "pred-uncloak") - (set! (-> obj sound) (the-as ambient-sound 0)) - 0 - ) - (set! (-> obj dest-fade) 128.0) + (cond + ((< (-> obj hit-points) 2) + (when (!= (-> obj dest-fade) 128.0) + (sound-play "pred-uncloak") + (set! (-> obj sound) (the-as ambient-sound 0)) + 0 ) - (else - (set! (-> obj dest-fade) 0.0) - ) + (set! (-> obj dest-fade) 128.0) + ) + (else + (set! (-> obj dest-fade) 0.0) ) - (seek! (-> obj fade) (-> obj dest-fade) (* 60.0 (-> pp clock seconds-per-frame))) - (set! (-> obj draw force-fade) (the-as uint (the int (-> obj fade)))) - (cond - ((zero? (-> obj draw force-fade)) - (setup-masks (-> obj draw) 8 0) - (setup-masks (-> obj draw) 0 4) - (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) - ) - ((= (-> obj draw force-fade) 128) - (setup-masks (-> obj draw) 0 8) - (setup-masks (-> obj draw) 4 0) - (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) - ) - (else - (setup-masks (-> obj draw) 8 0) - (setup-masks (-> obj draw) 4 0) - (logior! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) - ) - ) - (if (< 245760.0 (vector-vector-distance (-> obj root trans) (camera-pos))) - (setup-masks (-> obj draw) 0 8) - ) - (when (< (current-time) (-> obj shock-effect-end)) - (when (>= (- (current-time) (-> obj shock-effect-time)) (seconds 0.04)) - (set! (-> obj shock-effect-time) (current-time)) - (process-drawable-shock-skel-effect - obj - (-> *lightning-spec-id-table* 15) - lightning-probe-callback - (-> *part-id-table* 166) - 2048.0 - -1 - -1 - ) - ) - ) - 0 - (none) ) + (seek! (-> obj fade) (-> obj dest-fade) (* 60.0 (seconds-per-frame))) + (set! (-> obj draw force-fade) (the-as uint (the int (-> obj fade)))) + (cond + ((zero? (-> obj draw force-fade)) + (setup-masks (-> obj draw) 8 0) + (setup-masks (-> obj draw) 0 4) + (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) + ) + ((= (-> obj draw force-fade) 128) + (setup-masks (-> obj draw) 0 8) + (setup-masks (-> obj draw) 4 0) + (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) + ) + (else + (setup-masks (-> obj draw) 8 0) + (setup-masks (-> obj draw) 4 0) + (logior! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) + ) + ) + (if (< 245760.0 (vector-vector-distance (-> obj root trans) (camera-pos))) + (setup-masks (-> obj draw) 0 8) + ) + (when (< (current-time) (-> obj shock-effect-end)) + (when (>= (- (current-time) (-> obj shock-effect-time)) (seconds 0.04)) + (set! (-> obj shock-effect-time) (current-time)) + (process-drawable-shock-skel-effect + obj + (-> *lightning-spec-id-table* 15) + lightning-probe-callback + (-> *part-id-table* 166) + 2048.0 + -1 + -1 + ) + ) + ) + 0 + (none) ) (defmethod track-target! metalhead-predator ((obj metalhead-predator)) diff --git a/goal_src/jak2/levels/city/traffic/traffic-engine.gc b/goal_src/jak2/levels/city/traffic/traffic-engine.gc index 7e2dc7dd8f..5e5cdc9a72 100644 --- a/goal_src/jak2/levels/city/traffic/traffic-engine.gc +++ b/goal_src/jak2/levels/city/traffic/traffic-engine.gc @@ -1280,167 +1280,165 @@ Process is recycled and moved to reserved, if it deactivates." (defmethod update-danger-from-target traffic-engine ((obj traffic-engine)) "make people run away from jak when he is dangerous." (local-vars (v1-20 float) (v1-32 float)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (let ((s5-0 *target*)) - (when s5-0 - (let ((v1-1 (-> obj danger-sphere-array))) - (set! (-> v1-1 0 handle) (process->handle s5-0)) - (let ((a0-4 (-> s5-0 focus-status)) - (notify-radius 0.0) - (danger-radius 0.0) - (decay-rate 1.0) - (danger-level 0.0) - ) - (cond - ((logtest? (focus-status mech dark shooting) a0-4) - (set! notify-radius 245760.0) - (set! danger-radius 163840.0) - (set! danger-level 1.0) - (set! decay-rate 0.0) - ) - ((logtest? (focus-status gun) a0-4) - (set! notify-radius 102400.0) - (set! danger-radius 61440.0) - (set! danger-level 0.5) - (set! decay-rate 0.5) - ) - ((logtest? (focus-status board pilot) a0-4) - (set! notify-radius 40960.0) - (set! danger-radius 24576.0) - (set! danger-level 0.5) - ) - ((logtest? a0-4 (focus-status dangerous)) - (set! notify-radius 61440.0) - (set! danger-radius 40960.0) - (set! decay-rate 0.0) - (set! danger-level 0.5) - ) - (else - (set! decay-rate 1.5) - ) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 *target*)) + (when s5-0 + (let ((v1-1 (-> obj danger-sphere-array))) + (set! (-> v1-1 0 handle) (process->handle s5-0)) + (let ((a0-4 (-> s5-0 focus-status)) + (notify-radius 0.0) + (danger-radius 0.0) + (decay-rate 1.0) + (danger-level 0.0) ) - (set! (-> v1-1 0 decay-rate) (* 0.1 decay-rate)) - (when (< (-> v1-1 0 danger-level) danger-level) - (set! (-> v1-1 0 danger-level) danger-level) - (set! (-> v1-1 0 sphere r) danger-radius) - (set! (-> v1-1 0 notify-radius) notify-radius) + (cond + ((logtest? (focus-status mech dark shooting) a0-4) + (set! notify-radius 245760.0) + (set! danger-radius 163840.0) + (set! danger-level 1.0) + (set! decay-rate 0.0) + ) + ((logtest? (focus-status gun) a0-4) + (set! notify-radius 102400.0) + (set! danger-radius 61440.0) + (set! danger-level 0.5) + (set! decay-rate 0.5) + ) + ((logtest? (focus-status board pilot) a0-4) + (set! notify-radius 40960.0) + (set! danger-radius 24576.0) + (set! danger-level 0.5) + ) + ((logtest? a0-4 (focus-status dangerous)) + (set! notify-radius 61440.0) + (set! danger-radius 40960.0) + (set! decay-rate 0.0) + (set! danger-level 0.5) + ) + (else + (set! decay-rate 1.5) ) ) - (let ((f0-1 (-> v1-1 0 sphere r))) - (set! (-> v1-1 0 sphere quad) (-> s5-0 control trans quad)) - (set! (-> v1-1 0 sphere r) f0-1) - ) - (set! (-> v1-1 0 velocity quad) (-> s5-0 control transv quad)) - (let ((f0-3 (- (-> v1-1 0 danger-level) (* (-> v1-1 0 decay-rate) (-> pp clock seconds-per-frame))))) - (set! (-> v1-1 0 danger-level) (fmax 0.0 f0-3)) + (set! (-> v1-1 0 decay-rate) (* 0.1 decay-rate)) + (when (< (-> v1-1 0 danger-level) danger-level) + (set! (-> v1-1 0 danger-level) danger-level) + (set! (-> v1-1 0 sphere r) danger-radius) + (set! (-> v1-1 0 notify-radius) notify-radius) ) ) - (let ((s3-0 (-> s5-0 focus-status)) - (f30-0 0.0) - (s4-0 (new 'stack-no-clear 'inline-array 'traffic-suppression-box 2)) - ) - (set! (-> s4-0 0 bbox max quad) (-> s5-0 control transv quad)) - (vector-z-quaternion! (the-as vector (-> s4-0 1)) (get-quat s5-0 3)) - (set! (-> s4-0 1 data 16) (the-as uint 3)) - (cond - ((logtest? (focus-status shooting) s3-0) - (vector-float*! (the-as vector (-> s4-0 0)) (the-as vector (-> s4-0 1)) 409600.0) - (set! f30-0 4096.0) - (set! (-> s4-0 1 data 16) (the-as uint 0)) - 0 - ) - ((and (logtest? (focus-status gun) s3-0) - (not (and (logtest? (focus-status pilot) s3-0) (let* ((v1-19 (-> s4-0 0 bbox max)) - (f0-6 40960.0) - (f0-8 (* f0-6 f0-6)) - ) - (.lvf vf1 (&-> v1-19 quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-20 vf1) - (< f0-8 v1-20) - ) - ) - ) - ) - (vector-float*! (the-as vector (-> s4-0 0)) (the-as vector (-> s4-0 1)) 163840.0) - (set! f30-0 8192.0) - (set! (-> s4-0 1 data 16) (the-as uint 1)) - ) - ((logtest? (focus-status dangerous board pilot) s3-0) - (vector-float*! (the-as vector (-> s4-0 0)) (-> s4-0 0 bbox max) 2.0) - (let* ((v1-31 (-> s4-0 0)) - (f0-11 20480.0) - (f0-13 (* f0-11 f0-11)) - ) - (.lvf vf1 (&-> v1-31 bbox min quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-32 vf1) - (if (< f0-13 v1-32) - (set! f30-0 20480.0) - ) - ) - (set! (-> s4-0 1 data 16) (the-as uint (cond - ((logtest? (focus-status pilot) s3-0) - 3 - ) - ((logtest? (focus-status board) s3-0) - 2 - ) - ((logtest? s3-0 (focus-status dangerous)) - 4 - ) - (else - 5 - ) - ) - ) - ) - ) + (let ((f0-1 (-> v1-1 0 sphere r))) + (set! (-> v1-1 0 sphere quad) (-> s5-0 control trans quad)) + (set! (-> v1-1 0 sphere r) f0-1) + ) + (set! (-> v1-1 0 velocity quad) (-> s5-0 control transv quad)) + (let ((f0-3 (- (-> v1-1 0 danger-level) (* (-> v1-1 0 decay-rate) (seconds-per-frame))))) + (set! (-> v1-1 0 danger-level) (fmax 0.0 f0-3)) + ) + ) + (let ((s3-0 (-> s5-0 focus-status)) + (f30-0 0.0) + (s4-0 (new 'stack-no-clear 'inline-array 'traffic-suppression-box 2)) ) - (when (< 0.0 f30-0) - (let ((s3-1 (new 'stack-no-clear 'array 'collide-shape 40)) - (s2-1 (new 'stack 'traffic-danger-info)) - ) - (set! (-> s2-1 sphere quad) (-> s5-0 control trans quad)) - (set! (-> s2-1 danger-type) (the-as traffic-danger-type (-> s4-0 1 data 16))) - (set! (-> s2-1 sphere r) f30-0) - (set! (-> s2-1 velocity quad) (-> s4-0 0 bbox min quad)) - (let ((gp-1 (fill-actor-list-for-line-sphere - (-> obj object-hash) - (-> s2-1 sphere) - (-> s2-1 velocity) - (-> s2-1 sphere r) - s3-1 - 40 - -1 - ) + (set! (-> s4-0 0 bbox max quad) (-> s5-0 control transv quad)) + (vector-z-quaternion! (the-as vector (-> s4-0 1)) (get-quat s5-0 3)) + (set! (-> s4-0 1 data 16) (the-as uint 3)) + (cond + ((logtest? (focus-status shooting) s3-0) + (vector-float*! (the-as vector (-> s4-0 0)) (the-as vector (-> s4-0 1)) 409600.0) + (set! f30-0 4096.0) + (set! (-> s4-0 1 data 16) (the-as uint 0)) + 0 + ) + ((and (logtest? (focus-status gun) s3-0) + (not (and (logtest? (focus-status pilot) s3-0) (let* ((v1-19 (-> s4-0 0 bbox max)) + (f0-6 40960.0) + (f0-8 (* f0-6 f0-6)) + ) + (.lvf vf1 (&-> v1-19 quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-20 vf1) + (< f0-8 v1-20) + ) + ) + ) + ) + (vector-float*! (the-as vector (-> s4-0 0)) (the-as vector (-> s4-0 1)) 163840.0) + (set! f30-0 8192.0) + (set! (-> s4-0 1 data 16) (the-as uint 1)) + ) + ((logtest? (focus-status dangerous board pilot) s3-0) + (vector-float*! (the-as vector (-> s4-0 0)) (-> s4-0 0 bbox max) 2.0) + (let* ((v1-31 (-> s4-0 0)) + (f0-11 20480.0) + (f0-13 (* f0-11 f0-11)) + ) + (.lvf vf1 (&-> v1-31 bbox min quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-32 vf1) + (if (< f0-13 v1-32) + (set! f30-0 20480.0) + ) + ) + (set! (-> s4-0 1 data 16) (the-as uint (cond + ((logtest? (focus-status pilot) s3-0) + 3 + ) + ((logtest? (focus-status board) s3-0) + 2 + ) + ((logtest? s3-0 (focus-status dangerous)) + 4 + ) + (else + 5 + ) + ) + ) + ) + ) + ) + (when (< 0.0 f30-0) + (let ((s3-1 (new 'stack-no-clear 'array 'collide-shape 40)) + (s2-1 (new 'stack 'traffic-danger-info)) + ) + (set! (-> s2-1 sphere quad) (-> s5-0 control trans quad)) + (set! (-> s2-1 danger-type) (the-as traffic-danger-type (-> s4-0 1 data 16))) + (set! (-> s2-1 sphere r) f30-0) + (set! (-> s2-1 velocity quad) (-> s4-0 0 bbox min quad)) + (let ((gp-1 (fill-actor-list-for-line-sphere + (-> obj object-hash) + (-> s2-1 sphere) + (-> s2-1 velocity) + (-> s2-1 sphere r) + s3-1 + 40 + -1 ) - ) - (dotimes (s5-1 gp-1) - (let* ((s4-1 (-> s3-1 s5-1)) - (a0-52 (if (type? s4-1 citizen) - s4-1 - ) - ) - ) - (if a0-52 - (send-event (the-as process-tree a0-52) 'clear-path s2-1) ) - ) + ) + (dotimes (s5-1 gp-1) + (let* ((s4-1 (-> s3-1 s5-1)) + (a0-52 (if (type? s4-1 citizen) + s4-1 + ) + ) + ) + (if a0-52 + (send-event (the-as process-tree a0-52) 'clear-path s2-1) + ) ) ) ) @@ -1448,9 +1446,9 @@ Process is recycled and moved to reserved, if it deactivates." ) ) ) - 0 - (none) ) + 0 + (none) ) ) @@ -2135,6 +2133,7 @@ Process is recycled and moved to reserved, if it deactivates." (defmethod traffic-engine-method-49 traffic-engine ((obj traffic-engine) (los vector) (arg2 int) (target-status traffic-target-status)) (local-vars + ;; og:preserve-this stack array -> pointer (guards (pointer crimson-guard)) (guard-target-dists (pointer float)) (guard-idx int) @@ -2183,6 +2182,7 @@ Process is recycled and moved to reserved, if it deactivates." (when (not (update-guard-status-spots target-pos)) ) (when (update-guard-status-spots target-pos) + ;; og:preserve-this stack array -> pointer (set! guards (new 'stack-no-clear 'array 'crimson-guard 16)) (set! guard-target-dists (new 'stack-no-clear 'array 'float 16)) (set! guard-idx 0) @@ -2224,10 +2224,12 @@ Process is recycled and moved to reserved, if it deactivates." ) ) (dotimes (s4-1 guard-idx) + ;; og:preserve-this stack array -> pointer (let ((crimson-guard (-> (the-as (pointer crimson-guard) guards) s4-1))) (when (= (-> crimson-guard move-index) -1) (set! sv-208 -1) - (set! sv-216 100000000000000000.0) ;; kinda hacky, was ps2 weird infinity. + ;; og:preserve-this kinda hacky, was ps2 weird infinity. + (set! sv-216 100000000000000000.0) (dotimes (s2-4 (-> *guard-target-spots* length)) (when (= (-> *guard-status-spots* s2-4) 1) (let* ((a0-53 (vector+! (new 'stack-no-clear 'vector) target-pos (-> *guard-target-spots* s2-4))) @@ -2755,8 +2757,8 @@ Process is recycled and moved to reserved, if it deactivates." (-> a0-10 min-target-count) ) ) + ;; og:preserve-this peaceful city cheat (#when PC_PORT - ;; peaceful city cheat (when (and (pc-cheats? (-> *pc-settings* cheats) city-peace) (not (task-node-open? (game-task-node city-help-kid-battle)))) (set! (-> a0-10 target-count) (-> a0-10 min-target-count)) (set! (-> obj alert-state level) 0) @@ -2830,7 +2832,7 @@ Process is recycled and moved to reserved, if it deactivates." (when (not (logtest? (-> obj alert-state flags) (traffic-alert-flag alarm-on))) (logior! (-> obj alert-state flags) (traffic-alert-flag alarm-on)) (set! (-> *game-info* wanted-flash) #t) - ;; pc port note : moved this condition later and changed it + ;; og:preserve-this moved this condition later and changed it ;; (if (= (-> *setting-control* user-current music) 'city1) ;; (set-setting! 'sound-mode #f 0.0 1) ;; ) diff --git a/goal_src/jak2/levels/city/traffic/vehicle/transport.gc b/goal_src/jak2/levels/city/traffic/vehicle/transport.gc index 25dc1868f0..116a843c1a 100644 --- a/goal_src/jak2/levels/city/traffic/vehicle/transport.gc +++ b/goal_src/jak2/levels/city/traffic/vehicle/transport.gc @@ -300,7 +300,7 @@ :post (behavior () (set! (-> self root transv y) (* 2.0 (- (-> self y-dest) (-> self root trans y)))) (set! (-> self root transv y) (fmax -122880.0 (fmin 122880.0 (-> self root transv y)))) - (+! (-> self root trans y) (* (-> self root transv y) (-> self clock seconds-per-frame))) + (+! (-> self root trans y) (* (-> self root transv y) (seconds-per-frame))) (if (< (fabs (- (-> self root trans y) (-> self y-dest))) 409.6) (go-virtual idle) ) @@ -412,9 +412,9 @@ ) :post (behavior () (transport-method-35 self) - (+! (-> self root transv y) (* 40960.0 (-> self clock seconds-per-frame))) + (+! (-> self root transv y) (* 40960.0 (seconds-per-frame))) (set! (-> self root transv y) (fmax -122880.0 (fmin 122880.0 (-> self root transv y)))) - (+! (-> self root trans y) (* (-> self root transv y) (-> self clock seconds-per-frame))) + (+! (-> self root trans y) (* (-> self root transv y) (seconds-per-frame))) (if (and (not (logtest? (-> self draw status) (draw-control-status on-screen))) (< 163840.0 (- (-> self root trans y) (-> self y-dest))) ) diff --git a/goal_src/jak2/levels/city/traffic/vehicle/vehicle-effects.gc b/goal_src/jak2/levels/city/traffic/vehicle/vehicle-effects.gc index 67b4e5c023..4d3dae3e57 100644 --- a/goal_src/jak2/levels/city/traffic/vehicle/vehicle-effects.gc +++ b/goal_src/jak2/levels/city/traffic/vehicle/vehicle-effects.gc @@ -9,165 +9,163 @@ (defmethod do-engine-sounds vehicle ((obj vehicle)) (local-vars (v1-36 float)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (if (logtest? (rigid-body-object-flag ignition) (-> obj flags)) - (seek! (-> obj engine-sound-envelope) 1.0 (* 2.0 (-> pp clock seconds-per-frame))) - (seek! (-> obj engine-sound-envelope) 0.0 (-> pp clock seconds-per-frame)) - ) - (cond - ((< 0.0 (-> obj scrape-sound-envelope)) - (if (zero? (-> obj scrape-sound-id)) - (set! (-> obj scrape-sound-id) (new-sound-id)) - ) - (sound-play-by-name - (-> obj info scrape-sound) - (-> obj scrape-sound-id) - (the int (* 1024.0 (-> obj scrape-sound-envelope))) - 0 - 0 - (sound-group sfx) - (-> obj impact-pos) - ) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) ) - (else - (when (nonzero? (-> obj scrape-sound-id)) - (sound-stop (-> obj scrape-sound-id)) - (set! (-> obj scrape-sound-id) (new 'static 'sound-id)) - 0 - ) - ) + (init-vf0-vector) + (if (logtest? (rigid-body-object-flag ignition) (-> obj flags)) + (seek! (-> obj engine-sound-envelope) 1.0 (* 2.0 (seconds-per-frame))) + (seek! (-> obj engine-sound-envelope) 0.0 (seconds-per-frame)) ) - (cond - ((< 0.0 (* (-> obj force-scale) (-> obj engine-sound-envelope))) - (when (zero? (-> obj engine-sound-id)) - (set! (-> obj engine-sound-id) (new-sound-id)) - (set! (-> obj extra-sound-id) (new-sound-id)) - ) - (let* ((f30-0 (fabs (* (-> obj engine-thrust) (-> obj power-level) (-> obj force-scale)))) - (f28-0 (* (-> obj engine-sound-envelope) (+ 0.6 (* 0.4 f30-0)))) - (f26-0 (doppler-pitch-shift (-> obj root trans) (-> obj root transv))) - (f0-22 - (+ (-> obj info engine-pitch-offset) - (* (-> obj info engine-pitch-scale) f30-0) - (* (-> obj info engine-pitch-mod-amp) (sin (* 109.22667 (the float (- (current-time) (-> obj state-time)))))) - f26-0 - ) - ) - (a0-9 (static-sound-spec "vehicle-engine" :volume 0.0 :mask (pitch reg0))) - ) - (set! (-> a0-9 sound-name) (-> obj info engine-sound)) - (set! (-> obj engine-sound-factor) f30-0) - (cond - (#f - (let* ((f0-23 40960.0) - (f0-25 (* f0-23 f0-23)) - ) - (.lvf vf1 (&-> (-> obj rbody state lin-velocity) quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-36 vf1) - (cond - ((< f0-25 v1-36) - (format *stdcon* "accel-to-steady ~d~%" (-> obj engine-sound-id)) - (when (logtest? (rigid-body-object-flag idle-sound) (-> obj flags)) - (format *stdcon* "new engine sound~%") - (sound-stop (-> obj engine-sound-id)) - (set! (-> obj engine-sound-id) (new-sound-id)) - (set! (-> obj flags) - (the-as rigid-body-object-flag (logclear (-> obj flags) (rigid-body-object-flag idle-sound))) - ) - ) - (sound-play "accel-to-steady" :id (-> obj engine-sound-id) :position (-> obj root trans)) - ) - (else - (format *stdcon* "decel-to-idle id ~d~%" (-> obj engine-sound-id)) - (when (not (logtest? (rigid-body-object-flag idle-sound) (-> obj flags))) - (format *stdcon* "new engine sound~%") - (sound-stop (-> obj engine-sound-id)) - (set! (-> obj engine-sound-id) (new-sound-id)) - (set! (-> obj flags) - (the-as rigid-body-object-flag (logior (rigid-body-object-flag idle-sound) (-> obj flags))) - ) - ) - (sound-play "decel-to-idle" :id (-> obj engine-sound-id) :position (-> obj root trans)) - ) - ) - ) - ) - (else - (set! (-> a0-9 volume) (the int (* 1024.0 f28-0))) - (set! (-> a0-9 pitch-mod) (the int (* 1524.0 f0-22))) - (set! (-> a0-9 reg 0) (the-as uint (-> obj info engine-sound-select))) - (set! (-> a0-9 reg 1) (the-as uint (the int (* 127.0 (-> obj hit-points))))) - (sound-play-by-spec a0-9 (-> obj engine-sound-id) (-> obj root trans)) - ) - ) + (cond + ((< 0.0 (-> obj scrape-sound-envelope)) + (if (zero? (-> obj scrape-sound-id)) + (set! (-> obj scrape-sound-id) (new-sound-id)) ) + (sound-play-by-name + (-> obj info scrape-sound) + (-> obj scrape-sound-id) + (the int (* 1024.0 (-> obj scrape-sound-envelope))) 0 + 0 + (sound-group sfx) + (-> obj impact-pos) + ) + ) + (else + (when (nonzero? (-> obj scrape-sound-id)) + (sound-stop (-> obj scrape-sound-id)) + (set! (-> obj scrape-sound-id) (new 'static 'sound-id)) + 0 + ) + ) + ) + (cond + ((< 0.0 (* (-> obj force-scale) (-> obj engine-sound-envelope))) + (when (zero? (-> obj engine-sound-id)) + (set! (-> obj engine-sound-id) (new-sound-id)) + (set! (-> obj extra-sound-id) (new-sound-id)) + ) + (let* ((f30-0 (fabs (* (-> obj engine-thrust) (-> obj power-level) (-> obj force-scale)))) + (f28-0 (* (-> obj engine-sound-envelope) (+ 0.6 (* 0.4 f30-0)))) + (f26-0 (doppler-pitch-shift (-> obj root trans) (-> obj root transv))) + (f0-22 + (+ (-> obj info engine-pitch-offset) + (* (-> obj info engine-pitch-scale) f30-0) + (* (-> obj info engine-pitch-mod-amp) (sin (* 109.22667 (the float (- (current-time) (-> obj state-time)))))) + f26-0 + ) + ) + (a0-9 (static-sound-spec "vehicle-engine" :volume 0.0 :mask (pitch reg0))) + ) + (set! (-> a0-9 sound-name) (-> obj info engine-sound)) + (set! (-> obj engine-sound-factor) f30-0) + (cond + (#f + (let* ((f0-23 40960.0) + (f0-25 (* f0-23 f0-23)) + ) + (.lvf vf1 (&-> (-> obj rbody state lin-velocity) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-36 vf1) + (cond + ((< f0-25 v1-36) + (format *stdcon* "accel-to-steady ~d~%" (-> obj engine-sound-id)) + (when (logtest? (rigid-body-object-flag idle-sound) (-> obj flags)) + (format *stdcon* "new engine sound~%") + (sound-stop (-> obj engine-sound-id)) + (set! (-> obj engine-sound-id) (new-sound-id)) + (set! (-> obj flags) + (the-as rigid-body-object-flag (logclear (-> obj flags) (rigid-body-object-flag idle-sound))) + ) + ) + (sound-play "accel-to-steady" :id (-> obj engine-sound-id) :position (-> obj root trans)) + ) + (else + (format *stdcon* "decel-to-idle id ~d~%" (-> obj engine-sound-id)) + (when (not (logtest? (rigid-body-object-flag idle-sound) (-> obj flags))) + (format *stdcon* "new engine sound~%") + (sound-stop (-> obj engine-sound-id)) + (set! (-> obj engine-sound-id) (new-sound-id)) + (set! (-> obj flags) + (the-as rigid-body-object-flag (logior (rigid-body-object-flag idle-sound) (-> obj flags))) + ) + ) + (sound-play "decel-to-idle" :id (-> obj engine-sound-id) :position (-> obj root trans)) + ) + ) + ) + ) + (else + (set! (-> a0-9 volume) (the int (* 1024.0 f28-0))) + (set! (-> a0-9 pitch-mod) (the int (* 1524.0 f0-22))) + (set! (-> a0-9 reg 0) (the-as uint (-> obj info engine-sound-select))) + (set! (-> a0-9 reg 1) (the-as uint (the int (* 127.0 (-> obj hit-points))))) + (sound-play-by-spec a0-9 (-> obj engine-sound-id) (-> obj root trans)) + ) + ) + ) + 0 + ) + (else + (when (nonzero? (-> obj engine-sound-id)) + (sound-stop (-> obj engine-sound-id)) + (set! (-> obj engine-sound-id) (new 'static 'sound-id)) + 0 + ) + ) + ) + (when (or (logtest? (-> obj flags) (rigid-body-object-flag player-driving)) (nonzero? (-> obj thrust-sound-id))) + (if (zero? (-> obj thrust-sound-id)) + (set! (-> obj thrust-sound-id) (new-sound-id)) + ) + (seek! (-> obj sputter-sound-envelope) 0.0 (* 2.0 (seconds-per-frame))) + (cond + ((logtest? (-> obj flags) (rigid-body-object-flag player-driving)) + (set! (-> obj sputter-sound-envelope) (fmax (-> obj sputter-sound-envelope) (-> obj power-level))) + (let ((f1-25 + (fmin + 1.0 + (* 0.7 + (-> obj force-scale) + (-> obj sputter-sound-envelope) + (+ (-> obj engine-sound-factor) (-> obj jump-thrust)) + ) + ) + ) + (f0-38 0.0) + ) + (sound-play-by-name + (-> obj info thrust-sound) + (-> obj thrust-sound-id) + (the int (* 1024.0 f1-25)) + (the int (* 1524.0 f0-38)) + 0 + (sound-group sfx) + #t + ) + ) ) (else - (when (nonzero? (-> obj engine-sound-id)) - (sound-stop (-> obj engine-sound-id)) - (set! (-> obj engine-sound-id) (new 'static 'sound-id)) + (when (= (-> obj sputter-sound-envelope) 0.0) + (sound-stop (-> obj thrust-sound-id)) + (set! (-> obj thrust-sound-id) (new 'static 'sound-id)) 0 ) ) ) - (when (or (logtest? (-> obj flags) (rigid-body-object-flag player-driving)) (nonzero? (-> obj thrust-sound-id))) - (if (zero? (-> obj thrust-sound-id)) - (set! (-> obj thrust-sound-id) (new-sound-id)) - ) - (seek! (-> obj sputter-sound-envelope) 0.0 (* 2.0 (-> pp clock seconds-per-frame))) - (cond - ((logtest? (-> obj flags) (rigid-body-object-flag player-driving)) - (set! (-> obj sputter-sound-envelope) (fmax (-> obj sputter-sound-envelope) (-> obj power-level))) - (let ((f1-25 - (fmin - 1.0 - (* 0.7 - (-> obj force-scale) - (-> obj sputter-sound-envelope) - (+ (-> obj engine-sound-factor) (-> obj jump-thrust)) - ) - ) - ) - (f0-38 0.0) - ) - (sound-play-by-name - (-> obj info thrust-sound) - (-> obj thrust-sound-id) - (the int (* 1024.0 f1-25)) - (the int (* 1524.0 f0-38)) - 0 - (sound-group sfx) - #t - ) - ) - ) - (else - (when (= (-> obj sputter-sound-envelope) 0.0) - (sound-stop (-> obj thrust-sound-id)) - (set! (-> obj thrust-sound-id) (new 'static 'sound-id)) - 0 - ) - ) - ) - ) - (if (< (rand-vu) (-> obj power-fluctuation-factor)) - (sound-play "damage-pops" :id (-> obj damage-pop-sound-id)) - ) - 0 - (none) ) + (if (< (rand-vu) (-> obj power-fluctuation-factor)) + (sound-play "damage-pops" :id (-> obj damage-pop-sound-id)) + ) + 0 + (none) ) ) @@ -311,278 +309,276 @@ (defmethod draw-thrusters vehicle ((obj vehicle)) (local-vars (sv-272 sparticle-launcher) (sv-276 sparticle-launcher)) - (with-pp - (when (= (-> obj controller traffic sync-mask-32) (ash 1 (logand (-> obj traffic-priority-id) 31))) - (let ((f0-1 - (+ (-> *time-of-day-context* time) (* 0.048387095 (the float (logand (-> obj traffic-priority-id) 31)))) + (when (= (-> obj controller traffic sync-mask-32) (ash 1 (logand (-> obj traffic-priority-id) 31))) + (let ((f0-1 + (+ (-> *time-of-day-context* time) (* 0.048387095 (the float (logand (-> obj traffic-priority-id) 31)))) + ) + ) + (cond + ((and (logtest? (-> obj flags) (rigid-body-object-flag riding)) (or (< f0-1 7.0) (< 19.0 f0-1))) + (if (not (logtest? (rigid-body-object-flag lights-on) (-> obj flags))) + (vehicle-method-131 obj) + ) + ) + (else + (if (logtest? (rigid-body-object-flag lights-on) (-> obj flags)) + (vehicle-method-132 obj) + ) + ) + ) + ) + ) + (when (logtest? (rigid-body-object-flag lights-update) (-> obj flags)) + (let ((f30-0 (if (logtest? (rigid-body-object-flag lights-on) (-> obj flags)) + 1.0 + 0.0 + ) + ) + ) + (seek! (-> obj lights-factor) f30-0 (* 2.0 (seconds-per-frame))) + (if (= (-> obj lights-factor) f30-0) + (set! (-> obj flags) + (the-as rigid-body-object-flag (logclear (-> obj flags) (rigid-body-object-flag lights-update))) + ) + ) + ) + ) + (let ((s5-0 (new 'stack-no-clear 'inline-array 'matrix 2))) + (let* ((v1-38 (-> s5-0 1)) + (a3-0 (-> obj node-list data 0 bone transform)) + (a0-16 (-> a3-0 quad 0)) + (a1-1 (-> a3-0 quad 1)) + (a2-1 (-> a3-0 quad 2)) + (a3-1 (-> a3-0 trans quad)) + ) + (set! (-> v1-38 quad 0) a0-16) + (set! (-> v1-38 quad 1) a1-1) + (set! (-> v1-38 quad 2) a2-1) + (set! (-> v1-38 trans quad) a3-1) + ) + (set-vector! (-> s5-0 0 vector 1) 0.0 0.0 -1.0 1.0) + (vector-rotate*! (-> s5-0 0 vector 1) (-> s5-0 0 vector 1) (-> s5-0 1)) + (set! (-> obj fog-fade) (calc-fade-from-fog (-> obj root trans))) + (let ((f30-1 (* (-> obj fog-fade) (-> obj lights-factor)))) + (when (< 0.0 f30-1) + (let ((s4-0 (new 'stack-no-clear 'sprite-glow-data)) + (s3-0 *vehicle-headlight-glow-template*) + ) + (dotimes (s2-0 (-> obj info headlight-count)) + (quad-copy! (the-as pointer s4-0) (the-as pointer s3-0) 4) + (vector-matrix*! (the-as vector (-> s5-0 0)) (-> obj info headlight-local-pos s2-0) (-> s5-0 1)) + (let* ((v1-44 s4-0) + (a1-6 (-> s5-0 0)) + (f0-14 (-> v1-44 position w)) + ) + (set! (-> v1-44 position quad) (-> a1-6 quad 0)) + (set! (-> v1-44 position w) f0-14) + ) + 0 + (set! (-> s4-0 rot-angle) (* 182.04445 (rand-vu-float-range -17.0 -13.0))) + (set! (-> s4-0 color x) 255.0) + (set! (-> s4-0 color y) (rand-vu-float-range 192.0 255.0)) + (set! (-> s4-0 color w) (* f30-1 (rand-vu-float-range 16.0 18.0))) + (add! *simple-sprite-system* s4-0) + (let ((f0-21 (-> obj camera-dist2)) + (f1-6 245760.0) + ) + (when (< f0-21 (* f1-6 f1-6)) + (let ((f0-22 3276.8)) + (set! (-> s4-0 position w) f0-22) + (set! (-> s4-0 size-y) f0-22) + ) + (set! (-> s4-0 fade-a) -0.00001356) + (set! (-> s4-0 fade-b) 2.3332994) + (set! (-> s4-0 color z) (rand-vu-float-range 128.0 160.0)) + (set! (-> s4-0 color w) (* f30-1 (rand-vu-float-range 32.0 36.0))) + (add! *simple-sprite-system* s4-0) + ) ) ) - (cond - ((and (logtest? (-> obj flags) (rigid-body-object-flag riding)) (or (< f0-1 7.0) (< 19.0 f0-1))) - (if (not (logtest? (rigid-body-object-flag lights-on) (-> obj flags))) - (vehicle-method-131 obj) + ) + (let ((s4-1 (new 'stack-no-clear 'sprite-glow-data))) + (quad-copy! (the-as pointer s4-1) (the-as pointer *vehicle-taillight-glow-template*) 4) + (dotimes (s3-1 (-> obj info taillight-count)) + (vector-matrix*! (the-as vector (-> s5-0 0)) (-> obj info taillight-local-pos s3-1) (-> s5-0 1)) + (let* ((v1-66 s4-1) + (a1-18 (-> s5-0 0)) + (f0-28 (-> v1-66 position w)) + ) + (set! (-> v1-66 position quad) (-> a1-18 quad 0)) + (set! (-> v1-66 position w) f0-28) + ) + 0 + (set! (-> s4-1 rot-angle) (* 182.04445 (rand-vu-float-range -4.0 4.0))) + (set! (-> s4-1 color y) (* 64.0 (rand-vu))) + (set! (-> s4-1 color w) (* f30-1 (rand-vu-float-range 16.0 21.0))) + (add! *simple-sprite-system* s4-1) + ) + ) + ) + ) + (when (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics)) + (let* ((f30-2 + (fmax + 0.0 + (* (-> obj info thruster-flame-length) (-> obj power-level) (-> obj force-scale) (-> obj engine-thrust)) + ) ) + (f28-3 (fmin (-> obj info thruster-flame-width) f30-2)) + ) + (dotimes (s4-2 2) + (vector-matrix*! (the-as vector (-> s5-0 0)) (-> obj info thruster-local-pos s4-2) (-> s5-0 1)) + (draw-thruster obj (the-as vector (-> s5-0 0)) (-> s5-0 0 vector 1) f28-3 f30-2) + ) + ) + (when (logtest? (rigid-body-object-flag ignition) (-> obj flags)) + (set! (-> *part-id-table* 776 init-specs 2 initial-valuef) + (* 6.0 (+ 0.25 (-> obj engine-power-factor)) (rand-vu)) + ) + (let* ((f0-40 1.0) + (f1-15 (-> obj engine-power-factor)) + (f0-41 (- f0-40 (* f1-15 f1-15))) + ) + (set! (-> *part-id-table* 776 init-specs 9 initial-valuef) (* 16.0 f0-41)) + (set! (-> *part-id-table* 776 init-specs 9 random-rangef) (* 48.0 f0-41)) + ) + (let ((s4-3 (-> *part-id-table* 776))) + (dotimes (s3-2 2) + (vector-matrix*! (the-as vector (-> s5-0 0)) (-> obj info exhaust-local-pos s3-2) (-> s5-0 1)) + (vector-rotate*! (-> s5-0 0 vector 1) (-> obj info exhaust-local-dir s3-2) (-> s5-0 1)) + (vector+float*! + (-> obj info part-vel) + (-> obj rbody state lin-velocity) + (-> s5-0 0 vector 1) + (* 0.2 (-> obj info max-engine-thrust) (+ 0.5 (-> obj engine-power-factor))) + ) + (let ((v1-117 (-> obj info part-vel)) + (a0-45 (-> obj info part-vel)) + (f0-46 300.0) + ) + (vector-float*! v1-117 a0-45 (/ 1.0 f0-46)) + ) + (set! (-> s4-3 birthaccum) (the-as float (-> obj exhaust-part-accum s3-2))) + (let ((t9-25 sp-launch-particles-var) + (a0-46 (-> obj info particle-system-2d)) + (a1-34 s4-3) + (a2-14 *launch-matrix*) + ) + (set! (-> a2-14 trans quad) (-> s5-0 0 quad 0)) + (t9-25 + (the-as sparticle-system a0-46) + a1-34 + a2-14 + (the-as sparticle-launch-state #f) + (the-as sparticle-launch-control #f) + 1.0 + ) + ) + (set! (-> obj exhaust-part-accum s3-2) (the-as basic (-> s4-3 birthaccum))) + ) + ) + ) + (when (< (-> obj hit-points) 0.75) + (let* ((f28-5 (+ -32768.0 (* 32768.0 (rand-vu)))) + (f24-0 (* 65536.0 (rand-vu))) + (f30-6 (cos f28-5)) + (f28-6 (sin f28-5)) + (f26-0 (cos f24-0)) + ) + (set! (-> s5-0 0 trans x) (* f30-6 (sin f24-0))) + (set! (-> s5-0 0 trans y) f28-6) + (set! (-> s5-0 0 trans z) (* f30-6 f26-0)) + ) + (set! sv-272 (the-as sparticle-launcher #f)) + (set! sv-276 (the-as sparticle-launcher #f)) + (cond + ((< (-> obj hit-points) 0.25) + (set! sv-272 (-> *part-id-table* 778)) + (set! sv-276 (-> *part-id-table* 774)) + ) + ((< (-> obj hit-points) 0.5) + (set! sv-272 (-> *part-id-table* 781)) ) (else - (if (logtest? (rigid-body-object-flag lights-on) (-> obj flags)) - (vehicle-method-132 obj) + (if (< (rand-vu) 0.05) + (set! sv-272 (-> *part-id-table* 783)) ) ) ) - ) - ) - (when (logtest? (rigid-body-object-flag lights-update) (-> obj flags)) - (let ((f30-0 (if (logtest? (rigid-body-object-flag lights-on) (-> obj flags)) - 1.0 - 0.0 - ) - ) - ) - (seek! (-> obj lights-factor) f30-0 (* 2.0 (-> pp clock seconds-per-frame))) - (if (= (-> obj lights-factor) f30-0) - (set! (-> obj flags) - (the-as rigid-body-object-flag (logclear (-> obj flags) (rigid-body-object-flag lights-update))) - ) - ) - ) - ) - (let ((s5-0 (new 'stack-no-clear 'inline-array 'matrix 2))) - (let* ((v1-38 (-> s5-0 1)) - (a3-0 (-> obj node-list data 0 bone transform)) - (a0-16 (-> a3-0 quad 0)) - (a1-1 (-> a3-0 quad 1)) - (a2-1 (-> a3-0 quad 2)) - (a3-1 (-> a3-0 trans quad)) - ) - (set! (-> v1-38 quad 0) a0-16) - (set! (-> v1-38 quad 1) a1-1) - (set! (-> v1-38 quad 2) a2-1) - (set! (-> v1-38 trans quad) a3-1) - ) - (set-vector! (-> s5-0 0 vector 1) 0.0 0.0 -1.0 1.0) - (vector-rotate*! (-> s5-0 0 vector 1) (-> s5-0 0 vector 1) (-> s5-0 1)) - (set! (-> obj fog-fade) (calc-fade-from-fog (-> obj root trans))) - (let ((f30-1 (* (-> obj fog-fade) (-> obj lights-factor)))) - (when (< 0.0 f30-1) - (let ((s4-0 (new 'stack-no-clear 'sprite-glow-data)) - (s3-0 *vehicle-headlight-glow-template*) - ) - (dotimes (s2-0 (-> obj info headlight-count)) - (quad-copy! (the-as pointer s4-0) (the-as pointer s3-0) 4) - (vector-matrix*! (the-as vector (-> s5-0 0)) (-> obj info headlight-local-pos s2-0) (-> s5-0 1)) - (let* ((v1-44 s4-0) - (a1-6 (-> s5-0 0)) - (f0-14 (-> v1-44 position w)) - ) - (set! (-> v1-44 position quad) (-> a1-6 quad 0)) - (set! (-> v1-44 position w) f0-14) - ) - 0 - (set! (-> s4-0 rot-angle) (* 182.04445 (rand-vu-float-range -17.0 -13.0))) - (set! (-> s4-0 color x) 255.0) - (set! (-> s4-0 color y) (rand-vu-float-range 192.0 255.0)) - (set! (-> s4-0 color w) (* f30-1 (rand-vu-float-range 16.0 18.0))) - (add! *simple-sprite-system* s4-0) - (let ((f0-21 (-> obj camera-dist2)) - (f1-6 245760.0) + (when sv-272 + (let ((s3-3 #f)) + (dotimes (s4-4 2) + (vector-rotate*! (-> s5-0 0 vector 2) (-> obj info smoke-local-vel s4-4) (-> s5-0 1)) + (vector+! (-> s5-0 0 vector 2) (-> s5-0 0 vector 2) (-> obj rbody state lin-velocity)) + (vector+float*! (-> s5-0 0 vector 2) (-> s5-0 0 vector 2) (-> s5-0 0 trans) (* 24576.0 (rand-vu))) + (let ((v1-152 (-> obj info part-vel)) + (a0-54 (-> s5-0 0 vector 2)) + (f0-63 300.0) ) - (when (< f0-21 (* f1-6 f1-6)) - (let ((f0-22 3276.8)) - (set! (-> s4-0 position w) f0-22) - (set! (-> s4-0 size-y) f0-22) - ) - (set! (-> s4-0 fade-a) -0.00001356) - (set! (-> s4-0 fade-b) 2.3332994) - (set! (-> s4-0 color z) (rand-vu-float-range 128.0 160.0)) - (set! (-> s4-0 color w) (* f30-1 (rand-vu-float-range 32.0 36.0))) - (add! *simple-sprite-system* s4-0) - ) + (vector-float*! v1-152 a0-54 (/ 1.0 f0-63)) ) - ) - ) - (let ((s4-1 (new 'stack-no-clear 'sprite-glow-data))) - (quad-copy! (the-as pointer s4-1) (the-as pointer *vehicle-taillight-glow-template*) 4) - (dotimes (s3-1 (-> obj info taillight-count)) - (vector-matrix*! (the-as vector (-> s5-0 0)) (-> obj info taillight-local-pos s3-1) (-> s5-0 1)) - (let* ((v1-66 s4-1) - (a1-18 (-> s5-0 0)) - (f0-28 (-> v1-66 position w)) - ) - (set! (-> v1-66 position quad) (-> a1-18 quad 0)) - (set! (-> v1-66 position w) f0-28) - ) - 0 - (set! (-> s4-1 rot-angle) (* 182.04445 (rand-vu-float-range -4.0 4.0))) - (set! (-> s4-1 color y) (* 64.0 (rand-vu))) - (set! (-> s4-1 color w) (* f30-1 (rand-vu-float-range 16.0 21.0))) - (add! *simple-sprite-system* s4-1) - ) - ) - ) - ) - (when (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics)) - (let* ((f30-2 - (fmax - 0.0 - (* (-> obj info thruster-flame-length) (-> obj power-level) (-> obj force-scale) (-> obj engine-thrust)) - ) - ) - (f28-3 (fmin (-> obj info thruster-flame-width) f30-2)) - ) - (dotimes (s4-2 2) - (vector-matrix*! (the-as vector (-> s5-0 0)) (-> obj info thruster-local-pos s4-2) (-> s5-0 1)) - (draw-thruster obj (the-as vector (-> s5-0 0)) (-> s5-0 0 vector 1) f28-3 f30-2) - ) - ) - (when (logtest? (rigid-body-object-flag ignition) (-> obj flags)) - (set! (-> *part-id-table* 776 init-specs 2 initial-valuef) - (* 6.0 (+ 0.25 (-> obj engine-power-factor)) (rand-vu)) - ) - (let* ((f0-40 1.0) - (f1-15 (-> obj engine-power-factor)) - (f0-41 (- f0-40 (* f1-15 f1-15))) - ) - (set! (-> *part-id-table* 776 init-specs 9 initial-valuef) (* 16.0 f0-41)) - (set! (-> *part-id-table* 776 init-specs 9 random-rangef) (* 48.0 f0-41)) - ) - (let ((s4-3 (-> *part-id-table* 776))) - (dotimes (s3-2 2) - (vector-matrix*! (the-as vector (-> s5-0 0)) (-> obj info exhaust-local-pos s3-2) (-> s5-0 1)) - (vector-rotate*! (-> s5-0 0 vector 1) (-> obj info exhaust-local-dir s3-2) (-> s5-0 1)) - (vector+float*! - (-> obj info part-vel) - (-> obj rbody state lin-velocity) - (-> s5-0 0 vector 1) - (* 0.2 (-> obj info max-engine-thrust) (+ 0.5 (-> obj engine-power-factor))) - ) - (let ((v1-117 (-> obj info part-vel)) - (a0-45 (-> obj info part-vel)) - (f0-46 300.0) - ) - (vector-float*! v1-117 a0-45 (/ 1.0 f0-46)) - ) - (set! (-> s4-3 birthaccum) (the-as float (-> obj exhaust-part-accum s3-2))) - (let ((t9-25 sp-launch-particles-var) - (a0-46 (-> obj info particle-system-2d)) - (a1-34 s4-3) - (a2-14 *launch-matrix*) - ) - (set! (-> a2-14 trans quad) (-> s5-0 0 quad 0)) - (t9-25 - (the-as sparticle-system a0-46) - a1-34 - a2-14 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - ) - (set! (-> obj exhaust-part-accum s3-2) (the-as basic (-> s4-3 birthaccum))) - ) - ) - ) - (when (< (-> obj hit-points) 0.75) - (let* ((f28-5 (+ -32768.0 (* 32768.0 (rand-vu)))) - (f24-0 (* 65536.0 (rand-vu))) - (f30-6 (cos f28-5)) - (f28-6 (sin f28-5)) - (f26-0 (cos f24-0)) - ) - (set! (-> s5-0 0 trans x) (* f30-6 (sin f24-0))) - (set! (-> s5-0 0 trans y) f28-6) - (set! (-> s5-0 0 trans z) (* f30-6 f26-0)) - ) - (set! sv-272 (the-as sparticle-launcher #f)) - (set! sv-276 (the-as sparticle-launcher #f)) - (cond - ((< (-> obj hit-points) 0.25) - (set! sv-272 (-> *part-id-table* 778)) - (set! sv-276 (-> *part-id-table* 774)) - ) - ((< (-> obj hit-points) 0.5) - (set! sv-272 (-> *part-id-table* 781)) - ) - (else - (if (< (rand-vu) 0.05) - (set! sv-272 (-> *part-id-table* 783)) - ) - ) - ) - (when sv-272 - (let ((s3-3 #f)) - (dotimes (s4-4 2) - (vector-rotate*! (-> s5-0 0 vector 2) (-> obj info smoke-local-vel s4-4) (-> s5-0 1)) - (vector+! (-> s5-0 0 vector 2) (-> s5-0 0 vector 2) (-> obj rbody state lin-velocity)) - (vector+float*! (-> s5-0 0 vector 2) (-> s5-0 0 vector 2) (-> s5-0 0 trans) (* 24576.0 (rand-vu))) - (let ((v1-152 (-> obj info part-vel)) - (a0-54 (-> s5-0 0 vector 2)) - (f0-63 300.0) + (vector-matrix*! (the-as vector (-> s5-0 0)) (-> obj info smoke-local-pos s4-4) (-> s5-0 1)) + (when (and sv-276 (< (rand-vu) 0.005)) + (let ((t9-37 sp-launch-particles-var) + (a0-56 (-> obj info particle-system-2d)) + (a1-44 sv-276) + (a2-17 *launch-matrix*) ) - (vector-float*! v1-152 a0-54 (/ 1.0 f0-63)) - ) - (vector-matrix*! (the-as vector (-> s5-0 0)) (-> obj info smoke-local-pos s4-4) (-> s5-0 1)) - (when (and sv-276 (< (rand-vu) 0.005)) - (let ((t9-37 sp-launch-particles-var) - (a0-56 (-> obj info particle-system-2d)) - (a1-44 sv-276) - (a2-17 *launch-matrix*) - ) - (set! (-> a2-17 trans quad) (-> s5-0 0 quad 0)) - (t9-37 - (the-as sparticle-system a0-56) - a1-44 - a2-17 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - ) - (set! s3-3 #t) - ) - (set! (-> sv-272 birthaccum) (the-as float (-> obj smoke-part-accum s4-4))) - (let ((t9-38 sp-launch-particles-var) - (a0-57 (-> obj info particle-system-2d)) - (a1-45 sv-272) - (a2-18 *launch-matrix*) - ) - (set! (-> a2-18 trans quad) (-> s5-0 0 quad 0)) - (t9-38 - (the-as sparticle-system a0-57) - a1-45 - a2-18 + (set! (-> a2-17 trans quad) (-> s5-0 0 quad 0)) + (t9-37 + (the-as sparticle-system a0-56) + a1-44 + a2-17 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0 ) ) - (set! (-> obj smoke-part-accum s4-4) (the-as basic (-> sv-272 birthaccum))) + (set! s3-3 #t) ) - (if s3-3 - (sound-play "damage-zaps" :id (-> obj damage-zap-sound-id)) + (set! (-> sv-272 birthaccum) (the-as float (-> obj smoke-part-accum s4-4))) + (let ((t9-38 sp-launch-particles-var) + (a0-57 (-> obj info particle-system-2d)) + (a1-45 sv-272) + (a2-18 *launch-matrix*) + ) + (set! (-> a2-18 trans quad) (-> s5-0 0 quad 0)) + (t9-38 + (the-as sparticle-system a0-57) + a1-45 + a2-18 + (the-as sparticle-launch-state #f) + (the-as sparticle-launch-control #f) + 1.0 ) + ) + (set! (-> obj smoke-part-accum s4-4) (the-as basic (-> sv-272 birthaccum))) ) + (if s3-3 + (sound-play "damage-zaps" :id (-> obj damage-zap-sound-id)) + ) ) ) - (when (>= (-> obj scrape-sound-envelope) 0.75) - (let ((a1-47 (-> *part-id-table* 773)) - (t9-40 sp-launch-particles-var) - (a0-60 (-> obj info particle-system-2d)) - (a2-20 *launch-matrix*) - ) - (set! (-> a2-20 trans quad) (-> obj impact-pos quad)) - (t9-40 - (the-as sparticle-system a0-60) - a1-47 - a2-20 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 + ) + (when (>= (-> obj scrape-sound-envelope) 0.75) + (let ((a1-47 (-> *part-id-table* 773)) + (t9-40 sp-launch-particles-var) + (a0-60 (-> obj info particle-system-2d)) + (a2-20 *launch-matrix*) ) + (set! (-> a2-20 trans quad) (-> obj impact-pos quad)) + (t9-40 + (the-as sparticle-system a0-60) + a1-47 + a2-20 + (the-as sparticle-launch-state #f) + (the-as sparticle-launch-control #f) + 1.0 ) ) ) ) - 0 - (none) ) + 0 + (none) ) diff --git a/goal_src/jak2/levels/city/traffic/vehicle/vehicle-guard.gc b/goal_src/jak2/levels/city/traffic/vehicle/vehicle-guard.gc index b6dea4b53c..69a8ba8609 100644 --- a/goal_src/jak2/levels/city/traffic/vehicle/vehicle-guard.gc +++ b/goal_src/jak2/levels/city/traffic/vehicle/vehicle-guard.gc @@ -226,32 +226,11 @@ (vector+float*! (new 'stack-no-clear 'vector) arg0 arg1 -1638.4) (cond (arg2 - (let ((t9-0 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 771)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> arg0 quad)) - (t9-0 a0-2 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 770)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> arg0 quad)) - (t9-1 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 771) arg0) + (launch-particles (-> *part-id-table* 770) arg0) ) (else - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 772)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> arg0 quad)) - (t9-2 a0-4 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 772) arg0) ) ) 0 @@ -293,155 +272,153 @@ ) (defmethod turret-control-method-9 turret-control ((obj turret-control) (arg0 vehicle) (arg1 vector) (arg2 vector)) - (with-pp - (let ((gp-0 (new 'stack-no-clear 'turret-unknown-stack-structure))) - (set! (-> gp-0 vec-12 x) (-> pp clock seconds-per-frame)) - (let* ((v1-1 (-> gp-0 mat-1)) - (a3-1 (-> arg0 node-list data (-> obj info joint-index) bone transform)) - (a0-4 (-> a3-1 quad 0)) - (a1-4 (-> a3-1 quad 1)) - (a2-1 (-> a3-1 quad 2)) - (a3-2 (-> a3-1 trans quad)) + (let ((gp-0 (new 'stack-no-clear 'turret-unknown-stack-structure))) + (set! (-> gp-0 vec-12 x) (seconds-per-frame)) + (let* ((v1-1 (-> gp-0 mat-1)) + (a3-1 (-> arg0 node-list data (-> obj info joint-index) bone transform)) + (a0-4 (-> a3-1 quad 0)) + (a1-4 (-> a3-1 quad 1)) + (a2-1 (-> a3-1 quad 2)) + (a3-2 (-> a3-1 trans quad)) + ) + (set! (-> v1-1 quad 0) a0-4) + (set! (-> v1-1 quad 1) a1-4) + (set! (-> v1-1 quad 2) a2-1) + (set! (-> v1-1 trans quad) a3-2) + ) + (set! (-> obj target-dist) (vector-vector-distance (-> gp-0 mat-1 trans) arg1)) + (let ((f0-3 (/ (-> obj target-dist) (-> obj info shot-speed)))) + (vector+float*! (-> gp-0 vec-1) arg1 arg2 f0-3) + ) + (when (not (logtest? (-> obj flags) (turret-flag aiming))) + (logior! (-> obj flags) (turret-flag aiming)) + (turret-control-method-13 obj) + ) + (vector-matrix*! (-> gp-0 vec-6) (-> obj info local-pos) (-> gp-0 mat-1)) + (vector-! (-> gp-0 vec-5) (-> gp-0 vec-1) (-> gp-0 vec-6)) + (let* ((v1-14 (-> gp-0 mat-1)) + (a3-3 (-> arg0 node-list data 0 bone transform)) + (a0-11 (-> a3-3 quad 0)) + (a1-9 (-> a3-3 quad 1)) + (a2-3 (-> a3-3 quad 2)) + (a3-4 (-> a3-3 trans quad)) + ) + (set! (-> v1-14 quad 0) a0-11) + (set! (-> v1-14 quad 1) a1-9) + (set! (-> v1-14 quad 2) a2-3) + (set! (-> v1-14 trans quad) a3-4) + ) + (matrix-transpose! (the-as matrix (-> gp-0 vec-8)) (-> gp-0 mat-1)) + (vector-rotate*! (-> gp-0 vec-3) (-> gp-0 vec-5) (the-as matrix (-> gp-0 vec-8))) + (set! (-> gp-0 vec-4 y) (atan (-> gp-0 vec-3 x) (-> gp-0 vec-3 z))) + (let* ((v1-15 (-> gp-0 vec-3)) + (f0-11 (sqrtf (+ (* (-> v1-15 x) (-> v1-15 x)) (* (-> v1-15 z) (-> v1-15 z))))) + ) + (set! (-> gp-0 vec-4 x) (atan (-> gp-0 vec-3 y) f0-11)) + ) + (+! (-> gp-0 vec-4 x) (-> obj aim-rot-offset 0)) + (+! (-> gp-0 vec-4 y) (-> obj aim-rot-offset 1)) + (dotimes (s3-1 2) + (+! (-> obj aim-rot-vel s3-1) + (* 5.0 + (- (* 8.0 (if (or (zero? s3-1) (not (logtest? (-> obj flags) (turret-flag no-rot-y-clamp)))) + (- (-> gp-0 vec-4 data s3-1) (-> obj aim-rot s3-1)) + (deg- (-> gp-0 vec-4 data s3-1) (-> obj aim-rot s3-1)) + ) + ) + (-> obj aim-rot-vel s3-1) + ) + (-> gp-0 vec-12 x) ) - (set! (-> v1-1 quad 0) a0-4) - (set! (-> v1-1 quad 1) a1-4) - (set! (-> v1-1 quad 2) a2-1) - (set! (-> v1-1 trans quad) a3-2) - ) - (set! (-> obj target-dist) (vector-vector-distance (-> gp-0 mat-1 trans) arg1)) - (let ((f0-3 (/ (-> obj target-dist) (-> obj info shot-speed)))) - (vector+float*! (-> gp-0 vec-1) arg1 arg2 f0-3) - ) - (when (not (logtest? (-> obj flags) (turret-flag aiming))) - (logior! (-> obj flags) (turret-flag aiming)) - (turret-control-method-13 obj) - ) - (vector-matrix*! (-> gp-0 vec-6) (-> obj info local-pos) (-> gp-0 mat-1)) - (vector-! (-> gp-0 vec-5) (-> gp-0 vec-1) (-> gp-0 vec-6)) - (let* ((v1-14 (-> gp-0 mat-1)) - (a3-3 (-> arg0 node-list data 0 bone transform)) - (a0-11 (-> a3-3 quad 0)) - (a1-9 (-> a3-3 quad 1)) - (a2-3 (-> a3-3 quad 2)) - (a3-4 (-> a3-3 trans quad)) - ) - (set! (-> v1-14 quad 0) a0-11) - (set! (-> v1-14 quad 1) a1-9) - (set! (-> v1-14 quad 2) a2-3) - (set! (-> v1-14 trans quad) a3-4) - ) - (matrix-transpose! (the-as matrix (-> gp-0 vec-8)) (-> gp-0 mat-1)) - (vector-rotate*! (-> gp-0 vec-3) (-> gp-0 vec-5) (the-as matrix (-> gp-0 vec-8))) - (set! (-> gp-0 vec-4 y) (atan (-> gp-0 vec-3 x) (-> gp-0 vec-3 z))) - (let* ((v1-15 (-> gp-0 vec-3)) - (f0-11 (sqrtf (+ (* (-> v1-15 x) (-> v1-15 x)) (* (-> v1-15 z) (-> v1-15 z))))) - ) - (set! (-> gp-0 vec-4 x) (atan (-> gp-0 vec-3 y) f0-11)) - ) - (+! (-> gp-0 vec-4 x) (-> obj aim-rot-offset 0)) - (+! (-> gp-0 vec-4 y) (-> obj aim-rot-offset 1)) - (dotimes (s3-1 2) - (+! (-> obj aim-rot-vel s3-1) - (* 5.0 - (- (* 8.0 (if (or (zero? s3-1) (not (logtest? (-> obj flags) (turret-flag no-rot-y-clamp)))) - (- (-> gp-0 vec-4 data s3-1) (-> obj aim-rot s3-1)) - (deg- (-> gp-0 vec-4 data s3-1) (-> obj aim-rot s3-1)) - ) - ) - (-> obj aim-rot-vel s3-1) - ) - (-> gp-0 vec-12 x) - ) - ) - (set! (-> obj aim-rot-vel s3-1) (* (-> obj aim-rot-vel s3-1) (fmax 0.0 (- 1.0 (* 0.1 (-> gp-0 vec-12 x)))))) - (+! (-> obj aim-rot s3-1) (* (-> obj aim-rot-vel s3-1) (-> gp-0 vec-12 x))) - (when (or (zero? s3-1) (not (logtest? (-> obj flags) (turret-flag no-rot-y-clamp)))) - (let ((f0-31 (-> obj info rot-min s3-1))) - (when (< (-> obj aim-rot s3-1) f0-31) - (set! (-> obj aim-rot s3-1) f0-31) - (set! (-> obj aim-rot-vel s3-1) 0.0) - ) - ) - (let ((f0-33 (-> obj info rot-max s3-1))) - (when (< f0-33 (-> obj aim-rot s3-1)) - (set! (-> obj aim-rot s3-1) f0-33) - (set! (-> obj aim-rot-vel s3-1) 0.0) - ) + ) + (set! (-> obj aim-rot-vel s3-1) (* (-> obj aim-rot-vel s3-1) (fmax 0.0 (- 1.0 (* 0.1 (-> gp-0 vec-12 x)))))) + (+! (-> obj aim-rot s3-1) (* (-> obj aim-rot-vel s3-1) (-> gp-0 vec-12 x))) + (when (or (zero? s3-1) (not (logtest? (-> obj flags) (turret-flag no-rot-y-clamp)))) + (let ((f0-31 (-> obj info rot-min s3-1))) + (when (< (-> obj aim-rot s3-1) f0-31) + (set! (-> obj aim-rot s3-1) f0-31) + (set! (-> obj aim-rot-vel s3-1) 0.0) ) ) - ) - (logclear! (-> obj flags) (turret-flag should-shoot)) - (when (and (< (fabs (deg- (-> obj aim-rot-x) (-> gp-0 vec-4 x))) 2912.7112) - (< (fabs (deg- (-> obj aim-rot-y) (-> gp-0 vec-4 y))) 2912.7112) - (< (-> obj target-dist) (-> obj info attack-range)) - ) - (logior! (-> obj flags) (turret-flag should-shoot)) - (when (logtest? (-> obj flags) (turret-flag targetting-laser)) - (let* ((v1-88 (-> gp-0 mat-1)) - (a3-5 (-> arg0 node-list data (-> obj info joint-index) bone transform)) - (a0-29 (-> a3-5 quad 0)) - (a1-20 (-> a3-5 quad 1)) - (a2-5 (-> a3-5 quad 2)) - (a3-6 (-> a3-5 trans quad)) - ) - (set! (-> v1-88 quad 0) a0-29) - (set! (-> v1-88 quad 1) a1-20) - (set! (-> v1-88 quad 2) a2-5) - (set! (-> v1-88 trans quad) a3-6) - ) - (set! (-> gp-0 vec-7 quad) (-> gp-0 mat-1 vector 2 quad)) - (let ((s3-2 (new 'stack-no-clear 'collide-query))) - (set! (-> s3-2 start-pos quad) (-> gp-0 vec-6 quad)) - (vector-float*! (-> s3-2 move-dist) (-> gp-0 vec-7) (-> obj info attack-range)) - (let ((v1-93 s3-2)) - (set! (-> v1-93 radius) 409.6) - (set! (-> v1-93 collide-with) - (collide-spec backgnd jak bot crate enemy obstacle hit-by-others-list player-list) - ) - (set! (-> v1-93 ignore-process0) arg0) - (set! (-> v1-93 ignore-process1) #f) - (set! (-> v1-93 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (set! (-> v1-93 action-mask) (collide-action solid)) - ) - (let ((f30-1 (fill-and-probe-using-line-sphere *collide-cache* s3-2)) - (s5-1 #f) - ) - (cond - ((< f30-1 0.0) - (vector+! (-> gp-0 vec-2) (-> s3-2 start-pos) (-> s3-2 move-dist)) - ) - (else - (let* ((s4-1 (-> s3-2 best-other-tri collide-ptr)) - (a0-43 (if (type? s4-1 collide-shape-prim) - s4-1 - ) - ) - ) - (if (and a0-43 (logtest? (-> (the-as collide-shape-prim a0-43) prim-core collide-as) (collide-spec jak))) - (set! s5-1 #t) - ) - ) - (vector+float*! (-> gp-0 vec-2) (-> s3-2 start-pos) (-> s3-2 move-dist) f30-1) - (vehicle-draw-laser-spot (-> gp-0 vec-2) (-> gp-0 vec-7) s5-1) - ) - ) - (when (not s5-1) - ) - ) - ) - (let ((t9-13 vehicle-draw-laser) - (a0-48 (-> gp-0 vec-6)) - (a1-27 (-> gp-0 vec-2)) - ) - (-> gp-0 vec-7) - (t9-13 a0-48 a1-27) + (let ((f0-33 (-> obj info rot-max s3-1))) + (when (< f0-33 (-> obj aim-rot s3-1)) + (set! (-> obj aim-rot s3-1) f0-33) + (set! (-> obj aim-rot-vel s3-1) 0.0) ) ) ) ) - 0 - (none) + (logclear! (-> obj flags) (turret-flag should-shoot)) + (when (and (< (fabs (deg- (-> obj aim-rot-x) (-> gp-0 vec-4 x))) 2912.7112) + (< (fabs (deg- (-> obj aim-rot-y) (-> gp-0 vec-4 y))) 2912.7112) + (< (-> obj target-dist) (-> obj info attack-range)) + ) + (logior! (-> obj flags) (turret-flag should-shoot)) + (when (logtest? (-> obj flags) (turret-flag targetting-laser)) + (let* ((v1-88 (-> gp-0 mat-1)) + (a3-5 (-> arg0 node-list data (-> obj info joint-index) bone transform)) + (a0-29 (-> a3-5 quad 0)) + (a1-20 (-> a3-5 quad 1)) + (a2-5 (-> a3-5 quad 2)) + (a3-6 (-> a3-5 trans quad)) + ) + (set! (-> v1-88 quad 0) a0-29) + (set! (-> v1-88 quad 1) a1-20) + (set! (-> v1-88 quad 2) a2-5) + (set! (-> v1-88 trans quad) a3-6) + ) + (set! (-> gp-0 vec-7 quad) (-> gp-0 mat-1 vector 2 quad)) + (let ((s3-2 (new 'stack-no-clear 'collide-query))) + (set! (-> s3-2 start-pos quad) (-> gp-0 vec-6 quad)) + (vector-float*! (-> s3-2 move-dist) (-> gp-0 vec-7) (-> obj info attack-range)) + (let ((v1-93 s3-2)) + (set! (-> v1-93 radius) 409.6) + (set! (-> v1-93 collide-with) + (collide-spec backgnd jak bot crate enemy obstacle hit-by-others-list player-list) + ) + (set! (-> v1-93 ignore-process0) arg0) + (set! (-> v1-93 ignore-process1) #f) + (set! (-> v1-93 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (set! (-> v1-93 action-mask) (collide-action solid)) + ) + (let ((f30-1 (fill-and-probe-using-line-sphere *collide-cache* s3-2)) + (s5-1 #f) + ) + (cond + ((< f30-1 0.0) + (vector+! (-> gp-0 vec-2) (-> s3-2 start-pos) (-> s3-2 move-dist)) + ) + (else + (let* ((s4-1 (-> s3-2 best-other-tri collide-ptr)) + (a0-43 (if (type? s4-1 collide-shape-prim) + s4-1 + ) + ) + ) + (if (and a0-43 (logtest? (-> (the-as collide-shape-prim a0-43) prim-core collide-as) (collide-spec jak))) + (set! s5-1 #t) + ) + ) + (vector+float*! (-> gp-0 vec-2) (-> s3-2 start-pos) (-> s3-2 move-dist) f30-1) + (vehicle-draw-laser-spot (-> gp-0 vec-2) (-> gp-0 vec-7) s5-1) + ) + ) + (when (not s5-1) + ) + ) + ) + (let ((t9-13 vehicle-draw-laser) + (a0-48 (-> gp-0 vec-6)) + (a1-27 (-> gp-0 vec-2)) + ) + (-> gp-0 vec-7) + (t9-13 a0-48 a1-27) + ) + ) + ) ) + 0 + (none) ) (defmethod turret-control-method-10 turret-control ((obj turret-control) (arg0 vehicle)) @@ -535,29 +512,27 @@ ) (defmethod turret-control-method-16 turret-control ((obj turret-control) (arg0 float) (arg1 float)) - (with-pp - (let ((f0-0 (-> pp clock seconds-per-frame))) - (set! (-> obj aim-rot-vel-x) arg1) - (set! (-> obj aim-rot-vel-y) arg0) - (dotimes (v1-1 2) - (+! (-> obj aim-rot v1-1) (* f0-0 (-> obj aim-rot-vel v1-1))) - (let ((f1-4 (-> obj info rot-min v1-1))) - (when (< (-> obj aim-rot v1-1) f1-4) - (set! (-> obj aim-rot v1-1) f1-4) - (set! (-> obj aim-rot-vel v1-1) 0.0) - ) + (let ((f0-0 (seconds-per-frame))) + (set! (-> obj aim-rot-vel-x) arg1) + (set! (-> obj aim-rot-vel-y) arg0) + (dotimes (v1-1 2) + (+! (-> obj aim-rot v1-1) (* f0-0 (-> obj aim-rot-vel v1-1))) + (let ((f1-4 (-> obj info rot-min v1-1))) + (when (< (-> obj aim-rot v1-1) f1-4) + (set! (-> obj aim-rot v1-1) f1-4) + (set! (-> obj aim-rot-vel v1-1) 0.0) ) - (let ((f1-6 (-> obj info rot-max v1-1))) - (when (< f1-6 (-> obj aim-rot v1-1)) - (set! (-> obj aim-rot v1-1) f1-6) - (set! (-> obj aim-rot-vel v1-1) 0.0) - ) + ) + (let ((f1-6 (-> obj info rot-max v1-1))) + (when (< f1-6 (-> obj aim-rot v1-1)) + (set! (-> obj aim-rot v1-1) f1-6) + (set! (-> obj aim-rot-vel v1-1) 0.0) ) ) ) - 0 - (none) ) + 0 + (none) ) (deftype vehicle-guard-target-data (structure) @@ -1066,66 +1041,62 @@ ) (defmethod vehicle-guard-method-156 vehicle-guard ((obj vehicle-guard)) - (with-pp - (let ((f30-0 (-> pp clock seconds-per-frame))) - (seek! (-> obj controls throttle) 0.0 (* 4.0 f30-0)) - (+! (-> obj controls brake) (* (- 1.0 (-> obj controls brake)) (fmin 1.0 (* 8.0 f30-0)))) - (let ((s4-0 (-> obj rbody state matrix)) - (s3-0 (-> obj rbody state matrix vector 2)) - (s5-0 (new 'stack-no-clear 'vector)) - ) - (vector-reset! s5-0) - (let ((v1-9 (handle->process (-> obj pursuit-target))) - (f28-0 0.0) - ) - (when (and v1-9 (logtest? (rigid-body-object-flag target-in-sight) (-> obj flags))) - (vector-! s5-0 (-> (the-as process-drawable v1-9) root trans) (-> obj root trans)) - (set! (-> s5-0 y) 0.0) - (vector-normalize! s5-0 1.0) - (if (< (vector-dot s3-0 s5-0) (cos 2730.6667)) - (set! f28-0 (vector-dot (the-as vector s4-0) s5-0)) - ) - ) - (+! (-> obj controls steering) (* (- f28-0 (-> obj controls steering)) (fmin 1.0 (* 8.0 f30-0)))) + (let ((f30-0 (seconds-per-frame))) + (seek! (-> obj controls throttle) 0.0 (* 4.0 f30-0)) + (+! (-> obj controls brake) (* (- 1.0 (-> obj controls brake)) (fmin 1.0 (* 8.0 f30-0)))) + (let ((s4-0 (-> obj rbody state matrix)) + (s3-0 (-> obj rbody state matrix vector 2)) + (s5-0 (new 'stack-no-clear 'vector)) ) + (vector-reset! s5-0) + (let ((v1-9 (handle->process (-> obj pursuit-target))) + (f28-0 0.0) + ) + (when (and v1-9 (logtest? (rigid-body-object-flag target-in-sight) (-> obj flags))) + (vector-! s5-0 (-> (the-as process-drawable v1-9) root trans) (-> obj root trans)) + (set! (-> s5-0 y) 0.0) + (vector-normalize! s5-0 1.0) + (if (< (vector-dot s3-0 s5-0) (cos 2730.6667)) + (set! f28-0 (vector-dot (the-as vector s4-0) s5-0)) + ) + ) + (+! (-> obj controls steering) (* (- f28-0 (-> obj controls steering)) (fmin 1.0 (* 8.0 f30-0)))) ) ) - (when (zero? (-> obj flight-level-index)) - (if (logtest? (-> obj flags) (rigid-body-object-flag riding)) - (vehicle-method-80 obj) - ) - ) - 0 - (none) ) + (when (zero? (-> obj flight-level-index)) + (if (logtest? (-> obj flags) (rigid-body-object-flag riding)) + (vehicle-method-80 obj) + ) + ) + 0 + (none) ) (defmethod vehicle-guard-method-154 vehicle-guard ((obj vehicle-guard)) - (with-pp - (if (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) - (rigid-body-object-method-38 obj) - ) - (set! (-> obj camera-dist2) (vector-vector-distance-squared (-> obj root trans) (camera-pos))) - (set! (-> obj player-dist2) (vector-vector-distance-squared (-> obj root trans) (target-pos 0))) - (vehicle-controller-method-18 - (-> obj controller) - (-> obj target-acceleration) - (-> obj root transv) - obj - (/ 1.0 (-> pp clock seconds-per-frame)) + (if (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) + (rigid-body-object-method-38 obj) ) - ((-> obj ai-hook) obj) - (vehicle-method-121 obj) - (vehicle-method-106 obj) - (when (not (logtest? (rigid-body-object-flag in-pursuit) (-> obj flags))) - (if (not (logtest? (-> obj target-flags) (turret-flag aiming))) - (speech-control-method-12 *speech-control* obj (speech-type speech-type-2)) - ) - (go (method-of-object obj active)) - ) - 0 - (none) + (set! (-> obj camera-dist2) (vector-vector-distance-squared (-> obj root trans) (camera-pos))) + (set! (-> obj player-dist2) (vector-vector-distance-squared (-> obj root trans) (target-pos 0))) + (vehicle-controller-method-18 + (-> obj controller) + (-> obj target-acceleration) + (-> obj root transv) + obj + (/ 1.0 (seconds-per-frame)) ) + ((-> obj ai-hook) obj) + (vehicle-method-121 obj) + (vehicle-method-106 obj) + (when (not (logtest? (rigid-body-object-flag in-pursuit) (-> obj flags))) + (if (not (logtest? (-> obj target-flags) (turret-flag aiming))) + (speech-control-method-12 *speech-control* obj (speech-type speech-type-2)) + ) + (go (method-of-object obj active)) + ) + 0 + (none) ) (defmethod vehicle-guard-method-158 vehicle-guard ((obj vehicle-guard)) diff --git a/goal_src/jak2/levels/city/traffic/vehicle/vehicle-rider.gc b/goal_src/jak2/levels/city/traffic/vehicle/vehicle-rider.gc index b44ba2a1b6..f0c03ca3ca 100644 --- a/goal_src/jak2/levels/city/traffic/vehicle/vehicle-rider.gc +++ b/goal_src/jak2/levels/city/traffic/vehicle/vehicle-rider.gc @@ -95,26 +95,24 @@ ) (defmethod vehicle-rider-method-34 vehicle-rider ((obj vehicle-rider)) - (with-pp - (let ((a0-1 (ppointer->process (-> obj parent)))) - (when a0-1 - (+! (-> obj anim-t) (* 41870.223 (-> obj anim-speed) (-> pp clock seconds-per-frame))) - (if (< 65536.0 (-> obj anim-t)) - (+! (-> obj anim-t) -65536.0) - ) - (let* ((f0-5 (vehicle-method-75 a0-1)) - (f0-9 (+ (* 5.0 (- 1.0 f0-5)) (sin (-> obj anim-t)))) - (gp-1 (-> obj skel root-channel 0)) - ) - (set! (-> gp-1 num-func) num-func-identity) - (set! (-> gp-1 frame-num) (ja-aframe f0-9 0)) + (let ((a0-1 (ppointer->process (-> obj parent)))) + (when a0-1 + (+! (-> obj anim-t) (* 41870.223 (-> obj anim-speed) (seconds-per-frame))) + (if (< 65536.0 (-> obj anim-t)) + (+! (-> obj anim-t) -65536.0) ) + (let* ((f0-5 (vehicle-method-75 a0-1)) + (f0-9 (+ (* 5.0 (- 1.0 f0-5)) (sin (-> obj anim-t)))) + (gp-1 (-> obj skel root-channel 0)) + ) + (set! (-> gp-1 num-func) num-func-identity) + (set! (-> gp-1 frame-num) (ja-aframe f0-9 0)) ) ) - (ja-post) - 0 - (none) ) + (ja-post) + 0 + (none) ) (defbehavior vehicle-rider-event-handler vehicle-rider ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) diff --git a/goal_src/jak2/levels/city/traffic/vehicle/vehicle-states.gc b/goal_src/jak2/levels/city/traffic/vehicle/vehicle-states.gc index ea8d62b094..da2da5b245 100644 --- a/goal_src/jak2/levels/city/traffic/vehicle/vehicle-states.gc +++ b/goal_src/jak2/levels/city/traffic/vehicle/vehicle-states.gc @@ -264,7 +264,7 @@ (none) ) :trans (behavior () - (set! (-> self hit-points) (- (-> self hit-points) (* 0.5 (-> self clock seconds-per-frame)))) + (set! (-> self hit-points) (- (-> self hit-points) (* 0.5 (seconds-per-frame)))) (if (and (>= (- (current-time) (-> self state-time)) 1) (< (-> self hit-points) -0.25)) (go-virtual explode) ) diff --git a/goal_src/jak2/levels/city/traffic/vehicle/vehicle.gc b/goal_src/jak2/levels/city/traffic/vehicle/vehicle.gc index fd65a60037..1cac659db2 100644 --- a/goal_src/jak2/levels/city/traffic/vehicle/vehicle.gc +++ b/goal_src/jak2/levels/city/traffic/vehicle/vehicle.gc @@ -189,174 +189,164 @@ ) (defmethod vehicle-method-104 vehicle ((obj vehicle)) - (with-pp - (when (= (-> obj controller traffic sync-mask-8) (ash 1 (logand (-> obj traffic-priority-id) 7))) - (let ((a1-0 (-> obj root trans))) - (set! (-> obj flight-level) (get-height-at-point *traffic-height-map* a1-0)) - ) + (when (= (-> obj controller traffic sync-mask-8) (ash 1 (logand (-> obj traffic-priority-id) 7))) + (let ((a1-0 (-> obj root trans))) + (set! (-> obj flight-level) (get-height-at-point *traffic-height-map* a1-0)) ) - (set! (-> obj target-acceleration y) - (- (* 8.0 (- (-> obj flight-level) (-> obj root trans y))) (-> obj root transv y)) - ) - (vector-v++! (-> obj root transv) (-> obj target-acceleration)) - (vector-v++! (-> obj root trans) (-> obj root transv)) - (let* ((v1-14 (-> obj root transv)) - (f30-0 (sqrtf (+ (* (-> v1-14 x) (-> v1-14 x)) (* (-> v1-14 z) (-> v1-14 z))))) - (s5-0 (new 'stack-no-clear 'vehicle-control-point)) - ) - (when (< 40.96 f30-0) - (vector-float*! (-> s5-0 normal) (-> obj root transv) (/ 1.0 f30-0)) - (quaternion-set! - (the-as quaternion (-> s5-0 local-pos)) - 0.0 - (-> s5-0 normal x) - 0.0 - (+ 1.0 (-> s5-0 normal z)) - ) - (quaternion-normalize! (the-as quaternion (-> s5-0 local-pos))) - (quaternion-rotate-local-z! - (the-as quaternion (-> s5-0 local-pos)) - (the-as quaternion (-> s5-0 local-pos)) - (* -0.08886719 (-> obj controls steering) (fmin 81920.0 f30-0)) - ) - (quaternion-smooth-seek! - (-> obj root quat) - (-> obj root quat) - (the-as quaternion (-> s5-0 local-pos)) - (* 0.00014686584 (-> pp clock seconds-per-frame) f30-0) - ) - ) - ) - 0 - (none) ) + (set! (-> obj target-acceleration y) + (- (* 8.0 (- (-> obj flight-level) (-> obj root trans y))) (-> obj root transv y)) + ) + (vector-v++! (-> obj root transv) (-> obj target-acceleration)) + (vector-v++! (-> obj root trans) (-> obj root transv)) + (let* ((v1-14 (-> obj root transv)) + (f30-0 (sqrtf (+ (* (-> v1-14 x) (-> v1-14 x)) (* (-> v1-14 z) (-> v1-14 z))))) + (s5-0 (new 'stack-no-clear 'vehicle-control-point)) + ) + (when (< 40.96 f30-0) + (vector-float*! (-> s5-0 normal) (-> obj root transv) (/ 1.0 f30-0)) + (quaternion-set! + (the-as quaternion (-> s5-0 local-pos)) + 0.0 + (-> s5-0 normal x) + 0.0 + (+ 1.0 (-> s5-0 normal z)) + ) + (quaternion-normalize! (the-as quaternion (-> s5-0 local-pos))) + (quaternion-rotate-local-z! + (the-as quaternion (-> s5-0 local-pos)) + (the-as quaternion (-> s5-0 local-pos)) + (* -0.08886719 (-> obj controls steering) (fmin 81920.0 f30-0)) + ) + (quaternion-smooth-seek! + (-> obj root quat) + (-> obj root quat) + (the-as quaternion (-> s5-0 local-pos)) + (* 0.00014686584 (seconds-per-frame) f30-0) + ) + ) + ) + 0 + (none) ) (defmethod vehicle-method-93 vehicle ((obj vehicle)) - (with-pp - (let ((s5-0 (new 'stack-no-clear 'matrix))) - (set! (-> s5-0 vector 2 quad) (-> obj rbody state matrix quad 0)) - (set! (-> s5-0 trans quad) (-> obj rbody state matrix vector 2 quad)) - (let ((f28-0 (* (-> obj rbody state ang-velocity y) (vector-length (-> obj rbody state lin-velocity)))) - (f30-0 (-> pp clock seconds-per-frame)) + (let ((s5-0 (new 'stack-no-clear 'matrix))) + (set! (-> s5-0 vector 2 quad) (-> obj rbody state matrix quad 0)) + (set! (-> s5-0 trans quad) (-> obj rbody state matrix vector 2 quad)) + (let ((f28-0 (* (-> obj rbody state ang-velocity y) (vector-length (-> obj rbody state lin-velocity)))) + (f30-0 (seconds-per-frame)) + ) + (when (zero? (-> obj flight-level-index)) + (if (logtest? (-> obj flags) (rigid-body-object-flag riding)) + (vehicle-method-80 obj) ) - (when (zero? (-> obj flight-level-index)) - (if (logtest? (-> obj flags) (rigid-body-object-flag riding)) - (vehicle-method-80 obj) - ) - ) - (vector-! (-> s5-0 vector 1) (-> obj target-acceleration) (-> obj lin-acceleration)) - (let ((f0-3 (* 0.00006 (vector-dot (-> s5-0 trans) (-> s5-0 vector 1)) f30-0))) - (set! (-> s5-0 vector 0 y) (fmax 0.0 (fmin 1.0 (* 20.0 f0-3)))) - (set! (-> s5-0 vector 0 z) (fmax 0.0 (fmin 1.0 (* -40.0 f0-3)))) - (if (= obj *debug-actor*) - (format *stdcon* "delta-throttle ~f~%" f0-3) - ) - ) - (when (logtest? (-> obj flags) (rigid-body-object-flag player-edge-grabbing)) - (set! (-> s5-0 vector 0 y) 0.0) - (set! (-> s5-0 vector 0 z) 1.0) - (logclear! (-> obj flags) (rigid-body-object-flag reverse-gear)) - ) - (let ((f0-7 (* 6.0 f30-0)) - (f4-0 (* 0.00018024445 - (- (vector-dot (-> s5-0 vector 2) (-> obj target-acceleration)) f28-0) - (if (< (-> obj controls throttle) 0.0) - -1.0 - 1.0 - ) - f30-0 - ) - ) - ) - (set! (-> s5-0 vector 0 x) - (fmax -1.0 (fmin 1.0 (+ (-> obj controls steering) (fmax (fmin f4-0 f0-7) (- f0-7))))) - ) - ) ) - (set! (-> s5-0 vector 0 w) 0.0) - (vehicle-method-95 obj (the-as vector (-> s5-0 vector))) - (when (= obj *debug-actor*) - (let ((v1-43 (-> s5-0 vector))) - (format *stdcon* "steer ~f, throttle ~f, brake ~f~%" (-> v1-43 0 x) (-> v1-43 0 y) (-> v1-43 0 z)) - ) - (let ((v1-45 (-> obj controls))) - (format *stdcon* "steer ~f, throttle ~f, brake ~f~%" (-> v1-45 steering) (-> v1-45 throttle) (-> v1-45 brake)) - ) + (vector-! (-> s5-0 vector 1) (-> obj target-acceleration) (-> obj lin-acceleration)) + (let ((f0-3 (* 0.00006 (vector-dot (-> s5-0 trans) (-> s5-0 vector 1)) f30-0))) + (set! (-> s5-0 vector 0 y) (fmax 0.0 (fmin 1.0 (* 20.0 f0-3)))) + (set! (-> s5-0 vector 0 z) (fmax 0.0 (fmin 1.0 (* -40.0 f0-3)))) + (if (= obj *debug-actor*) + (format *stdcon* "delta-throttle ~f~%" f0-3) + ) + ) + (when (logtest? (-> obj flags) (rigid-body-object-flag player-edge-grabbing)) + (set! (-> s5-0 vector 0 y) 0.0) + (set! (-> s5-0 vector 0 z) 1.0) + (logclear! (-> obj flags) (rigid-body-object-flag reverse-gear)) + ) + (let ((f0-7 (* 6.0 f30-0)) + (f4-0 (* 0.00018024445 + (- (vector-dot (-> s5-0 vector 2) (-> obj target-acceleration)) f28-0) + (if (< (-> obj controls throttle) 0.0) + -1.0 + 1.0 + ) + f30-0 + ) + ) + ) + (set! (-> s5-0 vector 0 x) + (fmax -1.0 (fmin 1.0 (+ (-> obj controls steering) (fmax (fmin f4-0 f0-7) (- f0-7))))) + ) + ) + ) + (set! (-> s5-0 vector 0 w) 0.0) + (vehicle-method-95 obj (the-as vector (-> s5-0 vector))) + (when (= obj *debug-actor*) + (let ((v1-43 (-> s5-0 vector))) + (format *stdcon* "steer ~f, throttle ~f, brake ~f~%" (-> v1-43 0 x) (-> v1-43 0 y) (-> v1-43 0 z)) + ) + (let ((v1-45 (-> obj controls))) + (format *stdcon* "steer ~f, throttle ~f, brake ~f~%" (-> v1-45 steering) (-> v1-45 throttle) (-> v1-45 brake)) ) ) - 0 - (none) ) + 0 + (none) ) (defmethod vehicle-method-95 vehicle ((obj vehicle) (arg0 vector)) - (with-pp - (seek! (-> obj controls steering) (-> arg0 x) (* 8.0 (-> pp clock seconds-per-frame))) - (seek! (-> obj controls lean-z) (-> arg0 w) (* 8.0 (-> pp clock seconds-per-frame))) - (logclear! (-> obj flags) (rigid-body-object-flag slide)) - (let ((f0-10 (-> arg0 y)) - (f30-0 (-> arg0 z)) - ) - (set! f30-0 - (cond - ((< 0.0 f0-10) - (logclear! (-> obj flags) (rigid-body-object-flag reverse-gear)) - (when (< 0.0 f30-0) - (set! f30-0 0.25) - (logior! (-> obj flags) (rigid-body-object-flag slide)) - ) - f30-0 + (seek! (-> obj controls steering) (-> arg0 x) (* 8.0 (seconds-per-frame))) + (seek! (-> obj controls lean-z) (-> arg0 w) (* 8.0 (seconds-per-frame))) + (logclear! (-> obj flags) (rigid-body-object-flag slide)) + (let ((f0-10 (-> arg0 y)) + (f30-0 (-> arg0 z)) + ) + (set! f30-0 + (cond + ((< 0.0 f0-10) + (logclear! (-> obj flags) (rigid-body-object-flag reverse-gear)) + (when (< 0.0 f30-0) + (set! f30-0 0.25) + (logior! (-> obj flags) (rigid-body-object-flag slide)) ) - ((< 0.0 f30-0) - (cond - ((logtest? (rigid-body-object-flag reverse-gear) (-> obj flags)) - (let ((f0-11 -0.5) - (f1-5 0.0) - (f2-0 -40960.0) + f30-0 + ) + ((< 0.0 f30-0) + (cond + ((logtest? (rigid-body-object-flag reverse-gear) (-> obj flags)) + (let ((f0-11 -0.5) + (f1-5 0.0) + (f2-0 -40960.0) + ) + (set! f0-10 + (fmax + f0-11 + (fmin f1-5 (* (/ 1.0 f2-0) + f30-0 + (- 8192.0 (vector-dot (-> obj rbody state lin-velocity) (-> obj rbody state matrix vector 2))) + ) + ) + ) ) - (set! f0-10 - (fmax - f0-11 - (fmin - f1-5 - (* (/ 1.0 f2-0) - f30-0 - (- 8192.0 (vector-dot (-> obj rbody state lin-velocity) (-> obj rbody state matrix vector 2))) - ) - ) - ) - ) - ) - 0.0 ) - (else - (let* ((v1-25 (-> obj rbody state lin-velocity)) - (f1-10 (+ (* (-> v1-25 x) (-> v1-25 x)) (* (-> v1-25 z) (-> v1-25 z)))) - (f2-8 8192.0) - ) - (if (< f1-10 (* f2-8 f2-8)) - (logior! (-> obj flags) (rigid-body-object-flag reverse-gear)) - ) - ) - f30-0 + 0.0 + ) + (else + (let* ((v1-25 (-> obj rbody state lin-velocity)) + (f1-10 (+ (* (-> v1-25 x) (-> v1-25 x)) (* (-> v1-25 z) (-> v1-25 z)))) + (f2-8 8192.0) + ) + (if (< f1-10 (* f2-8 f2-8)) + (logior! (-> obj flags) (rigid-body-object-flag reverse-gear)) + ) ) + f30-0 ) ) - (else - (logclear! (-> obj flags) (rigid-body-object-flag reverse-gear)) - f30-0 - ) + ) + (else + (logclear! (-> obj flags) (rigid-body-object-flag reverse-gear)) + f30-0 ) ) - (seek! (-> obj controls throttle) f0-10 (* 4.0 (-> pp clock seconds-per-frame))) - (+! (-> obj controls brake) - (* (- f30-0 (-> obj controls brake)) (fmin 1.0 (* 8.0 (-> pp clock seconds-per-frame)))) ) - ) - 0 - (none) + (seek! (-> obj controls throttle) f0-10 (* 4.0 (seconds-per-frame))) + (+! (-> obj controls brake) (* (- f30-0 (-> obj controls brake)) (fmin 1.0 (* 8.0 (seconds-per-frame))))) ) + 0 + (none) ) (defmethod vehicle-method-94 vehicle ((obj vehicle)) @@ -406,461 +396,447 @@ ) (defmethod vehicle-method-96 vehicle ((obj vehicle)) - (with-pp - (when (and *target* (logtest? (rigid-body-object-flag ignition) (-> obj flags))) - (when (and (logtest? (-> obj flags) (rigid-body-object-flag player-driving)) - (zero? (-> obj root num-riders)) - (or (not *target*) (or (< 32768.0 (vector-vector-distance (-> obj root trans) (-> *target* control trans))) - (focus-test? *target* teleporting) - ) - ) - ) - (set! (-> obj controls throttle) 0.0) - (set! (-> obj controls steering) 0.0) - (set! (-> obj controls lean-z) 0.0) - (mem-copy! (the-as pointer (-> obj prev-controls)) (the-as pointer (-> obj controls)) 16) - ) - ) - (cond - ((zero? (-> obj crash-level)) - (seek! (-> obj force-scale) 1.0 (-> pp clock seconds-per-frame)) - ) - ((< (-> obj crash-level) 3) - (when (>= (- (current-time) (-> obj crash-time)) (the-as time-frame (-> obj crash-duration))) - (if (or (>= (-> obj rbody state matrix vector 1 y) (cos 18204.445)) - (>= (- (current-time) (-> obj crash-time)) (seconds 3)) - ) - (vehicle-method-77 obj) - ) - ) - ) - ) - (set! (-> obj force-level) (-> obj crash-level)) - (cond - ((>= (-> obj hit-points) 0.9) - (set! (-> obj power-fluctuation-factor) 0.01) - ) - ((>= (-> obj hit-points) 0.75) - (set! (-> obj power-fluctuation-factor) 0.02) - ) - ((>= (-> obj hit-points) 0.5) - (set! (-> obj power-fluctuation-factor) 0.04) - ) - ((>= (-> obj hit-points) 0.3) - (set! (-> obj power-fluctuation-factor) 0.08) - ) - ((>= (-> obj hit-points) 0.15) - (set! (-> obj power-fluctuation-factor) 0.16) - ) - ((>= (-> obj hit-points) 0.05) - (set! (-> obj power-fluctuation-factor) 0.32) - ) - (else - (set! (-> obj power-fluctuation-factor) 0.7) - ) - ) - (let ((f1-6 0.0)) - (when (logtest? (rigid-body-object-flag ignition) (-> obj flags)) - (let ((f0-23 (- 1.0 (* (rand-vu) (-> obj power-fluctuation-factor))))) - (set! f1-6 (* f0-23 f0-23)) - ) - (if (not (logtest? (-> obj flags) (rigid-body-object-flag riding))) - (set! f1-6 (* 0.5 f1-6)) - ) - ) - (+! (-> obj power-level) - (* (- f1-6 (-> obj power-level)) - (fmin 1.0 (* (+ 1.0 (* 50.0 (-> obj power-fluctuation-factor))) (-> pp clock seconds-per-frame))) - ) - ) - ) - (when (logtest? (rigid-body-object-flag turbo-boost) (-> obj flags)) - (if (or (>= (- (current-time) (-> obj turbo-boost-time)) (the-as time-frame (-> obj turbo-boost-duration))) - (and (>= (- (current-time) (-> obj turbo-boost-time)) (seconds 0.1)) (>= (-> obj controls brake) 0.75)) - ) - (logclear! (-> obj flags) (rigid-body-object-flag turbo-boost)) - ) - ) - (cond - ((logtest? (rigid-body-object-flag ignition) (-> obj flags)) - (-> obj controls throttle) - (let* ((f1-13 - (fmax - 0.0 - (fmin 1.0 (/ (* (vector-length (-> obj rbody state lin-velocity)) (-> obj info engine-intake-factor)) - (-> obj info max-xz-speed) - ) - ) - ) - ) - (f1-16 (fmin (-> obj controls throttle) (* 0.83333 (+ 0.5 f1-13)))) - ) - 0 - (if (logtest? (rigid-body-object-flag turbo-boost) (-> obj flags)) - (set! f1-16 (+ 1.0 (* (-> obj turbo-boost-factor) (-> obj info turbo-boost-factor)))) - ) - (if (< (-> obj engine-thrust) f1-16) - (+! (-> obj engine-thrust) - (* (- f1-16 (-> obj engine-thrust)) - (fmin 1.0 (* (-> obj info engine-response-rate) (-> pp clock seconds-per-frame))) - ) - ) - (seek! (-> obj engine-thrust) f1-16 (-> pp clock seconds-per-frame)) - ) - ) - ) - (else - (set! (-> obj engine-thrust) 0.0) - ) - ) - (set! (-> obj engine-power-factor) (fabs (-> obj engine-thrust))) - (if (and (logtest? (rigid-body-object-flag jump) (-> obj flags)) (< 0.0 (-> obj jump-time))) - (set! (-> obj jump-thrust) 1.0) - (set! (-> obj jump-thrust) 0.0) - ) - (cond - ((logtest? (rigid-body-object-flag jump) (-> obj flags)) - (seek! (-> obj jump-time) 0.0 (-> pp clock seconds-per-frame)) - ) - ((not (logtest? (-> obj flags) (rigid-body-object-flag in-air))) - (if (< 0.0 (-> obj jump-time)) - (logclear! (-> obj flags) (rigid-body-object-flag jump-sound)) - ) - (seek! (-> obj jump-time) 0.1 (* 0.5 (-> pp clock seconds-per-frame))) - ) - ) - (when (and (logtest? (rigid-body-object-flag jump) (-> obj flags)) - (not (logtest? (-> obj flags) (rigid-body-object-flag in-air))) - (logtest? (-> obj vehicle-jkhn1b23jn1) 1024) - ) - (logior! (-> obj flags) (rigid-body-object-flag hard-turn)) - (set! (-> obj turn-time) (current-time)) - ) - (if (or (not (logtest? (rigid-body-object-flag jump) (-> obj flags))) - (>= (- (current-time) (-> obj turn-time)) (seconds 1)) - ) - (logclear! (-> obj flags) (rigid-body-object-flag hard-turn)) - ) - (if (logtest? (-> obj flags) (rigid-body-object-flag on-ground on-flight-level)) - (set! (-> obj air-time) (current-time)) - ) - (when (logtest? (rigid-body-object-flag flight-level-transition) (-> obj flags)) - (if (or (and (> (-> obj flight-level-index) 0) - (< (fabs (- (-> obj flight-level) (-> obj rbody state position y))) 8192.0) - (< (fabs (-> obj rbody state lin-velocity y)) 8192.0) + (when (and *target* (logtest? (rigid-body-object-flag ignition) (-> obj flags))) + (when (and (logtest? (-> obj flags) (rigid-body-object-flag player-driving)) + (zero? (-> obj root num-riders)) + (or (not *target*) (or (< 32768.0 (vector-vector-distance (-> obj root trans) (-> *target* control trans))) + (focus-test? *target* teleporting) + ) ) - (and (zero? (-> obj flight-level-index)) (logtest? (-> obj flags) (rigid-body-object-flag on-ground))) - ) - (vehicle-method-79 obj) - ) - (when (and (> (-> obj flight-level-index) 0) (>= (- (current-time) (-> obj transition-time)) (seconds 2))) - (vehicle-method-79 obj) - (vehicle-method-83 obj) - ) - ) - (when (and (logtest? (rigid-body-object-flag flight-level-transition-ending) (-> obj flags)) - (>= (- (current-time) (-> obj transition-end-time)) (seconds 1)) ) - (logclear! (-> obj flags) (rigid-body-object-flag flight-level-transition-ending)) - (vehicle-method-92 obj) + (set! (-> obj controls throttle) 0.0) + (set! (-> obj controls steering) 0.0) + (set! (-> obj controls lean-z) 0.0) + (mem-copy! (the-as pointer (-> obj prev-controls)) (the-as pointer (-> obj controls)) 16) ) - 0 - (none) ) + (cond + ((zero? (-> obj crash-level)) + (seek! (-> obj force-scale) 1.0 (seconds-per-frame)) + ) + ((< (-> obj crash-level) 3) + (when (>= (- (current-time) (-> obj crash-time)) (the-as time-frame (-> obj crash-duration))) + (if (or (>= (-> obj rbody state matrix vector 1 y) (cos 18204.445)) + (>= (- (current-time) (-> obj crash-time)) (seconds 3)) + ) + (vehicle-method-77 obj) + ) + ) + ) + ) + (set! (-> obj force-level) (-> obj crash-level)) + (cond + ((>= (-> obj hit-points) 0.9) + (set! (-> obj power-fluctuation-factor) 0.01) + ) + ((>= (-> obj hit-points) 0.75) + (set! (-> obj power-fluctuation-factor) 0.02) + ) + ((>= (-> obj hit-points) 0.5) + (set! (-> obj power-fluctuation-factor) 0.04) + ) + ((>= (-> obj hit-points) 0.3) + (set! (-> obj power-fluctuation-factor) 0.08) + ) + ((>= (-> obj hit-points) 0.15) + (set! (-> obj power-fluctuation-factor) 0.16) + ) + ((>= (-> obj hit-points) 0.05) + (set! (-> obj power-fluctuation-factor) 0.32) + ) + (else + (set! (-> obj power-fluctuation-factor) 0.7) + ) + ) + (let ((f1-6 0.0)) + (when (logtest? (rigid-body-object-flag ignition) (-> obj flags)) + (let ((f0-23 (- 1.0 (* (rand-vu) (-> obj power-fluctuation-factor))))) + (set! f1-6 (* f0-23 f0-23)) + ) + (if (not (logtest? (-> obj flags) (rigid-body-object-flag riding))) + (set! f1-6 (* 0.5 f1-6)) + ) + ) + (+! (-> obj power-level) + (* (- f1-6 (-> obj power-level)) + (fmin 1.0 (* (+ 1.0 (* 50.0 (-> obj power-fluctuation-factor))) (seconds-per-frame))) + ) + ) + ) + (when (logtest? (rigid-body-object-flag turbo-boost) (-> obj flags)) + (if (or (>= (- (current-time) (-> obj turbo-boost-time)) (the-as time-frame (-> obj turbo-boost-duration))) + (and (>= (- (current-time) (-> obj turbo-boost-time)) (seconds 0.1)) (>= (-> obj controls brake) 0.75)) + ) + (logclear! (-> obj flags) (rigid-body-object-flag turbo-boost)) + ) + ) + (cond + ((logtest? (rigid-body-object-flag ignition) (-> obj flags)) + (-> obj controls throttle) + (let* ((f1-13 + (fmax + 0.0 + (fmin 1.0 (/ (* (vector-length (-> obj rbody state lin-velocity)) (-> obj info engine-intake-factor)) + (-> obj info max-xz-speed) + ) + ) + ) + ) + (f1-16 (fmin (-> obj controls throttle) (* 0.83333 (+ 0.5 f1-13)))) + ) + 0 + (if (logtest? (rigid-body-object-flag turbo-boost) (-> obj flags)) + (set! f1-16 (+ 1.0 (* (-> obj turbo-boost-factor) (-> obj info turbo-boost-factor)))) + ) + (if (< (-> obj engine-thrust) f1-16) + (+! (-> obj engine-thrust) + (* (- f1-16 (-> obj engine-thrust)) (fmin 1.0 (* (-> obj info engine-response-rate) (seconds-per-frame)))) + ) + (seek! (-> obj engine-thrust) f1-16 (seconds-per-frame)) + ) + ) + ) + (else + (set! (-> obj engine-thrust) 0.0) + ) + ) + (set! (-> obj engine-power-factor) (fabs (-> obj engine-thrust))) + (if (and (logtest? (rigid-body-object-flag jump) (-> obj flags)) (< 0.0 (-> obj jump-time))) + (set! (-> obj jump-thrust) 1.0) + (set! (-> obj jump-thrust) 0.0) + ) + (cond + ((logtest? (rigid-body-object-flag jump) (-> obj flags)) + (seek! (-> obj jump-time) 0.0 (seconds-per-frame)) + ) + ((not (logtest? (-> obj flags) (rigid-body-object-flag in-air))) + (if (< 0.0 (-> obj jump-time)) + (logclear! (-> obj flags) (rigid-body-object-flag jump-sound)) + ) + (seek! (-> obj jump-time) 0.1 (* 0.5 (seconds-per-frame))) + ) + ) + (when (and (logtest? (rigid-body-object-flag jump) (-> obj flags)) + (not (logtest? (-> obj flags) (rigid-body-object-flag in-air))) + (logtest? (-> obj vehicle-jkhn1b23jn1) 1024) + ) + (logior! (-> obj flags) (rigid-body-object-flag hard-turn)) + (set! (-> obj turn-time) (current-time)) + ) + (if (or (not (logtest? (rigid-body-object-flag jump) (-> obj flags))) + (>= (- (current-time) (-> obj turn-time)) (seconds 1)) + ) + (logclear! (-> obj flags) (rigid-body-object-flag hard-turn)) + ) + (if (logtest? (-> obj flags) (rigid-body-object-flag on-ground on-flight-level)) + (set! (-> obj air-time) (current-time)) + ) + (when (logtest? (rigid-body-object-flag flight-level-transition) (-> obj flags)) + (if (or (and (> (-> obj flight-level-index) 0) + (< (fabs (- (-> obj flight-level) (-> obj rbody state position y))) 8192.0) + (< (fabs (-> obj rbody state lin-velocity y)) 8192.0) + ) + (and (zero? (-> obj flight-level-index)) (logtest? (-> obj flags) (rigid-body-object-flag on-ground))) + ) + (vehicle-method-79 obj) + ) + (when (and (> (-> obj flight-level-index) 0) (>= (- (current-time) (-> obj transition-time)) (seconds 2))) + (vehicle-method-79 obj) + (vehicle-method-83 obj) + ) + ) + (when (and (logtest? (rigid-body-object-flag flight-level-transition-ending) (-> obj flags)) + (>= (- (current-time) (-> obj transition-end-time)) (seconds 1)) + ) + (logclear! (-> obj flags) (rigid-body-object-flag flight-level-transition-ending)) + (vehicle-method-92 obj) + ) + 0 + (none) ) (defmethod vehicle-method-97 vehicle ((obj vehicle)) (local-vars (v1-88 float) (v1-98 float)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (when (logtest? (rigid-body-object-flag camera) (-> obj flags)) - (let ((f0-0 -4096000.0)) - (dotimes (v1-4 (-> *level* length)) - (let ((a0-5 (-> *level* level v1-4))) - (when (= (-> a0-5 status) 'active) - (let ((a0-7 (-> a0-5 bsp city-level-info))) - (when (nonzero? a0-7) - (let ((f1-0 (the-as float (-> a0-7 camera-ceiling)))) - (if (= (the-as meters f1-0) 0.0) - (set! f1-0 40960000.0) - ) - (set! f0-0 (fmax f0-0 f1-0)) - ) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (when (logtest? (rigid-body-object-flag camera) (-> obj flags)) + (let ((f0-0 -4096000.0)) + (dotimes (v1-4 (-> *level* length)) + (let ((a0-5 (-> *level* level v1-4))) + (when (= (-> a0-5 status) 'active) + (let ((a0-7 (-> a0-5 bsp city-level-info))) + (when (nonzero? a0-7) + (let ((f1-0 (the-as float (-> a0-7 camera-ceiling)))) + (if (= (the-as meters f1-0) 0.0) + (set! f1-0 40960000.0) + ) + (set! f0-0 (fmax f0-0 f1-0)) ) ) ) ) ) - (set-setting! 'string-camera-ceiling 'abs f0-0 0) + ) + (set-setting! 'string-camera-ceiling 'abs f0-0 0) + ) + (cond + ((logtest? (-> obj flags) (rigid-body-object-flag in-air)) + (when (or (< 55296.0 (-> obj rbody state lin-velocity y)) (>= (- (current-time) (-> obj air-time)) (seconds 0.75))) + (set-setting! 'extra-follow-height 'abs (meters -4) 0) + (send-event *camera* 'set-max-angle-offset (-> obj info camera-air-max-angle-offset)) + ) + ) + (else + (remove-setting! 'extra-follow-height) + (send-event *camera* 'set-max-angle-offset (-> obj info camera-normal-max-angle-offset)) + ) + ) + (let ((f0-5 (vector-dot (-> obj rbody state lin-velocity) (-> obj rbody state matrix vector 2)))) + (cond + ((= (-> obj crash-level) 2) + (vehicle-method-90 obj) + ) + ((< f0-5 (-> obj info camera-max-lookaround-speed)) + (vehicle-method-90 obj) + ) + ((< (+ 4096.0 (-> obj info camera-max-lookaround-speed)) f0-5) + (vehicle-method-89 obj) + ) + ) + ) + (when (not (logtest? (rigid-body-object-flag flight-level-transition) (-> obj flags))) + (let* ((f0-6 1.0) + (v1-57 (-> obj rbody state lin-velocity)) + (f0-7 + (fmin + f0-6 + (/ (sqrtf (+ (* (-> v1-57 x) (-> v1-57 x)) (* (-> v1-57 z) (-> v1-57 z)))) (-> obj info max-xz-speed)) + ) + ) + ) + (seek! (-> obj cam-speed-interp) f0-7 (* 0.1 (seconds-per-frame))) + ) + (let ((f30-0 (-> obj cam-speed-interp))) + (if #f + (set! f30-0 + (fmax 0.0 (fmin 1.0 (analog-input (the-as int (-> *cpad-list* cpads 1 righty)) 128.0 48.0 110.0 -1.0))) + ) + ) + (let ((f0-15 (lerp-scale (-> obj info camera-min-fov) (-> obj info camera-max-fov) f30-0 0.0 1.0))) + (set-setting! 'fov 'abs f0-15 0) + ) + (let ((f30-2 (lerp-scale 1.0 0.6 f30-0 0.0 1.0))) + (set-setting! 'string-min-length 'abs (* f30-2 (-> obj info camera-string-min-length)) 0) + (set-setting! 'string-max-length 'abs (* f30-2 (-> obj info camera-string-max-length)) 0) + ) + ) + ) + (when *target* + (let ((v1-83 (-> *target* draw shadow-ctrl settings shadow-dir quad))) + (set! (-> obj draw shadow-ctrl settings shadow-dir quad) v1-83) ) (cond - ((logtest? (-> obj flags) (rigid-body-object-flag in-air)) - (when (or (< 55296.0 (-> obj rbody state lin-velocity y)) (>= (- (current-time) (-> obj air-time)) (seconds 0.75))) - (set-setting! 'extra-follow-height 'abs (meters -4) 0) - (send-event *camera* 'set-max-angle-offset (-> obj info camera-air-max-angle-offset)) + ((logtest? (rigid-body-object-flag camera-rapid-track-mode) (-> obj flags)) + (.lvf vf1 (&-> (-> obj root transv) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-88 vf1) + (let ((f0-20 v1-88) + (f1-13 122880.0) + ) + (if (< f0-20 (* f1-13 f1-13)) + (vehicle-method-92 obj) + ) ) ) (else - (remove-setting! 'extra-follow-height) - (send-event *camera* 'set-max-angle-offset (-> obj info camera-normal-max-angle-offset)) - ) - ) - (let ((f0-5 (vector-dot (-> obj rbody state lin-velocity) (-> obj rbody state matrix vector 2)))) - (cond - ((= (-> obj crash-level) 2) - (vehicle-method-90 obj) - ) - ((< f0-5 (-> obj info camera-max-lookaround-speed)) - (vehicle-method-90 obj) - ) - ((< (+ 4096.0 (-> obj info camera-max-lookaround-speed)) f0-5) - (vehicle-method-89 obj) - ) - ) - ) - (when (not (logtest? (rigid-body-object-flag flight-level-transition) (-> obj flags))) - (let* ((f0-6 1.0) - (v1-57 (-> obj rbody state lin-velocity)) - (f0-7 - (fmin - f0-6 - (/ (sqrtf (+ (* (-> v1-57 x) (-> v1-57 x)) (* (-> v1-57 z) (-> v1-57 z)))) (-> obj info max-xz-speed)) - ) + (let* ((f0-21 143360.0) + (f0-23 (* f0-21 f0-21)) ) - ) - (seek! (-> obj cam-speed-interp) f0-7 (* 0.1 (-> pp clock seconds-per-frame))) + (.lvf vf1 (&-> (-> obj root transv) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-98 vf1) + (if (< f0-23 v1-98) + (vehicle-method-91 obj) + ) + ) ) - (let ((f30-0 (-> obj cam-speed-interp))) - (if #f - (set! f30-0 - (fmax 0.0 (fmin 1.0 (analog-input (the-as int (-> *cpad-list* cpads 1 righty)) 128.0 48.0 110.0 -1.0))) - ) + ) + (let ((v1-102 (math-camera-matrix)) + (a0-39 (new 'stack-no-clear 'vehicle-control-point)) + ) + (set! (-> a0-39 normal quad) (-> *target* alt-cam-pos quad)) + (vector-! (-> a0-39 local-pos) (-> a0-39 normal) (-> v1-102 trans)) + (let ((f0-26 (/ (vector-dot (-> a0-39 local-pos) (-> v1-102 vector 1)) + (vector-dot (-> a0-39 local-pos) (-> v1-102 vector 2)) + ) + ) ) - (let ((f0-15 (lerp-scale (-> obj info camera-min-fov) (-> obj info camera-max-fov) f30-0 0.0 1.0))) - (set-setting! 'fov 'abs f0-15 0) - ) - (let ((f30-2 (lerp-scale 1.0 0.6 f30-0 0.0 1.0))) - (set-setting! 'string-min-length 'abs (* f30-2 (-> obj info camera-string-min-length)) 0) - (set-setting! 'string-max-length 'abs (* f30-2 (-> obj info camera-string-max-length)) 0) - ) - ) - ) - (when *target* - (let ((v1-83 (-> *target* draw shadow-ctrl settings shadow-dir quad))) - (set! (-> obj draw shadow-ctrl settings shadow-dir quad) v1-83) - ) - (cond - ((logtest? (rigid-body-object-flag camera-rapid-track-mode) (-> obj flags)) - (.lvf vf1 (&-> (-> obj root transv) quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-88 vf1) - (let ((f0-20 v1-88) - (f1-13 122880.0) - ) - (if (< f0-20 (* f1-13 f1-13)) - (vehicle-method-92 obj) - ) + (cond + ((and (< f0-26 0.15) (< -0.5 f0-26)) + (set-setting! 'vertical-follow-matches-camera #f 0.0 0) ) - ) - (else - (let* ((f0-21 143360.0) - (f0-23 (* f0-21 f0-21)) - ) - (.lvf vf1 (&-> (-> obj root transv) quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-98 vf1) - (if (< f0-23 v1-98) - (vehicle-method-91 obj) + (else + (if (< (fabs (-> obj root transv y)) 8192.0) + (remove-setting! 'vertical-follow-matches-camera) ) ) ) ) - (let ((v1-102 (math-camera-matrix)) - (a0-39 (new 'stack-no-clear 'vehicle-control-point)) - ) - (set! (-> a0-39 normal quad) (-> *target* alt-cam-pos quad)) - (vector-! (-> a0-39 local-pos) (-> a0-39 normal) (-> v1-102 trans)) - (let ((f0-26 (/ (vector-dot (-> a0-39 local-pos) (-> v1-102 vector 1)) - (vector-dot (-> a0-39 local-pos) (-> v1-102 vector 2)) - ) - ) - ) - (cond - ((and (< f0-26 0.15) (< -0.5 f0-26)) - (set-setting! 'vertical-follow-matches-camera #f 0.0 0) - ) - (else - (if (< (fabs (-> obj root transv y)) 8192.0) - (remove-setting! 'vertical-follow-matches-camera) - ) - ) - ) - ) - ) ) - 0 ) 0 - (none) ) + 0 + (none) ) ) (defmethod vehicle-method-120 vehicle ((obj vehicle)) - (with-pp - (let ((s5-0 (-> obj draw shadow-ctrl))) - (when (!= *vehicle-shadow-control-disabled* s5-0) - (let ((f30-0 (vector-vector-xz-distance (camera-pos) (-> obj root trans)))) - (cond - ((< 245760.0 f30-0) - (logior! (-> s5-0 settings flags) (shadow-flags disable-draw)) - 0 - (set! (-> obj draw bounds w) (-> obj bound-radius)) - ) - (else - (let ((s4-1 (-> obj root))) - (when (or (logtest? (-> s5-0 settings flags) (shadow-flags disable-draw)) - (= (-> obj controller traffic sync-mask-8) (ash 1 (logand (-> obj traffic-priority-id) 7))) - ) - (let ((s3-0 (new 'stack-no-clear 'collide-query))) - (logclear! (-> s4-1 status) (collide-status on-ground)) - (cond - ((above-ground? s4-1 s3-0 (-> s4-1 trans) (collide-spec backgnd) 0.0 102400.0 1024.0) - (set! (-> s4-1 gspot-pos quad) (-> s4-1 trans quad)) - (set! (-> s4-1 gspot-pos y) (-> s3-0 best-other-tri intersect y)) - (set! (-> s4-1 gspot-normal quad) (-> s3-0 best-other-tri normal quad)) - (set! (-> s4-1 ground-pat) (-> s3-0 best-other-tri pat)) - (when (logtest? (-> s5-0 settings flags) (shadow-flags disable-draw)) - (set! (-> s5-0 settings top-plane w) (- (-> s5-0 settings center y) (-> obj root gspot-pos y))) - (set! (-> s5-0 settings bot-plane w) (- (-> s5-0 settings center y) (-> obj root gspot-pos y))) - ) - (let ((v1-29 s5-0)) - (logclear! (-> v1-29 settings flags) (shadow-flags disable-draw)) - ) - 0 - ) - (else - (let ((v1-31 s5-0)) - (logior! (-> v1-31 settings flags) (shadow-flags disable-draw)) - ) - 0 + (let ((s5-0 (-> obj draw shadow-ctrl))) + (when (!= *vehicle-shadow-control-disabled* s5-0) + (let ((f30-0 (vector-vector-xz-distance (camera-pos) (-> obj root trans)))) + (cond + ((< 245760.0 f30-0) + (logior! (-> s5-0 settings flags) (shadow-flags disable-draw)) + 0 + (set! (-> obj draw bounds w) (-> obj bound-radius)) + ) + (else + (let ((s4-1 (-> obj root))) + (when (or (logtest? (-> s5-0 settings flags) (shadow-flags disable-draw)) + (= (-> obj controller traffic sync-mask-8) (ash 1 (logand (-> obj traffic-priority-id) 7))) ) + (let ((s3-0 (new 'stack-no-clear 'collide-query))) + (logclear! (-> s4-1 status) (collide-status on-ground)) + (cond + ((above-ground? s4-1 s3-0 (-> s4-1 trans) (collide-spec backgnd) 0.0 102400.0 1024.0) + (set! (-> s4-1 gspot-pos quad) (-> s4-1 trans quad)) + (set! (-> s4-1 gspot-pos y) (-> s3-0 best-other-tri intersect y)) + (set! (-> s4-1 gspot-normal quad) (-> s3-0 best-other-tri normal quad)) + (set! (-> s4-1 ground-pat) (-> s3-0 best-other-tri pat)) + (when (logtest? (-> s5-0 settings flags) (shadow-flags disable-draw)) + (set! (-> s5-0 settings top-plane w) (- (-> s5-0 settings center y) (-> obj root gspot-pos y))) + (set! (-> s5-0 settings bot-plane w) (- (-> s5-0 settings center y) (-> obj root gspot-pos y))) + ) + (let ((v1-29 s5-0)) + (logclear! (-> v1-29 settings flags) (shadow-flags disable-draw)) + ) + 0 + ) + (else + (let ((v1-31 s5-0)) + (logior! (-> v1-31 settings flags) (shadow-flags disable-draw)) + ) + 0 ) ) ) ) - (set! (-> obj draw bounds w) (lerp-scale - (- (-> s5-0 settings center y) (-> obj root gspot-pos y)) - (-> obj bound-radius) - f30-0 - 81920.0 - 122880.0 - ) - ) - (if (< (-> obj draw bounds w) (-> obj bound-radius)) - (set! (-> obj draw bounds w) (-> obj bound-radius)) - ) - (let* ((f0-13 (lerp-scale 0.0 1.0 f30-0 245760.0 40960.0)) - (f30-1 (* 4096.0 (+ 5.0 (* 5.0 (- 1.0 (-> obj root gspot-normal y)))))) - (f28-0 (- (-> s5-0 settings center y) (-> obj root gspot-pos y))) - (f0-16 (fmax 0.01 (+ (* -2.0 f0-13 f0-13 f0-13) (* 3.0 f0-13 f0-13)))) - ) - (set! (-> s5-0 settings shadow-dir w) (+ 20480.0 (* 409600.0 f0-16) f28-0)) - (let ((f26-0 (+ 0.5 f0-16))) - (seek! - (-> s5-0 settings top-plane w) - (+ f28-0 (* f26-0 (- f30-1))) - (* 81920.0 (-> pp clock seconds-per-frame)) - ) - (seek! (-> s5-0 settings bot-plane w) (+ f28-0 (* f26-0 f30-1)) (* 81920.0 (-> pp clock seconds-per-frame))) + ) + (set! (-> obj draw bounds w) (lerp-scale + (- (-> s5-0 settings center y) (-> obj root gspot-pos y)) + (-> obj bound-radius) + f30-0 + 81920.0 + 122880.0 + ) ) + (if (< (-> obj draw bounds w) (-> obj bound-radius)) + (set! (-> obj draw bounds w) (-> obj bound-radius)) + ) + (let* ((f0-13 (lerp-scale 0.0 1.0 f30-0 245760.0 40960.0)) + (f30-1 (* 4096.0 (+ 5.0 (* 5.0 (- 1.0 (-> obj root gspot-normal y)))))) + (f28-0 (- (-> s5-0 settings center y) (-> obj root gspot-pos y))) + (f0-16 (fmax 0.01 (+ (* -2.0 f0-13 f0-13 f0-13) (* 3.0 f0-13 f0-13)))) + ) + (set! (-> s5-0 settings shadow-dir w) (+ 20480.0 (* 409600.0 f0-16) f28-0)) + (let ((f26-0 (+ 0.5 f0-16))) + (seek! (-> s5-0 settings top-plane w) (+ f28-0 (* f26-0 (- f30-1))) (* 81920.0 (seconds-per-frame))) + (seek! (-> s5-0 settings bot-plane w) (+ f28-0 (* f26-0 f30-1)) (* 81920.0 (seconds-per-frame))) ) ) ) ) ) ) - (set! (-> obj vehicle-jkhn1b23jn1) (the-as int (-> obj flags))) - (ja-post) - 0 - (none) ) + (set! (-> obj vehicle-jkhn1b23jn1) (the-as int (-> obj flags))) + (ja-post) + 0 + (none) ) (defmethod rigid-body-object-method-51 vehicle ((obj vehicle)) - (with-pp - (let ((s5-0 (new 'stack-no-clear 'collide-query))) - (let ((f30-0 -4096000.0)) - (set! (-> s5-0 start-pos quad) (-> obj rbody state position quad)) - (vector-float*! (-> s5-0 move-dist) (-> obj rbody state lin-velocity) (-> pp clock seconds-per-frame)) - (let ((v1-4 s5-0)) - (set! (-> v1-4 radius) (+ 4096.0 (-> obj root root-prim local-sphere w))) - (set! (-> v1-4 collide-with) (collide-spec - backgnd - crate - civilian - enemy - obstacle - vehicle-sphere - hit-by-player-list - hit-by-others-list - collectable - blocking-plane - pusher - vehicle-mesh-probeable - ) - ) - (set! (-> v1-4 ignore-process0) obj) - (set! (-> v1-4 ignore-process1) #f) - (set! (-> v1-4 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nopilot #x1)) - (set! (-> v1-4 action-mask) (collide-action solid)) - ) - (if (focus-test? obj dead) - (set! (-> s5-0 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nopilot #x1 :probe #x1)) - ) - (if (logtest? (-> obj flags) (rigid-body-object-flag player-touching)) - (logclear! (-> s5-0 collide-with) (collide-spec jak player-list)) - ) - (let ((s4-0 (new 'stack-no-clear 'water-info))) - (water-info-init! (-> obj root) s4-0 (collide-action solid semi-solid)) - (if (and (logtest? (-> s4-0 flags) (water-flags active)) (logtest? (water-flags over-water) (-> s4-0 flags))) - (set! f30-0 (-> s4-0 base-height)) + (let ((s5-0 (new 'stack-no-clear 'collide-query))) + (let ((f30-0 -4096000.0)) + (set! (-> s5-0 start-pos quad) (-> obj rbody state position quad)) + (vector-float*! (-> s5-0 move-dist) (-> obj rbody state lin-velocity) (seconds-per-frame)) + (let ((v1-4 s5-0)) + (set! (-> v1-4 radius) (+ 4096.0 (-> obj root root-prim local-sphere w))) + (set! (-> v1-4 collide-with) (collide-spec + backgnd + crate + civilian + enemy + obstacle + vehicle-sphere + hit-by-player-list + hit-by-others-list + collectable + blocking-plane + pusher + vehicle-mesh-probeable + ) ) + (set! (-> v1-4 ignore-process0) obj) + (set! (-> v1-4 ignore-process1) #f) + (set! (-> v1-4 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nopilot #x1)) + (set! (-> v1-4 action-mask) (collide-action solid)) + ) + (if (focus-test? obj dead) + (set! (-> s5-0 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nopilot #x1 :probe #x1)) ) - (set! (-> obj water-height) f30-0) - (when (< (- (+ (-> s5-0 start-pos y) (fmin 0.0 (-> s5-0 move-dist y))) (-> s5-0 radius)) f30-0) - (let ((v1-23 - (new 'static 'water-control :flags (water-flags active swim-ground can-ground over-water) :joint-index 3) - ) - ) - (logior! (-> s5-0 collide-with) (collide-spec water)) - (set! (-> v1-23 height) f30-0) - (set! (-> v1-23 collide-height) f30-0) - (set! (-> obj water) v1-23) + (if (logtest? (-> obj flags) (rigid-body-object-flag player-touching)) + (logclear! (-> s5-0 collide-with) (collide-spec jak player-list)) + ) + (let ((s4-0 (new 'stack-no-clear 'water-info))) + (water-info-init! (-> obj root) s4-0 (collide-action solid semi-solid)) + (if (and (logtest? (-> s4-0 flags) (water-flags active)) (logtest? (water-flags over-water) (-> s4-0 flags))) + (set! f30-0 (-> s4-0 base-height)) ) + ) + (set! (-> obj water-height) f30-0) + (when (< (- (+ (-> s5-0 start-pos y) (fmin 0.0 (-> s5-0 move-dist y))) (-> s5-0 radius)) f30-0) + (let ((v1-23 + (new 'static 'water-control :flags (water-flags active swim-ground can-ground over-water) :joint-index 3) + ) + ) + (logior! (-> s5-0 collide-with) (collide-spec water)) + (set! (-> v1-23 height) f30-0) + (set! (-> v1-23 collide-height) f30-0) + (set! (-> obj water) v1-23) ) ) - (fill-using-line-sphere *collide-cache* s5-0) ) - (set! (-> obj water) (the-as water-control 0)) - 0 - (rigid-body-control-method-10 (-> obj rbody) obj (-> obj rbody state time-remaining) (-> obj max-time-step)) - 0 - (none) + (fill-using-line-sphere *collide-cache* s5-0) ) + (set! (-> obj water) (the-as water-control 0)) + 0 + (rigid-body-control-method-10 (-> obj rbody) obj (-> obj rbody state time-remaining) (-> obj max-time-step)) + 0 + (none) ) (defmethod rigid-body-object-method-52 vehicle ((obj vehicle)) @@ -958,7 +934,7 @@ (if (logtest? (rigid-body-object-flag nav-spheres) (-> obj flags)) (vehicle-method-143 obj) ) - (seek! (-> obj scrape-sound-envelope) 0.0 (* 2.0 (-> pp clock seconds-per-frame))) + (seek! (-> obj scrape-sound-envelope) 0.0 (* 2.0 (seconds-per-frame))) (mem-copy! (the-as pointer (-> obj prev-controls)) (the-as pointer (-> obj controls)) 16) (logclear! (-> obj flags) (rigid-body-object-flag player-impulse-force player-contact-force jump)) 0 @@ -1179,164 +1155,162 @@ (defmethod vehicle-method-122 vehicle ((obj vehicle)) (local-vars (a0-23 int) (a0-25 int) (a0-35 int) (a0-37 int) (a0-40 int) (a0-42 int)) - (with-pp - (let* ((v1-1 (-> *perf-stats* data 37)) - (a0-1 (-> v1-1 ctrl)) - ) - (+! (-> v1-1 count) 1) - (b! (zero? a0-1) cfg-2 :delay (nop!)) - (.mtc0 Perf 0) - (.sync.l) - (.sync.p) - (.mtpc pcr0 0) - (.mtpc pcr1 0) - (.sync.l) - (.sync.p) - (.mtc0 Perf a0-1) - ) + (let* ((v1-1 (-> *perf-stats* data 37)) + (a0-1 (-> v1-1 ctrl)) + ) + (+! (-> v1-1 count) 1) + (b! (zero? a0-1) cfg-2 :delay (nop!)) + (.mtc0 Perf 0) (.sync.l) (.sync.p) - (label cfg-2) - 0 - (set! (-> obj camera-dist2) (vector-vector-distance-squared (-> obj root trans) (camera-pos))) - (set! (-> obj player-dist2) (vector-vector-distance-squared (-> obj root trans) (target-pos 0))) - (vehicle-controller-method-18 - (-> obj controller) - (-> obj target-acceleration) - (-> obj root transv) - obj - (/ 1.0 (-> pp clock seconds-per-frame)) + (.mtpc pcr0 0) + (.mtpc pcr1 0) + (.sync.l) + (.sync.p) + (.mtc0 Perf a0-1) + ) + (.sync.l) + (.sync.p) + (label cfg-2) + 0 + (set! (-> obj camera-dist2) (vector-vector-distance-squared (-> obj root trans) (camera-pos))) + (set! (-> obj player-dist2) (vector-vector-distance-squared (-> obj root trans) (target-pos 0))) + (vehicle-controller-method-18 + (-> obj controller) + (-> obj target-acceleration) + (-> obj root transv) + obj + (/ 1.0 (seconds-per-frame)) + ) + (cond + ((logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics)) + (if (not (vehicle-method-105 obj)) + (rigid-body-object-method-39 obj) + ) + ) + (else + (if (vehicle-method-105 obj) + (rigid-body-object-method-38 obj) + ) ) - (cond - ((logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics)) - (if (not (vehicle-method-105 obj)) - (rigid-body-object-method-39 obj) - ) - ) - (else - (if (vehicle-method-105 obj) - (rigid-body-object-method-38 obj) + ) + (cond + ((logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics)) + (vehicle-method-93 obj) + (vehicle-method-106 obj) + (vehicle-method-121 obj) + ) + (else + (let ((f1-3 (* 0.000024414063 + (vector-dot (the-as vector (-> obj node-list data 0 bone transform)) (-> obj target-acceleration)) + ) + ) ) + (+! (-> obj controls steering) (* 0.1 (- f1-3 (-> obj controls steering)))) ) - ) - (cond - ((logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics)) - (vehicle-method-93 obj) - (vehicle-method-106 obj) - (vehicle-method-121 obj) - ) - (else - (let ((f1-3 (* 0.000024414063 - (vector-dot (the-as vector (-> obj node-list data 0 bone transform)) (-> obj target-acceleration)) - ) - ) - ) - (+! (-> obj controls steering) (* 0.1 (- f1-3 (-> obj controls steering)))) - ) - (set! (-> obj controls steering) (fmax -1.0 (fmin 1.0 (-> obj controls steering)))) - (let* ((v1-42 (-> *perf-stats* data 19)) - (a0-14 (-> v1-42 ctrl)) - ) - (+! (-> v1-42 count) 1) - (b! (zero? a0-14) cfg-12 :delay (nop!)) - (.mtc0 Perf 0) - (.sync.l) - (.sync.p) - (.mtpc pcr0 0) - (.mtpc pcr1 0) - (.sync.l) - (.sync.p) - (.mtc0 Perf a0-14) - ) + (set! (-> obj controls steering) (fmax -1.0 (fmin 1.0 (-> obj controls steering)))) + (let* ((v1-42 (-> *perf-stats* data 19)) + (a0-14 (-> v1-42 ctrl)) + ) + (+! (-> v1-42 count) 1) + (b! (zero? a0-14) cfg-12 :delay (nop!)) + (.mtc0 Perf 0) (.sync.l) (.sync.p) - (label cfg-12) - 0 - (vehicle-method-104 obj) - (let ((f0-9 (-> obj player-dist2)) - (f1-8 245760.0) - ) - (when (< f0-9 (* f1-8 f1-8)) - (let ((f0-10 (vector-length (-> obj root transv)))) - (seek! (-> obj engine-power-factor) (* 0.000016276043 f0-10) (* 6.0 (-> pp clock seconds-per-frame))) - ) - (do-engine-sounds obj) - ) - ) - (when (logtest? (-> obj draw status) (draw-control-status on-screen)) - (when #t - (set! (-> obj node-list data 0 bone transform trans quad) (-> obj root trans quad)) - (draw-thrusters obj) - ) - ) - (let ((v1-70 (-> *perf-stats* data 19))) - (b! (zero? (-> v1-70 ctrl)) cfg-19 :delay (nop!)) - (.mtc0 Perf 0) - (.sync.l) - (.sync.p) - (.mfpc a0-23 pcr0) - (+! (-> v1-70 accum0) a0-23) - (.mfpc a0-25 pcr1) - (+! (-> v1-70 accum1) a0-25) - ) - (label cfg-19) - 0 - (let* ((v1-73 (-> *perf-stats* data 20)) - (a0-27 (-> v1-73 ctrl)) - ) - (+! (-> v1-73 count) 1) - (b! (zero? a0-27) cfg-21 :delay (nop!)) - (.mtc0 Perf 0) - (.sync.l) - (.sync.p) - (.mtpc pcr0 0) - (.mtpc pcr1 0) - (.sync.l) - (.sync.p) - (.mtc0 Perf a0-27) - ) + (.mtpc pcr0 0) + (.mtpc pcr1 0) (.sync.l) (.sync.p) - (label cfg-21) - 0 - (vehicle-method-120 obj) - (update-transforms (-> obj root)) - (set! (-> obj node-list data 0 bone transform trans quad) (-> obj root trans quad)) - (vehicle-method-119 obj) - (let ((v1-85 (-> *perf-stats* data 20))) - (b! (zero? (-> v1-85 ctrl)) cfg-23 :delay (nop!)) - (.mtc0 Perf 0) - (.sync.l) - (.sync.p) - (.mfpc a0-35 pcr0) - (+! (-> v1-85 accum0) a0-35) - (.mfpc a0-37 pcr1) - (+! (-> v1-85 accum1) a0-37) - ) - (label cfg-23) - 0 + (.mtc0 Perf a0-14) ) - ) - (let ((v1-88 (-> *perf-stats* data 37))) - (b! (zero? (-> v1-88 ctrl)) cfg-26 :delay (nop!)) - (.mtc0 Perf 0) (.sync.l) (.sync.p) - (.mfpc a0-40 pcr0) - (+! (-> v1-88 accum0) a0-40) - (.mfpc a0-42 pcr1) - (+! (-> v1-88 accum1) a0-42) + (label cfg-12) + 0 + (vehicle-method-104 obj) + (let ((f0-9 (-> obj player-dist2)) + (f1-8 245760.0) + ) + (when (< f0-9 (* f1-8 f1-8)) + (let ((f0-10 (vector-length (-> obj root transv)))) + (seek! (-> obj engine-power-factor) (* 0.000016276043 f0-10) (* 6.0 (seconds-per-frame))) + ) + (do-engine-sounds obj) + ) + ) + (when (logtest? (-> obj draw status) (draw-control-status on-screen)) + (when #t + (set! (-> obj node-list data 0 bone transform trans quad) (-> obj root trans quad)) + (draw-thrusters obj) + ) + ) + (let ((v1-70 (-> *perf-stats* data 19))) + (b! (zero? (-> v1-70 ctrl)) cfg-19 :delay (nop!)) + (.mtc0 Perf 0) + (.sync.l) + (.sync.p) + (.mfpc a0-23 pcr0) + (+! (-> v1-70 accum0) a0-23) + (.mfpc a0-25 pcr1) + (+! (-> v1-70 accum1) a0-25) + ) + (label cfg-19) + 0 + (let* ((v1-73 (-> *perf-stats* data 20)) + (a0-27 (-> v1-73 ctrl)) + ) + (+! (-> v1-73 count) 1) + (b! (zero? a0-27) cfg-21 :delay (nop!)) + (.mtc0 Perf 0) + (.sync.l) + (.sync.p) + (.mtpc pcr0 0) + (.mtpc pcr1 0) + (.sync.l) + (.sync.p) + (.mtc0 Perf a0-27) + ) + (.sync.l) + (.sync.p) + (label cfg-21) + 0 + (vehicle-method-120 obj) + (update-transforms (-> obj root)) + (set! (-> obj node-list data 0 bone transform trans quad) (-> obj root trans quad)) + (vehicle-method-119 obj) + (let ((v1-85 (-> *perf-stats* data 20))) + (b! (zero? (-> v1-85 ctrl)) cfg-23 :delay (nop!)) + (.mtc0 Perf 0) + (.sync.l) + (.sync.p) + (.mfpc a0-35 pcr0) + (+! (-> v1-85 accum0) a0-35) + (.mfpc a0-37 pcr1) + (+! (-> v1-85 accum1) a0-37) + ) + (label cfg-23) + 0 ) - (label cfg-26) - 0 - 0 - (none) ) + (let ((v1-88 (-> *perf-stats* data 37))) + (b! (zero? (-> v1-88 ctrl)) cfg-26 :delay (nop!)) + (.mtc0 Perf 0) + (.sync.l) + (.sync.p) + (.mfpc a0-40 pcr0) + (+! (-> v1-88 accum0) a0-40) + (.mfpc a0-42 pcr1) + (+! (-> v1-88 accum1) a0-42) + ) + (label cfg-26) + 0 + 0 + (none) ) (defmethod vehicle-method-124 vehicle ((obj vehicle)) + ;; og:preserve-this vehicle hp display cheat (#when PC_PORT - ;; vehicle hp display cheat (when (pc-cheats? (-> *pc-settings* cheats) vehicle-health-bars) (when (and *target* (focus-test? *target* pilot) (nonzero? (-> *target* pilot))) (when (= (handle->process (-> *target* pilot vehicle)) obj) diff --git a/goal_src/jak2/levels/city/vinroom/vinroom-obs.gc b/goal_src/jak2/levels/city/vinroom/vinroom-obs.gc index 88679060e3..802d54731c 100644 --- a/goal_src/jak2/levels/city/vinroom/vinroom-obs.gc +++ b/goal_src/jak2/levels/city/vinroom/vinroom-obs.gc @@ -189,14 +189,7 @@ (set! (-> v1-36 initial-valuef) (the-as float (-> (the-as lightning-tracker (-> s3-2 0)) duration))) ) ) - (let ((t9-20 sp-launch-particles-var) - (a0-33 *sp-particle-system-2d*) - (a1-21 (-> *part-id-table* 1245)) - (a2-10 *launch-matrix*) - ) - (set! (-> a2-10 trans quad) (-> s4-3 quad)) - (t9-20 a0-33 a1-21 a2-10 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1245) s4-3) ) ) ) @@ -260,7 +253,8 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) ;; added + ;; og:preserve-this added + (stack-size-set! (-> obj main-thread) 1024) (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) diff --git a/goal_src/jak2/levels/city/vinroom/vinroom-scenes.gc b/goal_src/jak2/levels/city/vinroom/vinroom-scenes.gc index 8576d1327c..61aefe84ee 100644 --- a/goal_src/jak2/levels/city/vinroom/vinroom-scenes.gc +++ b/goal_src/jak2/levels/city/vinroom/vinroom-scenes.gc @@ -114,22 +114,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 1234)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-3d*) - (a1-3 (-> *part-id-table* 1235)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1234) gp-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 1235) gp-0) ) ) (none) diff --git a/goal_src/jak2/levels/common/ai/ashelin/ash-shot.gc b/goal_src/jak2/levels/common/ai/ashelin/ash-shot.gc index 5349849939..5f8d9a5845 100644 --- a/goal_src/jak2/levels/common/ai/ashelin/ash-shot.gc +++ b/goal_src/jak2/levels/common/ai/ashelin/ash-shot.gc @@ -296,14 +296,7 @@ (set! (-> *part-id-table* 672 init-specs 4 initial-valuef) f30-0) ) (vector-normalize! s5-1 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-5 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 673)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-2 a0-5 a1-2 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 673) gp-0) (let ((f0-4 (vector-dot s5-1 (-> (camera-matrix) vector 2)))) (when (< 0.0 f0-4) (let ((f0-5 (* f0-4 f0-4)) @@ -312,14 +305,7 @@ ) (set! (-> *part-id-table* 674 init-specs 8 initial-valuef) (* f30-1 f0-5)) (set! (-> *part-id-table* 674 init-specs 8 random-rangef) (* f28-0 f0-5)) - (let ((t9-4 sp-launch-particles-var) - (a0-6 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 674)) - (a2-4 *launch-matrix*) - ) - (set! (-> a2-4 trans quad) (-> gp-0 quad)) - (t9-4 a0-6 a1-3 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 674) gp-0) (set! (-> *part-id-table* 674 init-specs 8 initial-valuef) f30-1) (set! (-> *part-id-table* 674 init-specs 8 random-rangef) f28-0) ) diff --git a/goal_src/jak2/levels/common/ai/ashelin/ash.gc b/goal_src/jak2/levels/common/ai/ashelin/ash.gc index ddc06754bc..4c7423836d 100644 --- a/goal_src/jak2/levels/common/ai/ashelin/ash.gc +++ b/goal_src/jak2/levels/common/ai/ashelin/ash.gc @@ -769,7 +769,7 @@ (cond ((and v1-5 (= v1-5 (-> obj draw art-group data 5))) (let ((f28-0 f1-0) - (f0-4 (seek f1-0 f0-1 (* 4.0 (-> pp clock seconds-per-frame)))) + (f0-4 (seek f1-0 f0-1 (* 4.0 (seconds-per-frame)))) ) (cond ((logtest? (bot-flags bf19) (-> obj bot-flags)) @@ -837,7 +837,7 @@ ) ) (else - (let ((f30-1 (seek f1-0 f0-1 (* 4.0 (-> pp clock seconds-per-frame))))) + (let ((f30-1 (seek f1-0 f0-1 (* 4.0 (seconds-per-frame))))) (set! (-> obj travel-anim-interp) f30-1) (ja-channel-push! 2 (seconds 0.15)) (let ((a0-26 (-> obj skel root-channel 0))) diff --git a/goal_src/jak2/levels/common/ai/bot.gc b/goal_src/jak2/levels/common/ai/bot.gc index 031ca1255e..882bf24b8a 100644 --- a/goal_src/jak2/levels/common/ai/bot.gc +++ b/goal_src/jak2/levels/common/ai/bot.gc @@ -1648,34 +1648,32 @@ If the player is too far, play a warning speech." ) (defmethod bot-method-208 bot ((obj bot)) - (with-pp - (let ((s5-0 #f)) - (when *target* - (let ((target-trans (-> *target* control trans)) - (bot-root (-> obj root)) - (f0-0 14336.0) - ) - (when (>= (* f0-0 f0-0) (vector-vector-distance-squared (-> bot-root trans) target-trans)) - (let ((v1-8 (-> *target* control transv))) - (when (>= (sqrtf (+ (* (-> v1-8 x) (-> v1-8 x)) (* (-> v1-8 z) (-> v1-8 z)))) 2048.0) - (if (logtest? (-> obj nav state flags) (nav-state-flag avoiding-sphere)) - (set! s5-0 #t) - ) - ) + (let ((s5-0 #f)) + (when *target* + (let ((target-trans (-> *target* control trans)) + (bot-root (-> obj root)) + (f0-0 14336.0) + ) + (when (>= (* f0-0 f0-0) (vector-vector-distance-squared (-> bot-root trans) target-trans)) + (let ((v1-8 (-> *target* control transv))) + (when (>= (sqrtf (+ (* (-> v1-8 x) (-> v1-8 x)) (* (-> v1-8 z) (-> v1-8 z)))) 2048.0) + (if (logtest? (-> obj nav state flags) (nav-state-flag avoiding-sphere)) + (set! s5-0 #t) + ) ) ) ) ) - (let* ((f0-8 (-> obj player-blocking)) - (f0-10 (if s5-0 - (seek f0-8 1.0 (-> pp clock seconds-per-frame)) - (seek f0-8 0.0 (-> pp clock seconds-per-frame)) - ) - ) - ) - (set! (-> obj player-blocking) f0-10) - (= f0-10 1.0) - ) + ) + (let* ((f0-8 (-> obj player-blocking)) + (f0-10 (if s5-0 + (seek f0-8 1.0 (seconds-per-frame)) + (seek f0-8 0.0 (seconds-per-frame)) + ) + ) + ) + (set! (-> obj player-blocking) f0-10) + (= f0-10 1.0) ) ) ) @@ -1690,51 +1688,47 @@ If the player is too far, play a warning speech." ) (defmethod bot-method-222 bot ((obj bot) (arg0 vector)) - (with-pp - (let ((s1-0 (new 'stack-no-clear 'vector)) - (s3-0 (new 'stack-no-clear 'vector)) - (v1-0 (new 'stack-no-clear 'vector)) - (s2-0 (new 'stack-no-clear 'vector)) - (s4-0 (new 'stack-no-clear 'vector)) - (s5-0 (new 'stack-no-clear 'vector)) - ) - (set! (-> v1-0 quad) (-> obj root trans quad)) - (+! (-> v1-0 y) 9216.0) - (vector-! s1-0 arg0 v1-0) - (vector-normalize! s1-0 1.0) - (vector-z-quaternion! s2-0 (-> obj root quat)) - (rot-zxy-from-vector! s4-0 s2-0) - (rot-zxy-from-vector! s3-0 s1-0) - (set! (-> s5-0 x) (fmax -3640.889 (fmin 3640.889 (deg- (-> s3-0 x) (-> s4-0 x))))) - (set! (-> s5-0 y) (fmax -3640.889 (fmin 3640.889 (deg- (-> s3-0 y) (-> s4-0 y))))) - (set! (-> s5-0 z) 0.0) - (let ((s4-1 (new 'stack-no-clear 'quaternion))) - (quaternion-zxy! s4-1 s5-0) - (quaternion-pseudo-seek - (-> obj swivel-joint-mod quat) - (-> obj swivel-joint-mod quat) - s4-1 - (-> pp clock seconds-per-frame) - ) + (let ((s1-0 (new 'stack-no-clear 'vector)) + (s3-0 (new 'stack-no-clear 'vector)) + (v1-0 (new 'stack-no-clear 'vector)) + (s2-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + (s5-0 (new 'stack-no-clear 'vector)) ) - ) - 0 - (none) - ) - ) - -(defmethod bot-method-221 bot ((obj bot)) - (with-pp - (let ((gp-0 (new 'stack-no-clear 'quaternion))) - (quaternion-identity! gp-0) + (set! (-> v1-0 quad) (-> obj root trans quad)) + (+! (-> v1-0 y) 9216.0) + (vector-! s1-0 arg0 v1-0) + (vector-normalize! s1-0 1.0) + (vector-z-quaternion! s2-0 (-> obj root quat)) + (rot-zxy-from-vector! s4-0 s2-0) + (rot-zxy-from-vector! s3-0 s1-0) + (set! (-> s5-0 x) (fmax -3640.889 (fmin 3640.889 (deg- (-> s3-0 x) (-> s4-0 x))))) + (set! (-> s5-0 y) (fmax -3640.889 (fmin 3640.889 (deg- (-> s3-0 y) (-> s4-0 y))))) + (set! (-> s5-0 z) 0.0) + (let ((s4-1 (new 'stack-no-clear 'quaternion))) + (quaternion-zxy! s4-1 s5-0) (quaternion-pseudo-seek (-> obj swivel-joint-mod quat) (-> obj swivel-joint-mod quat) - gp-0 - (-> pp clock seconds-per-frame) + s4-1 + (seconds-per-frame) ) ) ) + 0 + (none) + ) + +(defmethod bot-method-221 bot ((obj bot)) + (let ((gp-0 (new 'stack-no-clear 'quaternion))) + (quaternion-identity! gp-0) + (quaternion-pseudo-seek + (-> obj swivel-joint-mod quat) + (-> obj swivel-joint-mod quat) + gp-0 + (seconds-per-frame) + ) + ) ) (defmethod play-attacked-speech bot ((obj bot)) diff --git a/goal_src/jak2/levels/common/ai/sig/sig-plasma.gc b/goal_src/jak2/levels/common/ai/sig/sig-plasma.gc index e6a82da971..2ad36901db 100644 --- a/goal_src/jak2/levels/common/ai/sig/sig-plasma.gc +++ b/goal_src/jak2/levels/common/ai/sig/sig-plasma.gc @@ -142,89 +142,87 @@ ) (defmethod sig-plasma-method-14 sig-plasma ((obj sig-plasma) (arg0 process-focusable)) - (with-pp - (let* ((f0-0 (-> obj level)) - (f30-0 (cond - ((logtest? (-> obj flags) (plasma-flags pf01)) - (seek f0-0 1.0 (* (-> obj charge-speed) (-> pp clock seconds-per-frame))) - ) - (else - (let ((f1-1 (-> obj min-level))) - (when (< f0-0 f1-1) - (set! f1-1 f0-0) - (set! (-> obj min-level) f1-1) - ) - (seek f0-0 f1-1 (* 0.25 (-> pp clock seconds-per-frame))) + (let* ((f0-0 (-> obj level)) + (f30-0 (cond + ((logtest? (-> obj flags) (plasma-flags pf01)) + (seek f0-0 1.0 (* (-> obj charge-speed) (seconds-per-frame))) + ) + (else + (let ((f1-1 (-> obj min-level))) + (when (< f0-0 f1-1) + (set! f1-1 f0-0) + (set! (-> obj min-level) f1-1) ) + (seek f0-0 f1-1 (* 0.25 (seconds-per-frame))) ) ) ) - ) - (set! (-> obj level) f30-0) - (cond - ((= f30-0 0.0) - (let ((v1-9 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) - (set! (-> v1-9 command) (sound-command set-param)) - (set! (-> v1-9 id) (-> obj powerup-sound-id)) - (set! (-> v1-9 params volume) -4) - (set! (-> v1-9 auto-time) 24) - (set! (-> v1-9 auto-from) 2) - (set! (-> v1-9 params mask) (the-as uint 17)) - (-> v1-9 id) - ) - (let ((v1-11 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) - (set! (-> v1-11 command) (sound-command set-param)) - (set! (-> v1-11 id) (-> obj plasma-sound-id)) - (set! (-> v1-11 params volume) -4) - (set! (-> v1-11 auto-time) 24) - (set! (-> v1-11 auto-from) 2) - (set! (-> v1-11 params mask) (the-as uint 17)) - (-> v1-11 id) - ) + ) ) - (else - (let ((s4-0 (-> arg0 root trans))) - (if (movie?) - (set! s4-0 (camera-pos)) - ) - (let ((f28-0 (+ 0.25 (* 0.75 f30-0)))) - (sound-play-by-name - (static-sound-name "sig-gun-powerup") - (-> obj powerup-sound-id) - (the int (* 1024.0 f28-0)) - (the int (* 1524.0 (+ 0.5 (* 0.5 f30-0)))) - 0 - (sound-group sfx) - s4-0 - ) - (sound-play-by-name - (static-sound-name "sig-gun-plasma") - (-> obj plasma-sound-id) - (the int (* 1024.0 f28-0)) - (the int (* 1524.0 (rand-vu-float-range -1.0 1.0))) - 0 - (sound-group sfx) - s4-0 - ) + (set! (-> obj level) f30-0) + (cond + ((= f30-0 0.0) + (let ((v1-9 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> v1-9 command) (sound-command set-param)) + (set! (-> v1-9 id) (-> obj powerup-sound-id)) + (set! (-> v1-9 params volume) -4) + (set! (-> v1-9 auto-time) 24) + (set! (-> v1-9 auto-from) 2) + (set! (-> v1-9 params mask) (the-as uint 17)) + (-> v1-9 id) + ) + (let ((v1-11 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> v1-11 command) (sound-command set-param)) + (set! (-> v1-11 id) (-> obj plasma-sound-id)) + (set! (-> v1-11 params volume) -4) + (set! (-> v1-11 auto-time) 24) + (set! (-> v1-11 auto-from) 2) + (set! (-> v1-11 params mask) (the-as uint 17)) + (-> v1-11 id) + ) + ) + (else + (let ((s4-0 (-> arg0 root trans))) + (if (movie?) + (set! s4-0 (camera-pos)) + ) + (let ((f28-0 (+ 0.25 (* 0.75 f30-0)))) + (sound-play-by-name + (static-sound-name "sig-gun-powerup") + (-> obj powerup-sound-id) + (the int (* 1024.0 f28-0)) + (the int (* 1524.0 (+ 0.5 (* 0.5 f30-0)))) + 0 + (sound-group sfx) + s4-0 + ) + (sound-play-by-name + (static-sound-name "sig-gun-plasma") + (-> obj plasma-sound-id) + (the int (* 1024.0 f28-0)) + (the int (* 1524.0 (rand-vu-float-range -1.0 1.0))) + 0 + (sound-group sfx) + s4-0 ) ) - (when (not (logtest? (-> arg0 draw status) (draw-control-status no-draw))) - (let ((s5-2 (vector<-cspace! (new 'stack-no-clear 'vector) (-> arg0 node-list data 24)))) - (set! (-> *part-id-table* 667 init-specs 2 initial-valuef) (lerp 409.6 9216.0 f30-0)) - (set! (-> *part-id-table* 667 init-specs 8 initial-valuef) (lerp 0.0 32.0 f30-0)) - (set! (-> *part-id-table* 668 init-specs 2 initial-valuef) (lerp 409.6 32768.0 f30-0)) - (set! (-> *part-id-table* 668 init-specs 8 initial-valuef) (lerp 0.0 16.0 f30-0)) - (set! (-> *part-id-table* 666 init-specs 2 initial-valuef) (lerp 409.6 8192.0 f30-0)) - (set! (-> *part-id-table* 665 init-specs 1 initial-valuef) (lerp 0.1 1.0 f30-0)) - (set! (-> *part-id-table* 665 init-specs 2 initial-valuef) (lerp 409.6 3686.4 f30-0)) - (spawn (-> arg0 part) s5-2) - ) + ) + (when (not (logtest? (-> arg0 draw status) (draw-control-status no-draw))) + (let ((s5-2 (vector<-cspace! (new 'stack-no-clear 'vector) (-> arg0 node-list data 24)))) + (set! (-> *part-id-table* 667 init-specs 2 initial-valuef) (lerp 409.6 9216.0 f30-0)) + (set! (-> *part-id-table* 667 init-specs 8 initial-valuef) (lerp 0.0 32.0 f30-0)) + (set! (-> *part-id-table* 668 init-specs 2 initial-valuef) (lerp 409.6 32768.0 f30-0)) + (set! (-> *part-id-table* 668 init-specs 8 initial-valuef) (lerp 0.0 16.0 f30-0)) + (set! (-> *part-id-table* 666 init-specs 2 initial-valuef) (lerp 409.6 8192.0 f30-0)) + (set! (-> *part-id-table* 665 init-specs 1 initial-valuef) (lerp 0.1 1.0 f30-0)) + (set! (-> *part-id-table* 665 init-specs 2 initial-valuef) (lerp 409.6 3686.4 f30-0)) + (spawn (-> arg0 part) s5-2) ) ) ) ) - (none) ) + (none) ) ;; WARN: Return type mismatch plasma-flags vs none. diff --git a/goal_src/jak2/levels/common/ai/sig/sig-shot.gc b/goal_src/jak2/levels/common/ai/sig/sig-shot.gc index e9adf7f974..ca0139cc9b 100644 --- a/goal_src/jak2/levels/common/ai/sig/sig-shot.gc +++ b/goal_src/jak2/levels/common/ai/sig/sig-shot.gc @@ -296,14 +296,7 @@ (set! (-> *part-id-table* 652 init-specs 4 initial-valuef) f30-0) ) (vector-normalize! s5-1 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-5 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 653)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-2 a0-5 a1-2 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 653) gp-0) (let ((f0-4 (vector-dot s5-1 (-> (camera-matrix) vector 2)))) (when (< 0.0 f0-4) (let ((f0-5 (* f0-4 f0-4)) @@ -312,14 +305,7 @@ ) (set! (-> *part-id-table* 654 init-specs 8 initial-valuef) (* f30-1 f0-5)) (set! (-> *part-id-table* 654 init-specs 8 random-rangef) (* f28-0 f0-5)) - (let ((t9-4 sp-launch-particles-var) - (a0-6 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 654)) - (a2-4 *launch-matrix*) - ) - (set! (-> a2-4 trans quad) (-> gp-0 quad)) - (t9-4 a0-6 a1-3 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 654) gp-0) (set! (-> *part-id-table* 654 init-specs 8 initial-valuef) f30-1) (set! (-> *part-id-table* 654 init-specs 8 random-rangef) f28-0) ) diff --git a/goal_src/jak2/levels/common/ai/sig/sig.gc b/goal_src/jak2/levels/common/ai/sig/sig.gc index e0dcead7ff..4074675695 100644 --- a/goal_src/jak2/levels/common/ai/sig/sig.gc +++ b/goal_src/jak2/levels/common/ai/sig/sig.gc @@ -784,7 +784,7 @@ (with-pp (let ((f30-0 (-> obj nav state speed))) (let ((f0-1 (lerp-scale 0.0 1.0 f30-0 16384.0 28672.0))) - (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (-> pp clock seconds-per-frame))) + (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (seconds-per-frame))) ) (let ((f28-0 (-> obj travel-anim-interp)) (v1-7 (if (> (-> obj skel active-channels) 0) diff --git a/goal_src/jak2/levels/common/airlock.gc b/goal_src/jak2/levels/common/airlock.gc index 301ce2dc70..77a8f3b9e8 100644 --- a/goal_src/jak2/levels/common/airlock.gc +++ b/goal_src/jak2/levels/common/airlock.gc @@ -303,8 +303,8 @@ ) (set! (-> obj gear-sound-id) (sound-play-by-spec (-> obj sound-gear) (new-sound-id) (the-as vector #t))) ) - (seek! (-> obj gear-rotv) arg0 (* 131072.0 (-> self clock seconds-per-frame))) - (+! (-> obj gear-rot) (* (-> obj gear-rotv) (-> self clock seconds-per-frame))) + (seek! (-> obj gear-rotv) arg0 (* 131072.0 (seconds-per-frame))) + (+! (-> obj gear-rot) (* (-> obj gear-rotv) (seconds-per-frame))) (twist-set! (-> obj gear) (the-as float #f) (the-as float #f) (-> obj gear-rot)) ) (-> obj gear-rotv) @@ -558,7 +558,7 @@ ) (rotate-gear! self 65536.0) (suspend) - ;; pc port note: added speed modifier + ;; og:preserve-this added speed modifier (ja :num! (seek! 0.0 (get-airlock-close-speed *pc-settings*))) (transform-post) ) @@ -658,7 +658,7 @@ ) (rotate-gear! self 65536.0) (suspend) - ;; pc port note: added speed modifier + ;; og:preserve-this added speed modifier (ja :num! (seek! (ja-aframe (-> self lock-frame) 0) (* (get-airlock-speed *pc-settings*) (-> self pre-open-speed)))) (transform-post) ) @@ -689,7 +689,7 @@ ) (rotate-gear! self 65536.0) (suspend) - ;; pc port note: added speed modifier + ;; og:preserve-this added speed modifier (ja :num! (seek! (ja-aframe (-> self open-frame) 0) (* (get-airlock-speed *pc-settings*) 2.0))) (transform-post) ) @@ -739,7 +739,7 @@ (while (not (ja-max? 0)) (rotate-gear! self 65536.0) (suspend) - ;; pc port note: added speed modifier + ;; og:preserve-this added speed modifier (ja :num! (seek! max (get-airlock-speed *pc-settings*))) (transform-post) ) @@ -804,7 +804,8 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) ;; added + ;; og:preserve-this added + (stack-size-set! (-> obj main-thread) 1024) (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) @@ -875,7 +876,8 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) ;; added + ;; og:preserve-this added + (stack-size-set! (-> obj main-thread) 1024) (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) @@ -959,7 +961,8 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) ;; added + ;; og:preserve-this added + (stack-size-set! (-> obj main-thread) 1024) (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) @@ -1027,7 +1030,8 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) ;; added + ;; og:preserve-this added + (stack-size-set! (-> obj main-thread) 1024) (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) @@ -1097,7 +1101,8 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) ;; added + ;; og:preserve-this added + (stack-size-set! (-> obj main-thread) 1024) (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((v1-2 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0)))) @@ -1162,7 +1167,8 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) ;; added + ;; og:preserve-this added + (stack-size-set! (-> obj main-thread) 1024) (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) @@ -1231,7 +1237,8 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) ;; added + ;; og:preserve-this added + (stack-size-set! (-> obj main-thread) 1024) (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) @@ -1300,7 +1307,8 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) ;; added + ;; og:preserve-this added + (stack-size-set! (-> obj main-thread) 1024) (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) @@ -1366,7 +1374,8 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) ;; added + ;; og:preserve-this added + (stack-size-set! (-> obj main-thread) 1024) (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) diff --git a/goal_src/jak2/levels/common/elec-gate.gc b/goal_src/jak2/levels/common/elec-gate.gc index c0cace53b2..56e6009ab4 100644 --- a/goal_src/jak2/levels/common/elec-gate.gc +++ b/goal_src/jak2/levels/common/elec-gate.gc @@ -480,7 +480,7 @@ (set! (-> self lightning-quality) (lerp-scale 0.0 1.0 (vector-vector-distance focus-trans (-> self root trans)) 491520.0 163840.0) ) - ;; changed for PC port so lightning can always render from farther than 2 inches away... + ;; og:preserve-this changed for PC port so lightning can always render from farther than 2 inches away... (#when PC_PORT (if (not (-> *pc-settings* ps2-lod-dist?)) (set! (-> self lightning-quality) 1.0))) ) @@ -496,7 +496,7 @@ ) ) ) - (seek! (-> s3-5 pos) 1.5 (* (-> s2-2 speed-mult) (+ 0.2 (-> s3-5 pos)) (-> self clock seconds-per-frame))) + (seek! (-> s3-5 pos) 1.5 (* (-> s2-2 speed-mult) (+ 0.2 (-> s3-5 pos)) (seconds-per-frame))) (cond ((>= (-> s3-5 pos) 1.5) (let ((v1-59 (-> self l-bolt bolt-idx bolt)) @@ -646,7 +646,7 @@ (let ((go-idle? #t)) (dotimes (bolt-idx 5) (let ((left-bolt-0 (-> self l-bolt bolt-idx))) - (seek! (-> left-bolt-0 pos) 0.0 (* (- 1.14 (-> left-bolt-0 pos)) (-> self clock seconds-per-frame))) + (seek! (-> left-bolt-0 pos) 0.0 (* (- 1.14 (-> left-bolt-0 pos)) (seconds-per-frame))) (set! go-idle? (cond ((or (< 1.0 (-> left-bolt-0 pos)) (>= 0.0 (-> left-bolt-0 pos))) @@ -728,7 +728,7 @@ (defmethod set-elec-scale-if-close! elec-gate ((obj elec-gate) (arg0 float)) "If [[target]]'s position is within `80` [[meters]], set the scale to the value provided @see [[elec-gate::29]]" - ;; changed for PC port so we can render it at any distance + ;; og:preserve-this changed for PC port so we can render it at any distance (if (#if PC_PORT (or (not (-> *pc-settings* ps2-lod-dist?)) (< (vector-vector-distance (-> obj root trans) (target-pos 0)) (meters 80))) (< (vector-vector-distance (-> obj root trans) (target-pos 0)) (meters 80))) (set-elec-scale! obj arg0) @@ -973,7 +973,7 @@ This commonly includes things such as: (none) ) - +;; og:preserve-this (defmethod set-elec-scale! caspad-elec-gate ((obj caspad-elec-gate) (arg0 float)) "Added, original game did not define this and would crash on call." 0 diff --git a/goal_src/jak2/levels/common/enemy/amphibian/amphibian.gc b/goal_src/jak2/levels/common/enemy/amphibian/amphibian.gc index d472495938..81f0931b10 100644 --- a/goal_src/jak2/levels/common/enemy/amphibian/amphibian.gc +++ b/goal_src/jak2/levels/common/enemy/amphibian/amphibian.gc @@ -1714,17 +1714,17 @@ (cond ((= (-> self tongue-scale) 1.0) (set! (-> self tongue-mode) (the-as uint 2)) - (seek! (-> self tongue-scale) 0.0 (* 7.0 (-> self clock seconds-per-frame))) + (seek! (-> self tongue-scale) 0.0 (* 7.0 (seconds-per-frame))) ) (else - (seek! (-> self tongue-scale) 1.0 (* 7.0 (-> self clock seconds-per-frame))) + (seek! (-> self tongue-scale) 1.0 (* 7.0 (seconds-per-frame))) ) ) ) ((= v1-0 2) (if (= (-> self tongue-scale) 0.0) (set! (-> self tongue-mode) (the-as uint 3)) - (seek! (-> self tongue-scale) 0.0 (* 7.0 (-> self clock seconds-per-frame))) + (seek! (-> self tongue-scale) 0.0 (* 7.0 (seconds-per-frame))) ) ) ) diff --git a/goal_src/jak2/levels/common/enemy/centurion.gc b/goal_src/jak2/levels/common/enemy/centurion.gc index 2675a3270a..61388b798a 100644 --- a/goal_src/jak2/levels/common/enemy/centurion.gc +++ b/goal_src/jak2/levels/common/enemy/centurion.gc @@ -539,61 +539,59 @@ (defmethod centurion-method-181 centurion ((obj centurion) (arg0 vector)) (local-vars (sv-224 vector) (sv-240 vector) (sv-256 vector)) - (with-pp - (if (not (-> obj joint-enable)) - (return (the-as int #f)) - ) - (let ((s5-0 (new 'stack-no-clear 'vector))) - (set! (-> s5-0 quad) (-> arg0 quad)) - (let* ((v0-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 4))) - (s1-0 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) s5-0 v0-1) 1.0)) - (s3-0 (new 'stack-no-clear 'vector)) - ) - (new 'stack-no-clear 'vector) - (let ((s5-1 (new 'stack-no-clear 'quaternion))) - (vector-z-quaternion! + (if (not (-> obj joint-enable)) + (return (the-as int #f)) + ) + (let ((s5-0 (new 'stack-no-clear 'vector))) + (set! (-> s5-0 quad) (-> arg0 quad)) + (let* ((v0-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 4))) + (s1-0 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) s5-0 v0-1) 1.0)) + (s3-0 (new 'stack-no-clear 'vector)) + ) + (new 'stack-no-clear 'vector) + (let ((s5-1 (new 'stack-no-clear 'quaternion))) + (vector-z-quaternion! + (new 'stack-no-clear 'vector) + (quaternion*! (new 'stack-no-clear 'quaternion) (-> obj joint quat) (-> obj root quat)) + ) + (let ((s4-1 (new 'stack-no-clear 'vector))) + (vector-z-quaternion! s3-0 (-> obj root quat)) + (let ((f30-0 (deg-diff (vector-y-angle s3-0) (vector-y-angle s1-0)))) + 0.0 (new 'stack-no-clear 'vector) - (quaternion*! (new 'stack-no-clear 'quaternion) (-> obj joint quat) (-> obj root quat)) - ) - (let ((s4-1 (new 'stack-no-clear 'vector))) - (vector-z-quaternion! s3-0 (-> obj root quat)) - (let ((f30-0 (deg-diff (vector-y-angle s3-0) (vector-y-angle s1-0)))) - 0.0 - (new 'stack-no-clear 'vector) - (new 'stack-no-clear 'vector) - (let ((s2-2 (new 'stack-no-clear 'vector))) - (let ((s0-1 vector-rotate-around-y!)) - (set! sv-224 s4-1) - (set! sv-240 s1-0) - (let ((a2-1 (- (vector-y-angle s1-0)))) - (s0-1 sv-224 sv-240 a2-1) - ) - ) - (let ((s1-1 vector-rotate-around-y!) - (s0-2 s2-2) - ) - (set! sv-256 s3-0) - (let ((a2-2 (- (vector-y-angle s3-0)))) - (s1-1 s0-2 sv-256 a2-2) - ) - ) - (let ((f0-9 (deg-diff (atan (-> s4-1 y) (-> s4-1 z)) (atan (-> s2-2 y) (-> s2-2 z))))) - (set-vector! s4-1 f0-9 f30-0 0.0 1.0) + (new 'stack-no-clear 'vector) + (let ((s2-2 (new 'stack-no-clear 'vector))) + (let ((s0-1 vector-rotate-around-y!)) + (set! sv-224 s4-1) + (set! sv-240 s1-0) + (let ((a2-1 (- (vector-y-angle s1-0)))) + (s0-1 sv-224 sv-240 a2-1) ) ) + (let ((s1-1 vector-rotate-around-y!) + (s0-2 s2-2) + ) + (set! sv-256 s3-0) + (let ((a2-2 (- (vector-y-angle s3-0)))) + (s1-1 s0-2 sv-256 a2-2) + ) + ) + (let ((f0-9 (deg-diff (atan (-> s4-1 y) (-> s4-1 z)) (atan (-> s2-2 y) (-> s2-2 z))))) + (set-vector! s4-1 f0-9 f30-0 0.0 1.0) + ) ) - (quaternion-zxy! s5-1 s4-1) ) - (quaternion-pseudo-seek (-> obj joint quat) (-> obj joint quat) s5-1 (-> pp clock seconds-per-frame)) + (quaternion-zxy! s5-1 s4-1) ) + (quaternion-pseudo-seek (-> obj joint quat) (-> obj joint quat) s5-1 (seconds-per-frame)) ) ) - (vector-z-quaternion! - (-> obj shoot-dir) - (quaternion*! (new 'stack-no-clear 'quaternion) (-> obj joint quat) (-> obj root quat)) - ) - 0 ) + (vector-z-quaternion! + (-> obj shoot-dir) + (quaternion*! (new 'stack-no-clear 'quaternion) (-> obj joint quat) (-> obj root quat)) + ) + 0 ) (defstate victory (centurion) @@ -943,152 +941,150 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (let ((f30-0 (* 4.0 (-> pp clock seconds-per-frame)))) - (set! (-> *part-id-table* 2104 init-specs 2 initial-valuef) - (lerp - (-> *part-id-table* 2104 init-specs 2 initial-valuef) - (the float *centurion-shield-glow-spt-scale-x*) - f30-0 - ) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((f30-0 (* 4.0 (seconds-per-frame)))) + (set! (-> *part-id-table* 2104 init-specs 2 initial-valuef) + (lerp + (-> *part-id-table* 2104 init-specs 2 initial-valuef) + (the float *centurion-shield-glow-spt-scale-x*) + f30-0 ) - (set! (-> *part-id-table* 2104 init-specs 4 initial-valuef) - (lerp - (-> *part-id-table* 2104 init-specs 4 initial-valuef) - (the float *centurion-shield-glow-spt-scale-y*) - f30-0 - ) - ) - (set! (-> *part-id-table* 2103 init-specs 5 initial-valuef) - (lerp - (-> *part-id-table* 2103 init-specs 5 initial-valuef) - (the float *centurion-shield-center-spt-scale-x*) - f30-0 - ) - ) - (set! (-> *part-id-table* 2103 init-specs 9 initial-valuef) - (lerp - (-> *part-id-table* 2103 init-specs 9 initial-valuef) - (the float *centurion-shield-center-spt-scale-y*) - f30-0 - ) - ) - (set! (-> *part-id-table* 2102 init-specs 5 initial-valuef) - (lerp (-> *part-id-table* 2102 init-specs 5 initial-valuef) (the float *centurion-shield-spt-scale-x*) f30-0) - ) - (set! (-> *part-id-table* 2102 init-specs 9 initial-valuef) - (lerp (-> *part-id-table* 2102 init-specs 9 initial-valuef) (the float *centurion-shield-spt-scale-y*) f30-0) - ) - (set! (-> *part-id-table* 2101 init-specs 5 initial-valuef) - (lerp - (-> *part-id-table* 2101 init-specs 5 initial-valuef) - (the float *centurion-shield-2-spt-scale-x*) - f30-0 - ) - ) - (set! (-> *part-id-table* 2101 init-specs 9 initial-valuef) - (lerp - (-> *part-id-table* 2101 init-specs 9 initial-valuef) - (the float *centurion-shield-2-spt-scale-y*) - f30-0 - ) - ) - (cond - ((logtest? (-> obj fact enemy-options) (enemy-option user0)) - (set! (-> *part-id-table* 2101 init-specs 10 initial-valuef) 0.0) - (set! (-> *part-id-table* 2101 init-specs 10 random-rangef) 0.0) - (set! (-> *part-id-table* 2102 init-specs 10 initial-valuef) 0.0) - (set! (-> *part-id-table* 2102 init-specs 10 random-rangef) 0.0) - (set! (-> *part-id-table* 2104 init-specs 5 initial-valuef) 0.0) - (set! (-> *part-id-table* 2104 init-specs 5 random-rangef) 0.0) - ) - (else - (set! (-> *part-id-table* 2101 init-specs 10 initial-valuef) 128.0) - (set! (-> *part-id-table* 2101 init-specs 10 random-rangef) 128.0) - (set! (-> *part-id-table* 2102 init-specs 10 initial-valuef) 128.0) - (set! (-> *part-id-table* 2102 init-specs 10 random-rangef) 128.0) - (set! (-> *part-id-table* 2104 init-specs 5 initial-valuef) 64.0) - (set! (-> *part-id-table* 2104 init-specs 5 random-rangef) 64.0) ) - ) - (set! (-> *part-id-table* 2102 init-specs 13 initial-valuef) - (lerp (-> *part-id-table* 2102 init-specs 13 initial-valuef) 10.0 f30-0) + (set! (-> *part-id-table* 2104 init-specs 4 initial-valuef) + (lerp + (-> *part-id-table* 2104 init-specs 4 initial-valuef) + (the float *centurion-shield-glow-spt-scale-y*) + f30-0 ) - ) - (let ((a0-11 (handle->process (-> obj focus handle)))) - (if a0-11 - (centurion-method-181 obj (get-trans (the-as process-focusable a0-11) 3)) ) - ) - (logior! (-> obj skel status) (joint-control-status sync-math)) - (los-control-method-9 (-> obj los) (the-as process-focusable #f) (the-as vector #f) 2048.0) - (let ((t9-12 (method-of-type nav-enemy track-target!))) - (t9-12 obj) - ) - (when (not (logtest? (-> obj draw status) (draw-control-status no-draw))) - (let ((s5-1 (new 'stack-no-clear 'matrix))) - (let* ((a2-10 (-> obj node-list data 12 bone transform)) - (v1-131 (-> a2-10 quad 0)) - (a0-18 (-> a2-10 quad 1)) - (a1-13 (-> a2-10 quad 2)) - (a2-11 (-> a2-10 trans quad)) - ) - (set! (-> s5-1 quad 0) v1-131) - (set! (-> s5-1 quad 1) a0-18) - (set! (-> s5-1 quad 2) a1-13) - (set! (-> s5-1 trans quad) a2-11) - ) - (let ((s4-1 (new 'stack-no-clear 'matrix))) - (if (logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) - (vector-negate-in-place! (the-as vector (-> s5-1 vector))) - ) - (matrix-rotate-y! s4-1 (if (logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) - 2548.6223 - -2548.6223 - ) - ) - (matrix*! s5-1 s4-1 s5-1) - (matrix-rotate-z! s4-1 (if (logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) - 691.76886 - -691.76886 - ) - ) - (matrix*! s5-1 s4-1 s5-1) - ) - (let ((a1-20 (-> s5-1 trans))) - (let ((v1-143 (-> s5-1 trans))) - (let ((a0-25 (-> s5-1 vector))) - (let ((a2-18 (the-as float (if (logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) - -997237719 - #x43a3d70a - ) - ) - ) - ) - (.mov vf7 a2-18) - ) - (.lvf vf5 (&-> a0-25 0 quad)) - ) - (.lvf vf4 (&-> v1-143 quad)) + (set! (-> *part-id-table* 2103 init-specs 5 initial-valuef) + (lerp + (-> *part-id-table* 2103 init-specs 5 initial-valuef) + (the float *centurion-shield-center-spt-scale-x*) + f30-0 ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-20 quad) vf6) ) - (spawn-with-matrix (-> obj part) s5-1) + (set! (-> *part-id-table* 2103 init-specs 9 initial-valuef) + (lerp + (-> *part-id-table* 2103 init-specs 9 initial-valuef) + (the float *centurion-shield-center-spt-scale-y*) + f30-0 + ) + ) + (set! (-> *part-id-table* 2102 init-specs 5 initial-valuef) + (lerp (-> *part-id-table* 2102 init-specs 5 initial-valuef) (the float *centurion-shield-spt-scale-x*) f30-0) + ) + (set! (-> *part-id-table* 2102 init-specs 9 initial-valuef) + (lerp (-> *part-id-table* 2102 init-specs 9 initial-valuef) (the float *centurion-shield-spt-scale-y*) f30-0) + ) + (set! (-> *part-id-table* 2101 init-specs 5 initial-valuef) + (lerp + (-> *part-id-table* 2101 init-specs 5 initial-valuef) + (the float *centurion-shield-2-spt-scale-x*) + f30-0 + ) + ) + (set! (-> *part-id-table* 2101 init-specs 9 initial-valuef) + (lerp + (-> *part-id-table* 2101 init-specs 9 initial-valuef) + (the float *centurion-shield-2-spt-scale-y*) + f30-0 + ) + ) + (cond + ((logtest? (-> obj fact enemy-options) (enemy-option user0)) + (set! (-> *part-id-table* 2101 init-specs 10 initial-valuef) 0.0) + (set! (-> *part-id-table* 2101 init-specs 10 random-rangef) 0.0) + (set! (-> *part-id-table* 2102 init-specs 10 initial-valuef) 0.0) + (set! (-> *part-id-table* 2102 init-specs 10 random-rangef) 0.0) + (set! (-> *part-id-table* 2104 init-specs 5 initial-valuef) 0.0) + (set! (-> *part-id-table* 2104 init-specs 5 random-rangef) 0.0) + ) + (else + (set! (-> *part-id-table* 2101 init-specs 10 initial-valuef) 128.0) + (set! (-> *part-id-table* 2101 init-specs 10 random-rangef) 128.0) + (set! (-> *part-id-table* 2102 init-specs 10 initial-valuef) 128.0) + (set! (-> *part-id-table* 2102 init-specs 10 random-rangef) 128.0) + (set! (-> *part-id-table* 2104 init-specs 5 initial-valuef) 64.0) + (set! (-> *part-id-table* 2104 init-specs 5 random-rangef) 64.0) ) ) - (none) + (set! (-> *part-id-table* 2102 init-specs 13 initial-valuef) + (lerp (-> *part-id-table* 2102 init-specs 13 initial-valuef) 10.0 f30-0) + ) ) + (let ((a0-11 (handle->process (-> obj focus handle)))) + (if a0-11 + (centurion-method-181 obj (get-trans (the-as process-focusable a0-11) 3)) + ) + ) + (logior! (-> obj skel status) (joint-control-status sync-math)) + (los-control-method-9 (-> obj los) (the-as process-focusable #f) (the-as vector #f) 2048.0) + (let ((t9-12 (method-of-type nav-enemy track-target!))) + (t9-12 obj) + ) + (when (not (logtest? (-> obj draw status) (draw-control-status no-draw))) + (let ((s5-1 (new 'stack-no-clear 'matrix))) + (let* ((a2-10 (-> obj node-list data 12 bone transform)) + (v1-131 (-> a2-10 quad 0)) + (a0-18 (-> a2-10 quad 1)) + (a1-13 (-> a2-10 quad 2)) + (a2-11 (-> a2-10 trans quad)) + ) + (set! (-> s5-1 quad 0) v1-131) + (set! (-> s5-1 quad 1) a0-18) + (set! (-> s5-1 quad 2) a1-13) + (set! (-> s5-1 trans quad) a2-11) + ) + (let ((s4-1 (new 'stack-no-clear 'matrix))) + (if (logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) + (vector-negate-in-place! (the-as vector (-> s5-1 vector))) + ) + (matrix-rotate-y! s4-1 (if (logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) + 2548.6223 + -2548.6223 + ) + ) + (matrix*! s5-1 s4-1 s5-1) + (matrix-rotate-z! s4-1 (if (logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) + 691.76886 + -691.76886 + ) + ) + (matrix*! s5-1 s4-1 s5-1) + ) + (let ((a1-20 (-> s5-1 trans))) + (let ((v1-143 (-> s5-1 trans))) + (let ((a0-25 (-> s5-1 vector))) + (let ((a2-18 (the-as float (if (logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) + -997237719 + #x43a3d70a + ) + ) + ) + ) + (.mov vf7 a2-18) + ) + (.lvf vf5 (&-> a0-25 0 quad)) + ) + (.lvf vf4 (&-> v1-143 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-20 quad) vf6) + ) + (spawn-with-matrix (-> obj part) s5-1) + ) + ) + (none) ) ) diff --git a/goal_src/jak2/levels/common/enemy/flitter.gc b/goal_src/jak2/levels/common/enemy/flitter.gc index ec319387c0..0f223f6a97 100644 --- a/goal_src/jak2/levels/common/enemy/flitter.gc +++ b/goal_src/jak2/levels/common/enemy/flitter.gc @@ -154,30 +154,9 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) f30-0 (-> arg2 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 648)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 649)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 650)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-3 a0-4 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 648) gp-0) + (launch-particles (-> *part-id-table* 649) gp-0) + (launch-particles (-> *part-id-table* 650) gp-0) ) ) ) @@ -1267,7 +1246,7 @@ ) (until (ja-done? 0) (suspend) - (set! f30-0 (seek f30-0 (flitter-method-183 self) (* 0.2 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 (flitter-method-183 self) (* 0.2 (seconds-per-frame)))) (ja :num! (seek! max 0.8)) (let ((a0-7 (-> self skel root-channel 1))) (set! (-> a0-7 frame-interp 1) f30-0) diff --git a/goal_src/jak2/levels/common/enemy/guards/crimson-guard-level.gc b/goal_src/jak2/levels/common/enemy/guards/crimson-guard-level.gc index 0de2caecab..e53fc05278 100644 --- a/goal_src/jak2/levels/common/enemy/guards/crimson-guard-level.gc +++ b/goal_src/jak2/levels/common/enemy/guards/crimson-guard-level.gc @@ -1349,138 +1349,129 @@ (sv-304 vector) (sv-320 vector) ) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (set! sv-240 arg0) - (let ((s0-0 (new 'stack-no-clear 'vector))) - (let ((v1-1 (-> obj root trans))) - (let ((a0-1 *y-vector*)) - (let ((a1-2 8192.0)) - (.mov vf7 a1-2) - ) - (.lvf vf5 (&-> a0-1 quad)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (set! sv-240 arg0) + (let ((s0-0 (new 'stack-no-clear 'vector))) + (let ((v1-1 (-> obj root trans))) + (let ((a0-1 *y-vector*)) + (let ((a1-2 8192.0)) + (.mov vf7 a1-2) ) - (.lvf vf4 (&-> v1-1 quad)) + (.lvf vf5 (&-> a0-1 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> s0-0 quad) vf6) - (set! sv-320 (new 'stack-no-clear 'vector)) - (set! sv-304 (new 'stack-no-clear 'vector)) - (let ((s1-0 (new 'stack-no-clear 'vector)) - (s2-0 (new 'stack-no-clear 'vector)) - (s5-0 (new 'stack-no-clear 'vector)) + (.lvf vf4 (&-> v1-1 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> s0-0 quad) vf6) + (set! sv-320 (new 'stack-no-clear 'vector)) + (set! sv-304 (new 'stack-no-clear 'vector)) + (let ((s1-0 (new 'stack-no-clear 'vector)) + (s2-0 (new 'stack-no-clear 'vector)) + (s5-0 (new 'stack-no-clear 'vector)) + ) + (-> obj node-list data 4 bone transform) + (let ((s4-0 (vector-x-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) + (s3-0 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) ) - (-> obj node-list data 4 bone transform) - (let ((s4-0 (vector-x-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) - (s3-0 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) - ) - (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)) - (set! (-> s0-0 quad) (-> obj root trans quad)) - (cond - ((logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) - (let ((a1-6 s0-0)) - (let ((v1-14 s0-0)) - (let ((a0-9 s4-0)) - (let ((a2-1 4096.0)) - (.mov vf7 a2-1) - ) - (.lvf vf5 (&-> a0-9 quad)) + (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)) + (set! (-> s0-0 quad) (-> obj root trans quad)) + (cond + ((logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) + (let ((a1-6 s0-0)) + (let ((v1-14 s0-0)) + (let ((a0-9 s4-0)) + (let ((a2-1 4096.0)) + (.mov vf7 a2-1) ) - (.lvf vf4 (&-> v1-14 quad)) + (.lvf vf5 (&-> a0-9 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-6 quad) vf6) + (.lvf vf4 (&-> v1-14 quad)) ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-6 quad) vf6) ) - (else - (let ((a1-7 s0-0)) - (let ((v1-15 s0-0)) - (let ((a0-10 s4-0)) - (let ((a2-3 2048.0)) - (.mov vf7 a2-3) - ) - (.lvf vf5 (&-> a0-10 quad)) + ) + (else + (let ((a1-7 s0-0)) + (let ((v1-15 s0-0)) + (let ((a0-10 s4-0)) + (let ((a2-3 2048.0)) + (.mov vf7 a2-3) ) - (.lvf vf4 (&-> v1-15 quad)) + (.lvf vf5 (&-> a0-10 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-7 quad) vf6) + (.lvf vf4 (&-> v1-15 quad)) ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-7 quad) vf6) ) ) - (let ((a1-8 s0-0)) - (let ((v1-16 s0-0)) - (let ((a0-11 s3-0)) - (let ((a2-5 8540.16)) - (.mov vf7 a2-5) - ) - (.lvf vf5 (&-> a0-11 quad)) + ) + (let ((a1-8 s0-0)) + (let ((v1-16 s0-0)) + (let ((a0-11 s3-0)) + (let ((a2-5 8540.16)) + (.mov vf7 a2-5) ) - (.lvf vf4 (&-> v1-16 quad)) + (.lvf vf5 (&-> a0-11 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-8 quad) vf6) + (.lvf vf4 (&-> v1-16 quad)) ) - (vector-normalize! (vector-! sv-320 sv-240 s0-0) 1.0) - (set! sv-288 (new 'stack-no-clear 'vector)) - (let ((v1-20 (-> sv-240 quad))) - (set! (-> sv-288 quad) v1-20) - ) - (set! sv-256 vector-rotate90-around-y!) - (set! sv-272 (new 'stack-no-clear 'vector)) - (let* ((a1-13 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) sv-288 s0-0) -2998.272)) - (v0-5 (sv-256 sv-272 a1-13)) - ) - (vector+! sv-288 sv-288 v0-5) - ) - (vector-normalize! (vector-! sv-320 sv-288 s0-0) 1.0) - (vector-z-quaternion! sv-304 (-> obj root quat)) - (rot-zxy-from-vector! s2-0 sv-304) - (rot-zxy-from-vector! s1-0 sv-320) - (set! (-> s5-0 x) (fmax -14563.556 (fmin 14563.556 (deg- (-> s1-0 x) (-> s2-0 x))))) - (set! (-> s5-0 y) (fmax -14563.556 (fmin 14563.556 (deg- (-> s1-0 y) (-> s2-0 y))))) - (set! (-> s5-0 z) 0.0) - (let ((s2-1 (new 'stack-no-clear 'quaternion))) - (let ((s1-1 (new 'stack-no-clear 'quaternion))) - (quaternion-vector-angle! s2-1 s4-0 (-> s5-0 x)) - (quaternion-vector-angle! s1-1 s3-0 (-> s5-0 y)) - (quaternion*! s2-1 s1-1 s2-1) - ) - (quaternion-pseudo-seek (-> obj joint quat) (-> obj joint quat) s2-1 (-> pp clock seconds-per-frame)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-8 quad) vf6) + ) + (vector-normalize! (vector-! sv-320 sv-240 s0-0) 1.0) + (set! sv-288 (new 'stack-no-clear 'vector)) + (let ((v1-20 (-> sv-240 quad))) + (set! (-> sv-288 quad) v1-20) + ) + (set! sv-256 vector-rotate90-around-y!) + (set! sv-272 (new 'stack-no-clear 'vector)) + (let* ((a1-13 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) sv-288 s0-0) -2998.272)) + (v0-5 (sv-256 sv-272 a1-13)) + ) + (vector+! sv-288 sv-288 v0-5) + ) + (vector-normalize! (vector-! sv-320 sv-288 s0-0) 1.0) + (vector-z-quaternion! sv-304 (-> obj root quat)) + (rot-zxy-from-vector! s2-0 sv-304) + (rot-zxy-from-vector! s1-0 sv-320) + (set! (-> s5-0 x) (fmax -14563.556 (fmin 14563.556 (deg- (-> s1-0 x) (-> s2-0 x))))) + (set! (-> s5-0 y) (fmax -14563.556 (fmin 14563.556 (deg- (-> s1-0 y) (-> s2-0 y))))) + (set! (-> s5-0 z) 0.0) + (let ((s2-1 (new 'stack-no-clear 'quaternion))) + (let ((s1-1 (new 'stack-no-clear 'quaternion))) + (quaternion-vector-angle! s2-1 s4-0 (-> s5-0 x)) + (quaternion-vector-angle! s1-1 s3-0 (-> s5-0 y)) + (quaternion*! s2-1 s1-1 s2-1) ) + (quaternion-pseudo-seek (-> obj joint quat) (-> obj joint quat) s2-1 (seconds-per-frame)) ) ) ) - 0 - (none) ) + 0 + (none) ) ) (defmethod crimson-guard-level-method-197 crimson-guard-level ((obj crimson-guard-level)) - (with-pp - (quaternion-pseudo-seek - (-> obj joint quat) - (-> obj joint quat) - *unity-quaternion* - (-> pp clock seconds-per-frame) - ) - ) + (quaternion-pseudo-seek (-> obj joint quat) (-> obj joint quat) *unity-quaternion* (seconds-per-frame)) ) ;; WARN: Return type mismatch object vs none. @@ -4028,6 +4019,7 @@ (f4-0 (-> v1-18 y)) (f5-0 (-> v1-18 z)) ) + ;; og:preserve-this inlined vector-dot ;; (.mula.s f0-7 f3-2) ;; (.madda.s f1-4 f4-0) ;; (.madd.s f0-8 f2-2 f5-0) diff --git a/goal_src/jak2/levels/common/enemy/guards/transport-level.gc b/goal_src/jak2/levels/common/enemy/guards/transport-level.gc index f919870112..aea1a30220 100644 --- a/goal_src/jak2/levels/common/enemy/guards/transport-level.gc +++ b/goal_src/jak2/levels/common/enemy/guards/transport-level.gc @@ -127,7 +127,7 @@ :post (behavior () (set! (-> self root transv y) (* 2.0 (- (-> self y-dest) (-> self root trans y)))) (set! (-> self root transv y) (fmax -122880.0 (fmin 122880.0 (-> self root transv y)))) - (+! (-> self root trans y) (* (-> self root transv y) (-> self clock seconds-per-frame))) + (+! (-> self root trans y) (* (-> self root transv y) (seconds-per-frame))) (if (< (fabs (- (-> self root trans y) (-> self y-dest))) 409.6) (go-virtual idle) ) @@ -238,9 +238,9 @@ ) :post (behavior () (transport-level-method-34 self) - (+! (-> self root transv y) (* 40960.0 (-> self clock seconds-per-frame))) + (+! (-> self root transv y) (* 40960.0 (seconds-per-frame))) (set! (-> self root transv y) (fmax -122880.0 (fmin 122880.0 (-> self root transv y)))) - (+! (-> self root trans y) (* (-> self root transv y) (-> self clock seconds-per-frame))) + (+! (-> self root trans y) (* (-> self root transv y) (seconds-per-frame))) (if (and (not (logtest? (-> self draw status) (draw-control-status on-screen))) (< 163840.0 (- (-> self root trans y) (-> self y-dest))) ) diff --git a/goal_src/jak2/levels/common/enemy/hover/crimson-guard-hover.gc b/goal_src/jak2/levels/common/enemy/hover/crimson-guard-hover.gc index 4253decac4..00926bcc28 100644 --- a/goal_src/jak2/levels/common/enemy/hover/crimson-guard-hover.gc +++ b/goal_src/jak2/levels/common/enemy/hover/crimson-guard-hover.gc @@ -747,7 +747,7 @@ (seek! (-> self attack-miss-dist-curr) (-> self attack-miss-dist-max) - (* 0.5 (-> self clock seconds-per-frame) (- (-> self attack-miss-dist-max) (-> self attack-miss-dist-min))) + (* 0.5 (seconds-per-frame) (- (-> self attack-miss-dist-max) (-> self attack-miss-dist-min))) ) ((the-as (function none) (-> (method-of-type crimson-guard-hover ambush) post))) (none) @@ -939,7 +939,7 @@ (seek! (-> self attack-miss-dist-curr) (-> self attack-miss-dist-max) - (* 0.5 (-> self clock seconds-per-frame) (- (-> self attack-miss-dist-max) (-> self attack-miss-dist-min))) + (* 0.5 (seconds-per-frame) (- (-> self attack-miss-dist-max) (-> self attack-miss-dist-min))) ) (hover-enemy-hostile-post) (none) @@ -1411,40 +1411,38 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (seek! (-> obj gun-x-angle) (-> obj gun-x-angle-final) (* 21845.334 (-> pp clock seconds-per-frame))) - (let* ((s5-0 (hover-nav-control-method-16 (-> obj hover) (new 'stack-no-clear 'vector))) - (s4-0 - (quaternion-vector-angle! - (new 'stack-no-clear 'quaternion) - *x-vector* - (fmax -8192.0 (fmin 8192.0 (* 14563.556 (-> s5-0 z)))) - ) + (seek! (-> obj gun-x-angle) (-> obj gun-x-angle-final) (* 21845.334 (seconds-per-frame))) + (let* ((s5-0 (hover-nav-control-method-16 (-> obj hover) (new 'stack-no-clear 'vector))) + (s4-0 + (quaternion-vector-angle! + (new 'stack-no-clear 'quaternion) + *x-vector* + (fmax -8192.0 (fmin 8192.0 (* 14563.556 (-> s5-0 z)))) ) - (a1-4 - (quaternion-vector-angle! - (new 'stack-no-clear 'quaternion) - *z-vector* - (fmax -8192.0 (fmin 8192.0 (* 14563.556 (-> s5-0 x)))) - ) - ) - (s5-1 (new 'stack-no-clear 'quaternion)) ) - (quaternion*! s5-1 a1-4 s4-0) - (quaternion-slerp! - (the-as quaternion (-> obj hips-jmod target)) - (the-as quaternion (-> obj hips-jmod target)) - s5-1 - (* 2.0 (-> pp clock seconds-per-frame)) - ) + (a1-4 + (quaternion-vector-angle! + (new 'stack-no-clear 'quaternion) + *z-vector* + (fmax -8192.0 (fmin 8192.0 (* 14563.556 (-> s5-0 x)))) + ) + ) + (s5-1 (new 'stack-no-clear 'quaternion)) + ) + (quaternion*! s5-1 a1-4 s4-0) + (quaternion-slerp! + (the-as quaternion (-> obj hips-jmod target)) + (the-as quaternion (-> obj hips-jmod target)) + s5-1 + (* 2.0 (seconds-per-frame)) ) - (let ((t9-6 (method-of-type hover-enemy track-target!))) - (t9-6 obj) - ) - (los-control-method-9 (-> obj los) (the-as process-focusable #f) (the-as vector #f) 2048.0) - 0 - (none) ) + (let ((t9-6 (method-of-type hover-enemy track-target!))) + (t9-6 obj) + ) + (los-control-method-9 (-> obj los) (the-as process-focusable #f) (the-as vector #f) 2048.0) + 0 + (none) ) (defmethod hover-enemy-method-142 crimson-guard-hover ((obj crimson-guard-hover)) @@ -1453,83 +1451,81 @@ (gp-0 (lambda ((arg0 crimson-guard-hover) (arg1 cspace) (arg2 float) (arg3 float) (arg4 vector) (arg5 vector) (arg6 int)) (local-vars (sv-192 float) (sv-208 quaternion) (sv-224 vector)) - (with-pp - (set! sv-192 arg2) - (let ((s0-0 arg3)) - (set! sv-224 arg4) - (let ((s1-0 arg5) - (s3-0 arg6) - (s4-0 (vector<-cspace! (new 'stack-no-clear 'vector) arg1)) - (s5-0 (new 'stack-no-clear 'matrix)) - (a1-3 (matrix-with-scale->quaternion (new 'stack-no-clear 'quaternion) (-> arg1 bone transform))) - ) - (set! sv-208 (new 'stack-no-clear 'quaternion)) - (let ((s2-1 (new 'stack-no-clear 'vector))) - (-> arg0 scale) - (quaternion-rotate-local-z! sv-208 a1-3 sv-192) - (quaternion->matrix s5-0 sv-208) - (set! (-> s2-1 quad) (-> arg0 root scale quad)) - (scale-matrix! s5-0 s2-1 s5-0) - (let* ((s1-1 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) s1-0 (-> arg0 root quat))) - (t9-6 vector-inv-orient-by-quat!) - (a0-10 (new 'stack-no-clear 'vector)) - (a2-4 (-> arg0 root quat)) - (v0-6 (t9-6 a0-10 sv-224 a2-4)) - (f30-0 (* 2867200.0 (-> pp clock seconds-per-frame))) - (f28-0 - (seek - (-> arg0 thrust s3-0) - (+ (* 0.4 (fmax 0.0 (* (-> v0-6 x) s0-0))) - (fmax 0.0 (-> v0-6 y)) - (fabs (* 0.2 (-> v0-6 z))) - (fmax 0.0 (-> s1-1 y)) - ) - (* 0.2 f30-0) - ) + (set! sv-192 arg2) + (let ((s0-0 arg3)) + (set! sv-224 arg4) + (let ((s1-0 arg5) + (s3-0 arg6) + (s4-0 (vector<-cspace! (new 'stack-no-clear 'vector) arg1)) + (s5-0 (new 'stack-no-clear 'matrix)) + (a1-3 (matrix-with-scale->quaternion (new 'stack-no-clear 'quaternion) (-> arg1 bone transform))) + ) + (set! sv-208 (new 'stack-no-clear 'quaternion)) + (let ((s2-1 (new 'stack-no-clear 'vector))) + (-> arg0 scale) + (quaternion-rotate-local-z! sv-208 a1-3 sv-192) + (quaternion->matrix s5-0 sv-208) + (set! (-> s2-1 quad) (-> arg0 root scale quad)) + (scale-matrix! s5-0 s2-1 s5-0) + (let* ((s1-1 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) s1-0 (-> arg0 root quat))) + (t9-6 vector-inv-orient-by-quat!) + (a0-10 (new 'stack-no-clear 'vector)) + (a2-4 (-> arg0 root quat)) + (v0-6 (t9-6 a0-10 sv-224 a2-4)) + (f30-0 (* 2867200.0 (seconds-per-frame))) + (f28-0 + (seek + (-> arg0 thrust s3-0) + (+ (* 0.4 (fmax 0.0 (* (-> v0-6 x) s0-0))) + (fmax 0.0 (-> v0-6 y)) + (fabs (* 0.2 (-> v0-6 z))) + (fmax 0.0 (-> s1-1 y)) + ) + (* 0.2 f30-0) ) ) - (let ((f20-0 (lerp-scale 819.2 4096.0 f28-0 1638.4 f30-0)) - (f26-0 (lerp-scale 4915.2 11468.8 f28-0 1638.4 f30-0)) - (f22-0 (lerp-scale 0.5 1.5 f28-0 1638.4 f30-0)) - (f24-0 (lerp-scale 0.1 1.0 f28-0 1638.4 f30-0)) - ) - (lerp-scale 0.1 1.0 f28-0 1638.4 f30-0) - (let ((f1-10 (lerp-scale 0.02 0.6 f28-0 1638.4 f30-0)) - (f2-6 (fmin 1.0 (-> s2-1 x))) - (f0-14 (fmin 1.0 (-> s2-1 y))) - ) - (set! (-> *part-id-table* 718 init-specs 4 initial-valuef) (* f20-0 f2-6)) - (set! (-> *part-id-table* 718 init-specs 5 initial-valuef) (* f26-0 f0-14)) - (set! (-> *part-id-table* 722 init-specs 3 initial-valuef) (* f22-0 f2-6)) - (set! (-> *part-id-table* 719 init-specs 1 initial-valuef) (* f24-0 f0-14)) - (set! (-> *part-id-table* 720 init-specs 1 initial-valuef) (* f1-10 f0-14)) - (set! (-> *part-id-table* 721 init-specs 0 initial-valuef) (* f24-0 f0-14)) - (set! (-> arg0 thrust s3-0) f28-0) - (let ((f0-15 (* f26-0 f0-14))) - (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s5-0 vector 1) (* -0.5 f0-15)) + ) + (let ((f20-0 (lerp-scale 819.2 4096.0 f28-0 1638.4 f30-0)) + (f26-0 (lerp-scale 4915.2 11468.8 f28-0 1638.4 f30-0)) + (f22-0 (lerp-scale 0.5 1.5 f28-0 1638.4 f30-0)) + (f24-0 (lerp-scale 0.1 1.0 f28-0 1638.4 f30-0)) + ) + (lerp-scale 0.1 1.0 f28-0 1638.4 f30-0) + (let ((f1-10 (lerp-scale 0.02 0.6 f28-0 1638.4 f30-0)) + (f2-6 (fmin 1.0 (-> s2-1 x))) + (f0-14 (fmin 1.0 (-> s2-1 y))) ) + (set! (-> *part-id-table* 718 init-specs 4 initial-valuef) (* f20-0 f2-6)) + (set! (-> *part-id-table* 718 init-specs 5 initial-valuef) (* f26-0 f0-14)) + (set! (-> *part-id-table* 722 init-specs 3 initial-valuef) (* f22-0 f2-6)) + (set! (-> *part-id-table* 719 init-specs 1 initial-valuef) (* f24-0 f0-14)) + (set! (-> *part-id-table* 720 init-specs 1 initial-valuef) (* f1-10 f0-14)) + (set! (-> *part-id-table* 721 init-specs 0 initial-valuef) (* f24-0 f0-14)) + (set! (-> arg0 thrust s3-0) f28-0) + (let ((f0-15 (* f26-0 f0-14))) + (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s5-0 vector 1) (* -0.5 f0-15)) ) ) - (set! (-> s5-0 trans quad) (-> s4-0 quad)) - (spawn-with-matrix (-> arg0 engine-part) s5-0) - (let ((f0-17 (lerp-scale 0.4 1.0 f28-0 1638.4 f30-0))) - (sound-play-by-name - (static-sound-name "hover-jets") - (-> arg0 sound-id) - (the int (* 1024.0 f0-17)) - 0 - 0 - (sound-group sfx) - #t - ) + ) + (set! (-> s5-0 trans quad) (-> s4-0 quad)) + (spawn-with-matrix (-> arg0 engine-part) s5-0) + (let ((f0-17 (lerp-scale 0.4 1.0 f28-0 1638.4 f30-0))) + (sound-play-by-name + (static-sound-name "hover-jets") + (-> arg0 sound-id) + (the int (* 1024.0 f0-17)) + 0 + 0 + (sound-group sfx) + #t ) ) ) ) ) - 0 - (none) ) + 0 + (none) ) ) ) diff --git a/goal_src/jak2/levels/common/enemy/hover/flamer.gc b/goal_src/jak2/levels/common/enemy/hover/flamer.gc index 8667c93229..f342549677 100644 --- a/goal_src/jak2/levels/common/enemy/hover/flamer.gc +++ b/goal_src/jak2/levels/common/enemy/hover/flamer.gc @@ -672,63 +672,61 @@ ) (suspend) (ja :num! (loop!)) - (seek! (-> self sound-volume) 1.0 (* 0.5 (-> self clock seconds-per-frame))) + (seek! (-> self sound-volume) 1.0 (* 0.5 (seconds-per-frame))) ) #f ) (defmethod flamer-method-184 flamer ((obj flamer)) - (with-pp - (let ((v1-0 (-> obj ground-mode))) - (cond - ((= v1-0 1) - (seek! (-> obj base-pos y) (-> obj dest-pos y) (* 40960.0 (-> pp clock seconds-per-frame))) - ) - ((zero? v1-0) - (let ((a1-1 (new 'stack-no-clear 'collide-query))) - (cond - ((enemy-method-125 obj a1-1 (collide-spec backgnd) 8192.0 26624.0 1024.0) - (set! (-> obj base-pos y) (+ 22528.0 (-> obj root gspot-pos y))) - ) - (else - (let ((s4-0 (-> obj nav)) - (s3-0 (-> obj base-pos)) - (s5-0 (new 'stack 'nav-find-poly-parms)) - ) - (vector-! (-> s5-0 point) s3-0 (-> s4-0 state mesh bounds)) - (set! (-> s5-0 y-threshold) (-> s4-0 nearest-y-threshold)) - (set! (-> s5-0 ignore) (the-as uint 2)) - (find-nearest-poly-to-point-local (-> s4-0 state mesh) s5-0) - (let ((v1-13 (-> s5-0 poly))) - (if v1-13 - (set! (-> obj base-pos y) (+ 22528.0 (-> obj nav state mesh bounds y) (-> v1-13 vertex0 y))) - ) + (let ((v1-0 (-> obj ground-mode))) + (cond + ((= v1-0 1) + (seek! (-> obj base-pos y) (-> obj dest-pos y) (* 40960.0 (seconds-per-frame))) + ) + ((zero? v1-0) + (let ((a1-1 (new 'stack-no-clear 'collide-query))) + (cond + ((enemy-method-125 obj a1-1 (collide-spec backgnd) 8192.0 26624.0 1024.0) + (set! (-> obj base-pos y) (+ 22528.0 (-> obj root gspot-pos y))) + ) + (else + (let ((s4-0 (-> obj nav)) + (s3-0 (-> obj base-pos)) + (s5-0 (new 'stack 'nav-find-poly-parms)) ) + (vector-! (-> s5-0 point) s3-0 (-> s4-0 state mesh bounds)) + (set! (-> s5-0 y-threshold) (-> s4-0 nearest-y-threshold)) + (set! (-> s5-0 ignore) (the-as uint 2)) + (find-nearest-poly-to-point-local (-> s4-0 state mesh) s5-0) + (let ((v1-13 (-> s5-0 poly))) + (if v1-13 + (set! (-> obj base-pos y) (+ 22528.0 (-> obj nav state mesh bounds y) (-> v1-13 vertex0 y))) + ) ) ) ) ) ) - ) + ) ) - (let ((v1-16 (+ (current-time) (the-as time-frame (-> obj sync-off))))) - (seek! - (-> obj root trans y) - (+ (-> obj base-pos y) (* 1228.8 (cos (* 100.66974 (the float (mod v1-16 651)))))) - (* 16384.0 (-> pp clock seconds-per-frame)) - ) - ) - (let ((s5-2 (new 'stack-no-clear 'vector))) - (set! (-> s5-2 quad) (-> *up-vector* quad)) - (vector-normalize! s5-2 6144.0) - (vector/! s5-2 s5-2 (-> obj root scale)) - (vector-rotate-around-z! s5-2 s5-2 (-> obj flit-angle)) - (vector-seek! (-> obj flit-joint target) s5-2 (* 32768.0 (-> pp clock seconds-per-frame))) - ) - (update-trans! (-> obj sound) (-> obj root trans)) - (update! (-> obj sound)) - (none) ) + (let ((v1-16 (+ (current-time) (the-as time-frame (-> obj sync-off))))) + (seek! + (-> obj root trans y) + (+ (-> obj base-pos y) (* 1228.8 (cos (* 100.66974 (the float (mod v1-16 651)))))) + (* 16384.0 (seconds-per-frame)) + ) + ) + (let ((s5-2 (new 'stack-no-clear 'vector))) + (set! (-> s5-2 quad) (-> *up-vector* quad)) + (vector-normalize! s5-2 6144.0) + (vector/! s5-2 s5-2 (-> obj root scale)) + (vector-rotate-around-z! s5-2 s5-2 (-> obj flit-angle)) + (vector-seek! (-> obj flit-joint target) s5-2 (* 32768.0 (seconds-per-frame))) + ) + (update-trans! (-> obj sound) (-> obj root trans)) + (update! (-> obj sound)) + (none) ) (defmethod go-stare flamer ((obj flamer)) @@ -891,7 +889,7 @@ (t9-0) ) ) - (+! (-> self path-pos) (* 0.85 (-> self clock seconds-per-frame))) + (+! (-> self path-pos) (* 0.85 (seconds-per-frame))) (let ((f30-0 (-> self path-pos))) (when (>= f30-0 1.0) (set! (-> self path-pos) 1.0) @@ -982,7 +980,7 @@ (none) ) :trans (behavior () - (set! (-> self path-pos) (- (-> self path-pos) (* 0.33333334 (-> self clock seconds-per-frame)))) + (set! (-> self path-pos) (- (-> self path-pos) (* 0.33333334 (seconds-per-frame)))) (let ((f30-0 (-> self path-pos))) (when (>= 0.0 f30-0) (set! (-> self path-pos) 0.0) @@ -1011,7 +1009,7 @@ (set! (-> self flit-angle) (* 182.04445 (rand-vu-float-range 0.0 360.0))) (set! (-> self flit-timer) (current-time)) ) - (vector-seek! (-> self root trans) (-> self base-pos) (* 16384.0 (-> self clock seconds-per-frame))) + (vector-seek! (-> self root trans) (-> self base-pos) (* 16384.0 (seconds-per-frame))) (flamer-method-184 self) (nav-enemy-simple-post) (none) @@ -1292,7 +1290,7 @@ (none) ) :post (behavior () - (seek! (-> self sound-volume) 0.0 (* 0.5 (-> self clock seconds-per-frame))) + (seek! (-> self sound-volume) 0.0 (* 0.5 (seconds-per-frame))) (flamer-method-187 self) (let ((t9-2 (-> (method-of-type nav-enemy knocked) post))) (if t9-2 diff --git a/goal_src/jak2/levels/common/enemy/hover/hover-enemy.gc b/goal_src/jak2/levels/common/enemy/hover/hover-enemy.gc index 06dc72af58..e1e81a646d 100644 --- a/goal_src/jak2/levels/common/enemy/hover/hover-enemy.gc +++ b/goal_src/jak2/levels/common/enemy/hover/hover-enemy.gc @@ -101,18 +101,14 @@ (let ((f28-0 (lerp-scale -10922.667 10922.667 (-> gp-0 z) -1.0 1.0)) (f30-0 (lerp-scale 10922.667 -10922.667 (-> gp-0 x) -1.0 1.0)) ) - (set! (-> self rotation-vec x) - (deg-seek (-> self rotation-vec x) f28-0 (* 5461.3335 (-> self clock seconds-per-frame))) - ) - (set! (-> self rotation-vec z) - (deg-seek (-> self rotation-vec z) f30-0 (* 6371.5557 (-> self clock seconds-per-frame))) - ) + (set! (-> self rotation-vec x) (deg-seek (-> self rotation-vec x) f28-0 (* 5461.3335 (seconds-per-frame)))) + (set! (-> self rotation-vec z) (deg-seek (-> self rotation-vec z) f30-0 (* 6371.5557 (seconds-per-frame)))) ) ) (let ((s4-1 (vector-! (new 'stack-no-clear 'vector) (-> self focus-pos) (-> self root trans)))) (vector-normalize! s4-1 1.0) (set! (-> self rotation-vec y) - (deg-seek (-> self rotation-vec y) (vector-y-angle s4-1) (* 14563.556 (-> self clock seconds-per-frame))) + (deg-seek (-> self rotation-vec y) (vector-y-angle s4-1) (* 14563.556 (seconds-per-frame))) ) ) (hover-enemy-method-146 self) @@ -433,8 +429,8 @@ (let ((s5-0 (hover-nav-control-method-16 (-> self hover) (new 'stack-no-clear 'vector))) (gp-1 (-> self hover-info)) ) - (seek! (-> self local-dir x) (-> s5-0 x) (* 1.3 (-> self clock seconds-per-frame))) - (seek! (-> self local-dir z) (-> s5-0 z) (* 1.3 (-> self clock seconds-per-frame))) + (seek! (-> self local-dir x) (-> s5-0 x) (* 1.3 (seconds-per-frame))) + (seek! (-> self local-dir z) (-> s5-0 z) (* 1.3 (seconds-per-frame))) (hover-enemy-method-145 self 1 (-> self local-dir x) (-> gp-1 fly-left-anim) (-> gp-1 fly-right-anim)) (hover-enemy-method-145 self 2 (-> self local-dir z) (-> gp-1 fly-forward-anim) (-> gp-1 fly-backward-anim)) ) @@ -810,17 +806,13 @@ (none) ) :post (behavior () - (seek! - (-> self flying-death-spin) - (-> self flying-death-spin-dest) - (* 196608.0 (-> self clock seconds-per-frame)) - ) + (seek! (-> self flying-death-spin) (-> self flying-death-spin-dest) (* 196608.0 (seconds-per-frame))) (let ((gp-0 (-> self root))) (let ((a2-2 (quaternion-vector-angle! (new 'stack-no-clear 'quaternion) (-> self flying-death-spin-axis) - (* (-> self flying-death-spin) (-> self clock seconds-per-frame)) + (* (-> self flying-death-spin) (seconds-per-frame)) ) ) ) @@ -834,7 +826,7 @@ (seek! (-> self hover speed) (* 2.0 (-> v1-6 max-speed)) - (* 0.8 (-> self clock seconds-per-frame) (-> v1-6 max-acceleration)) + (* 0.8 (seconds-per-frame) (-> v1-6 max-acceleration)) ) ) (vector-normalize-copy! (-> gp-0 transv) (-> self flying-death-transv) (-> self hover speed)) diff --git a/goal_src/jak2/levels/common/enemy/hover/hover-formation.gc b/goal_src/jak2/levels/common/enemy/hover/hover-formation.gc index aa794046b8..8834cb729e 100644 --- a/goal_src/jak2/levels/common/enemy/hover/hover-formation.gc +++ b/goal_src/jak2/levels/common/enemy/hover/hover-formation.gc @@ -154,12 +154,7 @@ ) (a0-7 (let* ((a1-11 - (quaternion-slerp! - (-> obj focus-quat) - (-> obj focus-quat) - (get-quat a0-7 2) - (* 0.8 (-> pp clock seconds-per-frame)) - ) + (quaternion-slerp! (-> obj focus-quat) (-> obj focus-quat) (get-quat a0-7 2) (* 0.8 (seconds-per-frame))) ) (a1-12 (vector-z-quaternion! (new 'stack-no-clear 'vector) a1-11)) ) diff --git a/goal_src/jak2/levels/common/enemy/hover/hover-nav-control.gc b/goal_src/jak2/levels/common/enemy/hover/hover-nav-control.gc index 89ff7f9327..3388a619c4 100644 --- a/goal_src/jak2/levels/common/enemy/hover/hover-nav-control.gc +++ b/goal_src/jak2/levels/common/enemy/hover/hover-nav-control.gc @@ -1249,7 +1249,7 @@ (defmethod hover-nav-control-method-10 hover-nav-control ((obj hover-nav-control) (arg0 vector) (arg1 vector) (arg2 vector)) (set! (-> obj dest-pos quad) (-> arg0 quad)) (cond - ;; condition has been changed from `arg2` because some places call this method with #t as arg2 + ;; og:preserve-this condition has been changed from `arg2` because some places call this method with #t as arg2 ((and (!= arg2 #t) arg2) ;arg2 (set! (-> obj dest-vel quad) (-> arg2 quad)) (set! (-> obj root transv quad) (-> arg2 quad)) @@ -1419,7 +1419,7 @@ ) (hover-nav-path-segment-method-9 s2-1 f0-19) ) - (seek! (-> s3-1 curr-u) 1.0 (* (-> s2-1 du) (-> pp clock seconds-per-frame))) + (seek! (-> s3-1 curr-u) 1.0 (* (-> s2-1 du) (seconds-per-frame))) (when (and (>= (-> s3-1 curr-u) 1.0) (-> s2-1 next)) (set! (-> s3-1 curr-segment) (the-as hover-nav-path-segment (-> s2-1 next))) (set! (-> s3-1 curr-u) 0.0) @@ -1448,127 +1448,123 @@ ) (defmethod hover-nav-control-method-25 hover-nav-control ((obj hover-nav-control)) - (with-pp - (let ((s5-0 (new 'stack-no-clear 'hover-nav-path-segment)) - (f28-0 (hover-nav-control-method-31 obj)) - (f30-0 (hover-nav-control-method-30 obj)) - (s3-0 (-> obj root transv)) - ) - (-> obj transvv) - (let ((s4-0 (-> obj dest-offset))) - (vector-normalize-copy! (-> s5-0 curve-matrix vector 2) s3-0 1.0) - (vector-normalize-copy! (-> s5-0 curve-matrix trans) s4-0 1.0) - (set! (-> s5-0 pos-index 0) (vector-dot s3-0 (-> s5-0 curve-matrix trans))) - (set! (-> s5-0 pos-index 1) (/ (* 0.5 (-> s5-0 pos-index 0) (-> s5-0 pos-index 0)) (* 0.2 f28-0))) - (set! (-> s5-0 dist) (vector-dot (-> obj dest-vel) (-> s5-0 curve-matrix trans))) - (vector-normalize-copy! (-> s5-0 curve-matrix vector 1) s4-0 (-> obj target-speed)) - (vector-! (the-as vector (-> s5-0 curve-matrix)) (-> s5-0 curve-matrix vector 1) s3-0) - (let ((f0-9 (vector-length (the-as vector (-> s5-0 curve-matrix))))) - (if (< f28-0 f0-9) - (vector-float*! (the-as vector (-> s5-0 curve-matrix)) (the-as vector (-> s5-0 curve-matrix)) (/ f28-0 f0-9)) - ) - ) - (vector+float*! - (the-as vector (&-> s5-0 next)) + (let ((s5-0 (new 'stack-no-clear 'hover-nav-path-segment)) + (f28-0 (hover-nav-control-method-31 obj)) + (f30-0 (hover-nav-control-method-30 obj)) + (s3-0 (-> obj root transv)) + ) + (-> obj transvv) + (let ((s4-0 (-> obj dest-offset))) + (vector-normalize-copy! (-> s5-0 curve-matrix vector 2) s3-0 1.0) + (vector-normalize-copy! (-> s5-0 curve-matrix trans) s4-0 1.0) + (set! (-> s5-0 pos-index 0) (vector-dot s3-0 (-> s5-0 curve-matrix trans))) + (set! (-> s5-0 pos-index 1) (/ (* 0.5 (-> s5-0 pos-index 0) (-> s5-0 pos-index 0)) (* 0.2 f28-0))) + (set! (-> s5-0 dist) (vector-dot (-> obj dest-vel) (-> s5-0 curve-matrix trans))) + (vector-normalize-copy! (-> s5-0 curve-matrix vector 1) s4-0 (-> obj target-speed)) + (vector-! (the-as vector (-> s5-0 curve-matrix)) (-> s5-0 curve-matrix vector 1) s3-0) + (let ((f0-9 (vector-length (the-as vector (-> s5-0 curve-matrix))))) + (if (< f28-0 f0-9) + (vector-float*! (the-as vector (-> s5-0 curve-matrix)) (the-as vector (-> s5-0 curve-matrix)) (/ f28-0 f0-9)) + ) + ) + (vector+float*! + (the-as vector (&-> s5-0 next)) + (-> obj root transv) + (the-as vector (-> s5-0 curve-matrix)) + (seconds-per-frame) + ) + (let ((f0-12 (vector-length (the-as vector (&-> s5-0 next)))) + (f1-6 (if (logtest? (-> obj flags) (hover-nav-flags honflags-1)) + (fmax 8192.0 (* 0.8 (-> obj los-obstruction-distance))) + f30-0 + ) + ) + ) + (if (< f1-6 f0-12) + (vector-float*! (the-as vector (&-> s5-0 next)) (the-as vector (&-> s5-0 next)) (/ f1-6 f0-12)) + ) + ) + (set! (-> obj root transv quad) (-> (the-as vector (&-> s5-0 next)) quad)) + (set! (-> obj transvv quad) (-> s5-0 curve-matrix quad 0)) + (when *debug-hover* + (format *stdcon* " speed act: ~m target: ~m~%" (-> s5-0 pos-index 0) (-> obj target-speed)) + (add-debug-vector + #t + (bucket-id debug-no-zbuf1) + (-> obj root trans) (-> obj root transv) - (the-as vector (-> s5-0 curve-matrix)) - (-> pp clock seconds-per-frame) + (meters 0.00024414062) + *color-yellow* ) - (let ((f0-12 (vector-length (the-as vector (&-> s5-0 next)))) - (f1-6 (if (logtest? (-> obj flags) (hover-nav-flags honflags-1)) - (fmax 8192.0 (* 0.8 (-> obj los-obstruction-distance))) - f30-0 - ) - ) - ) - (if (< f1-6 f0-12) - (vector-float*! (the-as vector (&-> s5-0 next)) (the-as vector (&-> s5-0 next)) (/ f1-6 f0-12)) - ) + (add-debug-vector + #t + (bucket-id debug-no-zbuf1) + (-> obj root trans) + (-> s5-0 curve-matrix vector 1) + (meters 0.00024414062) + *color-cyan* ) - (set! (-> obj root transv quad) (-> (the-as vector (&-> s5-0 next)) quad)) - (set! (-> obj transvv quad) (-> s5-0 curve-matrix quad 0)) - (when *debug-hover* - (format *stdcon* " speed act: ~m target: ~m~%" (-> s5-0 pos-index 0) (-> obj target-speed)) - (add-debug-vector - #t - (bucket-id debug-no-zbuf1) - (-> obj root trans) - (-> obj root transv) - (meters 0.00024414062) - *color-yellow* - ) - (add-debug-vector - #t - (bucket-id debug-no-zbuf1) - (-> obj root trans) - (-> s5-0 curve-matrix vector 1) - (meters 0.00024414062) - *color-cyan* - ) - (add-debug-vector - #t - (bucket-id debug-no-zbuf1) - (-> obj root trans) - (-> obj transvv) - (meters 0.00024414062) - *color-blue* - ) - (add-debug-x - #t - (bucket-id debug-no-zbuf1) - (vector+! (new 'stack-no-clear 'vector) (-> obj root trans) s4-0) - *color-green* - ) + (add-debug-vector + #t + (bucket-id debug-no-zbuf1) + (-> obj root trans) + (-> obj transvv) + (meters 0.00024414062) + *color-blue* + ) + (add-debug-x + #t + (bucket-id debug-no-zbuf1) + (vector+! (new 'stack-no-clear 'vector) (-> obj root trans) s4-0) + *color-green* ) ) ) - 0 - (none) ) + 0 + (none) ) (defmethod hover-nav-control-method-12 hover-nav-control ((obj hover-nav-control)) (local-vars (at-0 int)) - (with-pp - (rlet ((vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (hover-nav-control-method-25 obj) - (hover-nav-control-method-24 obj) - (let ((v1-5 (-> obj root transv)) - (a0-4 (-> obj root transv)) - (a1-0 (new 'stack-no-clear 'vector)) - ) - (.lvf vf1 (&-> (-> obj nav-collide-impulse) quad)) - (let ((f0-0 (-> pp clock seconds-per-frame))) - (.mov at-0 f0-0) + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (hover-nav-control-method-25 obj) + (hover-nav-control-method-24 obj) + (let ((v1-5 (-> obj root transv)) + (a0-4 (-> obj root transv)) + (a1-0 (new 'stack-no-clear 'vector)) ) - (.mov vf2 at-0) - (.mov.vf vf1 vf0 :mask #b1000) - (.mul.x.vf vf1 vf1 vf2 :mask #b111) - (.svf (&-> a1-0 quad) vf1) - (vector+! v1-5 a0-4 a1-0) + (.lvf vf1 (&-> (-> obj nav-collide-impulse) quad)) + (let ((f0-0 (seconds-per-frame))) + (.mov at-0 f0-0) ) - (let ((v1-7 (-> obj root)) - (a2-2 (new 'stack-no-clear 'collide-query)) - ) - (set! (-> a2-2 collide-with) (-> v1-7 root-prim prim-core collide-with)) - (set! (-> a2-2 ignore-process0) (-> v1-7 process)) - (set! (-> a2-2 ignore-process1) #f) - (set! (-> a2-2 ignore-pat) (-> v1-7 pat-ignore-mask)) - (set! (-> a2-2 action-mask) (collide-action solid)) - (fill-cache-integrate-and-collide v1-7 (-> v1-7 transv) a2-2 (meters 0)) - ) - (vector-float*! - (-> obj root transv) - (-> obj root transv) - (- 1.0 (* (-> obj params friction) (-> pp clock seconds-per-frame))) - ) - 0 - (none) + (.mov vf2 at-0) + (.mov.vf vf1 vf0 :mask #b1000) + (.mul.x.vf vf1 vf1 vf2 :mask #b111) + (.svf (&-> a1-0 quad) vf1) + (vector+! v1-5 a0-4 a1-0) ) + (let ((v1-7 (-> obj root)) + (a2-2 (new 'stack-no-clear 'collide-query)) + ) + (set! (-> a2-2 collide-with) (-> v1-7 root-prim prim-core collide-with)) + (set! (-> a2-2 ignore-process0) (-> v1-7 process)) + (set! (-> a2-2 ignore-process1) #f) + (set! (-> a2-2 ignore-pat) (-> v1-7 pat-ignore-mask)) + (set! (-> a2-2 action-mask) (collide-action solid)) + (fill-cache-integrate-and-collide v1-7 (-> v1-7 transv) a2-2 (meters 0)) + ) + (vector-float*! + (-> obj root transv) + (-> obj root transv) + (- 1.0 (* (-> obj params friction) (seconds-per-frame))) + ) + 0 + (none) ) ) @@ -1583,91 +1579,89 @@ ;; ERROR: Stack slot load at 160 mismatch: defined as size 4, got size 16 (defmethod hover-nav-control-method-13 hover-nav-control ((obj hover-nav-control)) (local-vars (sv-112 float) (sv-128 float) (sv-144 float) (sv-160 float)) - (with-pp - (let* ((s5-0 (-> obj root)) - (s3-0 (hover-nav-control-method-17 obj)) - (v1-2 (vector-! (new 'stack-no-clear 'vector) (the-as vector s3-0) (-> s5-0 trans))) - (s4-1 (vector-! (new 'stack-no-clear 'vector) (-> obj dest-pos) v1-2)) - ) - (when (not (logtest? (-> obj flags) (hover-nav-flags honflags-0))) - (let* ((s2-0 (-> obj root transv)) - (f30-0 (vector-length s2-0)) - (s1-0 lerp-scale) - (s0-0 0.0) - ) - (set! sv-112 (hover-nav-control-method-30 obj)) - (set! sv-128 (* 2.0 f30-0)) - (set! sv-144 (the-as float 0.0)) - (let* ((t0-0 (hover-nav-control-method-30 obj)) - (f0-4 (s1-0 s0-0 sv-112 sv-128 sv-144 t0-0)) - (t0-2 (vector+float*! (new 'stack-no-clear 'vector) (the-as vector s3-0) s2-0 (/ f0-4 f30-0))) - (s2-1 (nav-network-method-26 - (-> obj nav) - (new 'stack-no-clear 'vector) - (-> obj root process) - (the-as vector s3-0) - t0-2 - (-> s3-0 world-sphere w) - ) + (let* ((s5-0 (-> obj root)) + (s3-0 (hover-nav-control-method-17 obj)) + (v1-2 (vector-! (new 'stack-no-clear 'vector) (the-as vector s3-0) (-> s5-0 trans))) + (s4-1 (vector-! (new 'stack-no-clear 'vector) (-> obj dest-pos) v1-2)) + ) + (when (not (logtest? (-> obj flags) (hover-nav-flags honflags-0))) + (let* ((s2-0 (-> obj root transv)) + (f30-0 (vector-length s2-0)) + (s1-0 lerp-scale) + (s0-0 0.0) + ) + (set! sv-112 (hover-nav-control-method-30 obj)) + (set! sv-128 (* 2.0 f30-0)) + (set! sv-144 (the-as float 0.0)) + (let* ((t0-0 (hover-nav-control-method-30 obj)) + (f0-4 (s1-0 s0-0 sv-112 sv-128 sv-144 t0-0)) + (t0-2 (vector+float*! (new 'stack-no-clear 'vector) (the-as vector s3-0) s2-0 (/ f0-4 f30-0))) + (s2-1 (nav-network-method-26 + (-> obj nav) + (new 'stack-no-clear 'vector) + (-> obj root process) + (the-as vector s3-0) + t0-2 + (-> s3-0 world-sphere w) ) - ) - (let ((f0-7 (vector-length s2-1)) - (s1-1 seek) - (s0-1 (-> obj nav-collide-impulse-len)) - ) - (set! sv-160 f0-7) - (let ((a2-2 (* (hover-nav-control-method-31 obj) (-> pp clock seconds-per-frame)))) - (set! (-> obj nav-collide-impulse-len) (s1-1 s0-1 sv-160 a2-2)) - ) - ) - (vector-normalize-copy! (-> obj nav-collide-impulse) s2-1 (- (-> obj nav-collide-impulse-len))) - ) - ) - (if *debug-hover* - (add-debug-vector - #t - (bucket-id debug-no-zbuf1) - (the-as vector s3-0) - (-> obj nav-collide-impulse) - (meters 0.00024414062) - *color-red* - ) - ) - ) - (let ((f30-1 (hover-nav-control-method-31 obj)) - (f28-0 (hover-nav-control-method-30 obj)) - ) - (vector-z-quaternion! (-> obj move-dir) (-> s5-0 quat)) - (set! (-> obj speed) (vector-length (-> s5-0 transv))) - (vector-! (-> obj dest-offset) s4-1 (-> s5-0 trans)) - (let ((s4-2 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> obj dest-offset) 1.0)) - (v0-13 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s5-0 transv) 1.0)) - ) - (set! (-> obj speed-dest) (vector-dot (-> s5-0 transv) s4-2)) - (set! (-> obj local-dist) (vector-dot v0-13 (-> obj dest-offset))) - ) - (let* ((f0-20 (fmax 0.0 (+ -2048.0 (vector-length (-> obj dest-offset))))) - (f1-5 (sqrtf (* 1.6 f0-20 f30-1))) - (f0-23 0.0) + ) ) - (seek! (-> obj target-speed) (fmax (fmin f1-5 f28-0) f0-23) (* 0.9 (-> pp clock seconds-per-frame) f30-1)) + (let ((f0-7 (vector-length s2-1)) + (s1-1 seek) + (s0-1 (-> obj nav-collide-impulse-len)) + ) + (set! sv-160 f0-7) + (let ((a2-2 (* (hover-nav-control-method-31 obj) (seconds-per-frame)))) + (set! (-> obj nav-collide-impulse-len) (s1-1 s0-1 sv-160 a2-2)) + ) + ) + (vector-normalize-copy! (-> obj nav-collide-impulse) s2-1 (- (-> obj nav-collide-impulse-len))) ) ) + (if *debug-hover* + (add-debug-vector + #t + (bucket-id debug-no-zbuf1) + (the-as vector s3-0) + (-> obj nav-collide-impulse) + (meters 0.00024414062) + *color-red* + ) + ) ) - (when *debug-hover* - (add-debug-x #t (bucket-id debug-no-zbuf1) (-> obj dest-pos) *color-white*) - (add-debug-vector - #t - (bucket-id debug-no-zbuf1) - (-> obj dest-pos) - (-> obj dest-vel) - (meters 0.00024414062) - *color-white* + (let ((f30-1 (hover-nav-control-method-31 obj)) + (f28-0 (hover-nav-control-method-30 obj)) + ) + (vector-z-quaternion! (-> obj move-dir) (-> s5-0 quat)) + (set! (-> obj speed) (vector-length (-> s5-0 transv))) + (vector-! (-> obj dest-offset) s4-1 (-> s5-0 trans)) + (let ((s4-2 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> obj dest-offset) 1.0)) + (v0-13 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s5-0 transv) 1.0)) + ) + (set! (-> obj speed-dest) (vector-dot (-> s5-0 transv) s4-2)) + (set! (-> obj local-dist) (vector-dot v0-13 (-> obj dest-offset))) + ) + (let* ((f0-20 (fmax 0.0 (+ -2048.0 (vector-length (-> obj dest-offset))))) + (f1-5 (sqrtf (* 1.6 f0-20 f30-1))) + (f0-23 0.0) + ) + (seek! (-> obj target-speed) (fmax (fmin f1-5 f28-0) f0-23) (* 0.9 (seconds-per-frame) f30-1)) ) ) - 0 - (none) ) + (when *debug-hover* + (add-debug-x #t (bucket-id debug-no-zbuf1) (-> obj dest-pos) *color-white*) + (add-debug-vector + #t + (bucket-id debug-no-zbuf1) + (-> obj dest-pos) + (-> obj dest-vel) + (meters 0.00024414062) + *color-white* + ) + ) + 0 + (none) ) (defun hover-bounce-reaction ((arg0 control-info) (arg1 collide-query) (arg2 vector) (arg3 vector)) diff --git a/goal_src/jak2/levels/common/enemy/hover/wasp.gc b/goal_src/jak2/levels/common/enemy/hover/wasp.gc index 8aad0d1fbe..f76fdfeec0 100644 --- a/goal_src/jak2/levels/common/enemy/hover/wasp.gc +++ b/goal_src/jak2/levels/common/enemy/hover/wasp.gc @@ -547,11 +547,9 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (seek! (-> obj gun-x-angle) (-> obj gun-x-angle-final) (* 21845.334 (-> pp clock seconds-per-frame))) - ((method-of-type hover-enemy track-target!) obj) - (none) - ) + (seek! (-> obj gun-x-angle) (-> obj gun-x-angle-final) (* 21845.334 (seconds-per-frame))) + ((method-of-type hover-enemy track-target!) obj) + (none) ) (defbehavior shoot-bridge-post wasp () @@ -810,7 +808,7 @@ (seek! (-> self attack-miss-dist-curr) (-> self attack-miss-dist-max) - (* 0.5 (-> self clock seconds-per-frame) (- (-> self attack-miss-dist-max) (-> self attack-miss-dist-min))) + (* 0.5 (seconds-per-frame) (- (-> self attack-miss-dist-max) (-> self attack-miss-dist-min))) ) (let ((a1-8 (new 'stack-no-clear 'vector))) (set! (-> a1-8 quad) (-> self focus-pos quad)) @@ -971,7 +969,7 @@ (seek! (-> self attack-miss-dist-curr) (-> self attack-miss-dist-max) - (* 0.5 (-> self clock seconds-per-frame) (- (-> self attack-miss-dist-max) (-> self attack-miss-dist-min))) + (* 0.5 (seconds-per-frame) (- (-> self attack-miss-dist-max) (-> self attack-miss-dist-min))) ) (hover-enemy-hostile-post) (none) @@ -1237,86 +1235,84 @@ (gp-0 (lambda ((arg0 wasp) (arg1 cspace) (arg2 float) (arg3 float) (arg4 vector) (arg5 vector) (arg6 int)) (local-vars (sv-192 float) (sv-208 quaternion) (sv-224 vector)) - (with-pp - (set! sv-192 arg2) - (let ((s0-0 arg3)) - (set! sv-224 arg4) - (let ((s1-0 arg5) - (s3-0 arg6) - (s4-0 (vector<-cspace! (new 'stack-no-clear 'vector) arg1)) - (s5-0 (new 'stack-no-clear 'matrix)) - (a1-3 (matrix-with-scale->quaternion (new 'stack-no-clear 'quaternion) (-> arg1 bone transform))) - ) - (set! sv-208 (new 'stack-no-clear 'quaternion)) - (let ((s2-1 (new 'stack-no-clear 'vector))) - (-> arg0 scale) - (quaternion-rotate-local-z! sv-208 a1-3 sv-192) - (quaternion->matrix s5-0 sv-208) - (set! (-> s2-1 quad) (-> arg0 root scale quad)) - (scale-matrix! s5-0 s2-1 s5-0) - (let* ((s1-1 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) s1-0 (-> arg0 root quat))) - (t9-6 vector-inv-orient-by-quat!) - (a0-10 (new 'stack-no-clear 'vector)) - (a2-4 (-> arg0 root quat)) - (v0-6 (t9-6 a0-10 sv-224 a2-4)) - (f30-0 (* 2457600.0 (-> pp clock seconds-per-frame))) - (f28-0 - (seek - (-> arg0 thrust s3-0) - (+ (* 0.4 (fmax 0.0 (* (-> v0-6 x) s0-0))) - (fmax 0.0 (-> v0-6 y)) - (fabs (* 0.2 (-> v0-6 z))) - (fmax 0.0 (-> s1-1 y)) - ) - (* 0.2 f30-0) - ) + (set! sv-192 arg2) + (let ((s0-0 arg3)) + (set! sv-224 arg4) + (let ((s1-0 arg5) + (s3-0 arg6) + (s4-0 (vector<-cspace! (new 'stack-no-clear 'vector) arg1)) + (s5-0 (new 'stack-no-clear 'matrix)) + (a1-3 (matrix-with-scale->quaternion (new 'stack-no-clear 'quaternion) (-> arg1 bone transform))) + ) + (set! sv-208 (new 'stack-no-clear 'quaternion)) + (let ((s2-1 (new 'stack-no-clear 'vector))) + (-> arg0 scale) + (quaternion-rotate-local-z! sv-208 a1-3 sv-192) + (quaternion->matrix s5-0 sv-208) + (set! (-> s2-1 quad) (-> arg0 root scale quad)) + (scale-matrix! s5-0 s2-1 s5-0) + (let* ((s1-1 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) s1-0 (-> arg0 root quat))) + (t9-6 vector-inv-orient-by-quat!) + (a0-10 (new 'stack-no-clear 'vector)) + (a2-4 (-> arg0 root quat)) + (v0-6 (t9-6 a0-10 sv-224 a2-4)) + (f30-0 (* 2457600.0 (seconds-per-frame))) + (f28-0 + (seek + (-> arg0 thrust s3-0) + (+ (* 0.4 (fmax 0.0 (* (-> v0-6 x) s0-0))) + (fmax 0.0 (-> v0-6 y)) + (fabs (* 0.2 (-> v0-6 z))) + (fmax 0.0 (-> s1-1 y)) + ) + (* 0.2 f30-0) ) ) - (let ((f20-0 (lerp-scale 819.2 4096.0 f28-0 1638.4 f30-0)) - (f26-0 (lerp-scale 4915.2 11468.8 f28-0 1638.4 f30-0)) + ) + (let ((f20-0 (lerp-scale 819.2 4096.0 f28-0 1638.4 f30-0)) + (f26-0 (lerp-scale 4915.2 11468.8 f28-0 1638.4 f30-0)) + ) + (lerp-scale 0.0 -4915.2 f28-0 1638.4 f30-0) + (let ((f22-0 (lerp-scale 0.5 1.5 f28-0 1638.4 f30-0)) + (f24-0 (lerp-scale 0.1 1.0 f28-0 1638.4 f30-0)) ) - (lerp-scale 0.0 -4915.2 f28-0 1638.4 f30-0) - (let ((f22-0 (lerp-scale 0.5 1.5 f28-0 1638.4 f30-0)) - (f24-0 (lerp-scale 0.1 1.0 f28-0 1638.4 f30-0)) - ) - (lerp-scale 0.1 1.0 f28-0 1638.4 f30-0) - (let ((f1-10 (lerp-scale 0.02 0.6 f28-0 1638.4 f30-0)) - (f2-6 (fmin 1.0 (-> s2-1 x))) - (f0-15 (fmin 1.0 (-> s2-1 y))) - ) - (set! (-> *part-id-table* 718 init-specs 4 initial-valuef) (* f20-0 f2-6)) - (set! (-> *part-id-table* 718 init-specs 5 initial-valuef) (* f26-0 f0-15)) - (set! (-> *part-id-table* 722 init-specs 3 initial-valuef) (* f22-0 f2-6)) - (set! (-> *part-id-table* 719 init-specs 1 initial-valuef) (* f24-0 f0-15)) - (set! (-> *part-id-table* 720 init-specs 1 initial-valuef) (* f1-10 f0-15)) - (set! (-> *part-id-table* 721 init-specs 0 initial-valuef) (* f24-0 f0-15)) - (set! (-> arg0 thrust s3-0) f28-0) - (let ((f0-16 (* f26-0 f0-15))) - (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s5-0 vector 1) (* -0.5 f0-16)) + (lerp-scale 0.1 1.0 f28-0 1638.4 f30-0) + (let ((f1-10 (lerp-scale 0.02 0.6 f28-0 1638.4 f30-0)) + (f2-6 (fmin 1.0 (-> s2-1 x))) + (f0-15 (fmin 1.0 (-> s2-1 y))) ) + (set! (-> *part-id-table* 718 init-specs 4 initial-valuef) (* f20-0 f2-6)) + (set! (-> *part-id-table* 718 init-specs 5 initial-valuef) (* f26-0 f0-15)) + (set! (-> *part-id-table* 722 init-specs 3 initial-valuef) (* f22-0 f2-6)) + (set! (-> *part-id-table* 719 init-specs 1 initial-valuef) (* f24-0 f0-15)) + (set! (-> *part-id-table* 720 init-specs 1 initial-valuef) (* f1-10 f0-15)) + (set! (-> *part-id-table* 721 init-specs 0 initial-valuef) (* f24-0 f0-15)) + (set! (-> arg0 thrust s3-0) f28-0) + (let ((f0-16 (* f26-0 f0-15))) + (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s5-0 vector 1) (* -0.5 f0-16)) ) ) ) - (set! (-> s5-0 trans quad) (-> s4-0 quad)) - (spawn-with-matrix (-> arg0 engine-part) s5-0) - (let ((f0-18 (lerp-scale 0.75 1.0 f28-0 1638.4 f30-0))) - (sound-play-by-name - (static-sound-name "wasp-jets") - (-> arg0 sound-id) - (the int (* 1024.0 f0-18)) - 0 - 0 - (sound-group sfx) - (-> arg0 root trans) - ) + ) + (set! (-> s5-0 trans quad) (-> s4-0 quad)) + (spawn-with-matrix (-> arg0 engine-part) s5-0) + (let ((f0-18 (lerp-scale 0.75 1.0 f28-0 1638.4 f30-0))) + (sound-play-by-name + (static-sound-name "wasp-jets") + (-> arg0 sound-id) + (the int (* 1024.0 f0-18)) + 0 + 0 + (sound-group sfx) + (-> arg0 root trans) ) ) ) ) ) - 0 - (none) ) + 0 + (none) ) ) ) diff --git a/goal_src/jak2/levels/common/enemy/spyder.gc b/goal_src/jak2/levels/common/enemy/spyder.gc index 8bf3739ad2..9f21ac1b11 100644 --- a/goal_src/jak2/levels/common/enemy/spyder.gc +++ b/goal_src/jak2/levels/common/enemy/spyder.gc @@ -349,46 +349,44 @@ ) (defmethod spyder-method-180 spyder ((obj spyder)) - (with-pp - (seek! (-> obj fade) (-> obj dest-fade) (* 500.0 (-> pp clock seconds-per-frame))) - (set! (-> obj draw force-fade) (the-as uint (the int (-> obj fade)))) - (cond - ((zero? (-> obj draw force-fade)) - (setup-masks (-> obj draw) 16 0) - (setup-masks (-> obj draw) 0 8) - (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) - ) - ((= (-> obj draw force-fade) 128) - (setup-masks (-> obj draw) 0 16) - (setup-masks (-> obj draw) 8 0) - (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) - ) - (else - (setup-masks (-> obj draw) 16 0) - (setup-masks (-> obj draw) 8 0) - (logior! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) - ) + (seek! (-> obj fade) (-> obj dest-fade) (* 500.0 (seconds-per-frame))) + (set! (-> obj draw force-fade) (the-as uint (the int (-> obj fade)))) + (cond + ((zero? (-> obj draw force-fade)) + (setup-masks (-> obj draw) 16 0) + (setup-masks (-> obj draw) 0 8) + (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) + ) + ((= (-> obj draw force-fade) 128) + (setup-masks (-> obj draw) 0 16) + (setup-masks (-> obj draw) 8 0) + (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) + ) + (else + (setup-masks (-> obj draw) 16 0) + (setup-masks (-> obj draw) 8 0) + (logior! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) ) - (if (< 245760.0 (vector-vector-distance (-> obj root trans) (camera-pos))) - (setup-masks (-> obj draw) 0 16) - ) - (when (< (current-time) (-> obj shock-effect-end)) - (when (>= (- (current-time) (-> obj shock-effect-time)) (seconds 0.04)) - (set! (-> obj shock-effect-time) (current-time)) - (process-drawable-shock-skel-effect - obj - (-> *lightning-spec-id-table* 5) - lightning-probe-callback - (-> *part-id-table* 166) - 2048.0 - -1 - -1 - ) - ) - ) - 0 - (none) ) + (if (< 245760.0 (vector-vector-distance (-> obj root trans) (camera-pos))) + (setup-masks (-> obj draw) 0 16) + ) + (when (< (current-time) (-> obj shock-effect-end)) + (when (>= (- (current-time) (-> obj shock-effect-time)) (seconds 0.04)) + (set! (-> obj shock-effect-time) (current-time)) + (process-drawable-shock-skel-effect + obj + (-> *lightning-spec-id-table* 5) + lightning-probe-callback + (-> *part-id-table* 166) + 2048.0 + -1 + -1 + ) + ) + ) + 0 + (none) ) (defmethod spyder-method-181 spyder ((obj spyder)) @@ -601,74 +599,70 @@ ) (defmethod spyder-method-182 spyder ((obj spyder)) - (with-pp - (cond - ((and (logtest? (-> obj status-flags) (spyder-flags spflags-2)) (!= (-> obj joint scale z) 1.0)) - (seek! (-> obj joint scale z) 1.0 (* 0.8 (-> pp clock seconds-per-frame))) - ) - ((and (not (logtest? (-> obj status-flags) (spyder-flags spflags-2))) (!= (-> obj joint scale z) 0.0)) - (seek! (-> obj joint scale z) 0.0 (* 0.8 (-> pp clock seconds-per-frame))) - ) - ) - (let ((s5-0 (new 'stack-no-clear 'quaternion))) - (let ((a1-2 (-> obj node-list data 37 bone transform))) - (matrix-with-scale->quaternion s5-0 a1-2) - ) - (let ((a1-4 (quaternion-from-two-vectors! (new 'stack-no-clear 'quaternion) (-> obj my-up-vector) *up-vector*))) - (quaternion*! s5-0 a1-4 s5-0) - ) - (let ((s4-1 (vector-! (new 'stack-no-clear 'vector) (-> obj face-pos) (-> obj root trans))) - (s3-0 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) - ) - (cond - ((logtest? (-> obj status-flags) (spyder-flags spflags-3)) - (vector-! s4-1 (-> obj face-pos) (-> obj root trans)) - (logclear! (-> obj status-flags) (spyder-flags spflags-3)) - ) - (else - (set! (-> s4-1 quad) (-> s3-0 quad)) - ) - ) - (set! (-> s4-1 y) 0.0) - (vector-xz-normalize! s4-1 1.0) - (set! (-> s3-0 y) 0.0) - (vector-xz-normalize! s3-0 1.0) - (let ((a1-11 (quaternion-from-two-vectors-max-angle! (new 'stack-no-clear 'quaternion) s3-0 s4-1 10012.444))) - (quaternion*! s5-0 a1-11 s5-0) - ) - ) - (quaternion-slerp! - (the-as quaternion (-> obj joint twist)) - (the-as quaternion (-> obj joint twist)) - s5-0 - (* 10.0 (-> pp clock seconds-per-frame)) - ) - ) - 0 - (none) + (cond + ((and (logtest? (-> obj status-flags) (spyder-flags spflags-2)) (!= (-> obj joint scale z) 1.0)) + (seek! (-> obj joint scale z) 1.0 (* 0.8 (seconds-per-frame))) + ) + ((and (not (logtest? (-> obj status-flags) (spyder-flags spflags-2))) (!= (-> obj joint scale z) 0.0)) + (seek! (-> obj joint scale z) 0.0 (* 0.8 (seconds-per-frame))) + ) ) + (let ((s5-0 (new 'stack-no-clear 'quaternion))) + (let ((a1-2 (-> obj node-list data 37 bone transform))) + (matrix-with-scale->quaternion s5-0 a1-2) + ) + (let ((a1-4 (quaternion-from-two-vectors! (new 'stack-no-clear 'quaternion) (-> obj my-up-vector) *up-vector*))) + (quaternion*! s5-0 a1-4 s5-0) + ) + (let ((s4-1 (vector-! (new 'stack-no-clear 'vector) (-> obj face-pos) (-> obj root trans))) + (s3-0 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) + ) + (cond + ((logtest? (-> obj status-flags) (spyder-flags spflags-3)) + (vector-! s4-1 (-> obj face-pos) (-> obj root trans)) + (logclear! (-> obj status-flags) (spyder-flags spflags-3)) + ) + (else + (set! (-> s4-1 quad) (-> s3-0 quad)) + ) + ) + (set! (-> s4-1 y) 0.0) + (vector-xz-normalize! s4-1 1.0) + (set! (-> s3-0 y) 0.0) + (vector-xz-normalize! s3-0 1.0) + (let ((a1-11 (quaternion-from-two-vectors-max-angle! (new 'stack-no-clear 'quaternion) s3-0 s4-1 10012.444))) + (quaternion*! s5-0 a1-11 s5-0) + ) + ) + (quaternion-slerp! + (the-as quaternion (-> obj joint twist)) + (the-as quaternion (-> obj joint twist)) + s5-0 + (* 10.0 (seconds-per-frame)) + ) + ) + 0 + (none) ) (defmethod spyder-method-184 spyder ((obj spyder) (arg0 vector)) - (with-pp - (when (not (logtest? (-> obj status-flags) (spyder-flags spflags-0))) - (let ((s4-0 (new 'stack-no-clear 'vector))) - (set! (-> s4-0 quad) (-> *up-vector* quad)) - (let ((s3-0 (new 'stack-no-clear 'quaternion))) - (quaternion-from-two-vectors-max-angle! s3-0 s4-0 (-> obj root gspot-normal) 4551.1113) - (vector-orient-by-quat! s4-0 s4-0 s3-0) - ) - (let ((s3-1 (-> obj my-up-vector))) - (vector-deg-seek s3-1 s3-1 s4-0 (* 16384.0 (-> pp clock seconds-per-frame))) - (vector-normalize! s3-1 1.0) - (forward-up-nopitch->quaternion (-> obj root quat) arg0 s3-1) - ) + (when (not (logtest? (-> obj status-flags) (spyder-flags spflags-0))) + (let ((s4-0 (new 'stack-no-clear 'vector))) + (set! (-> s4-0 quad) (-> *up-vector* quad)) + (let ((s3-0 (new 'stack-no-clear 'quaternion))) + (quaternion-from-two-vectors-max-angle! s3-0 s4-0 (-> obj root gspot-normal) 4551.1113) + (vector-orient-by-quat! s4-0 s4-0 s3-0) + ) + (let ((s3-1 (-> obj my-up-vector))) + (vector-deg-seek s3-1 s3-1 s4-0 (* 16384.0 (seconds-per-frame))) + (vector-normalize! s3-1 1.0) + (forward-up-nopitch->quaternion (-> obj root quat) arg0 s3-1) ) - (logior! (-> obj status-flags) (spyder-flags spflags-0)) ) - 0 - (none) + (logior! (-> obj status-flags) (spyder-flags spflags-0)) ) + 0 + (none) ) (defmethod track-target! spyder ((obj spyder)) @@ -744,123 +738,121 @@ ) (defmethod spyder-method-185 spyder ((obj spyder)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (let ((s5-0 (new 'stack-no-clear 'collide-query))) - (let ((v1-0 (-> s5-0 bbox)) - (a0-2 (-> obj root trans)) - (a1-0 (new 'stack-no-clear 'vector)) - ) - (set! (-> a1-0 x) 22528.0) - (set! (-> a1-0 y) 22528.0) - (set! (-> a1-0 z) 22528.0) - (set! (-> a1-0 w) 1.0) - (vector-! (the-as vector v1-0) a0-2 a1-0) - ) - (let ((v1-2 (-> s5-0 bbox max)) - (a0-4 (-> obj root trans)) - (a1-1 (new 'stack-no-clear 'vector)) - ) - (set! (-> a1-1 x) 22528.0) - (set! (-> a1-1 y) 22528.0) - (set! (-> a1-1 z) 22528.0) - (set! (-> a1-1 w) 1.0) - (vector+! v1-2 a0-4 a1-1) - ) - (set! (-> s5-0 collide-with) (collide-spec backgnd)) - (set! (-> s5-0 ignore-process0) #f) - (set! (-> s5-0 ignore-process1) #f) - (set! (-> s5-0 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (fill-using-bounding-box *collide-cache* s5-0) - (dotimes (s4-0 4) - (-> obj joint-ik s4-0 shoulder-matrix-no-ik) - (let ((a2-8 (-> obj joint-ik s4-0 elbow-matrix-no-ik)) - (s3-0 (new 'stack-no-clear 'vector)) - ) - (let ((v1-15 (new 'stack-no-clear 'vector))) - (set! (-> v1-15 quad) (-> *y-vector* quad)) - (new 'stack-no-clear 'vector) - (let ((s2-0 (new 'stack-no-clear 'vector))) - (let ((a1-3 s3-0)) - (let ((a0-9 (-> a2-8 trans))) - (let ((a2-9 (-> a2-8 vector 1))) - (let ((a3-3 (-> obj joint-ik s4-0 hand-dist))) - (.mov vf7 a3-3) - ) - (.lvf vf5 (&-> a2-9 quad)) - ) - (.lvf vf4 (&-> a0-9 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-3 quad) vf6) - ) - (set! (-> s2-0 quad) (-> s3-0 quad)) - (set! (-> s2-0 y) (-> obj root trans y)) - (let ((a2-10 (-> s5-0 start-pos))) - (let ((a0-12 s2-0)) - (let ((a1-6 v1-15)) - (let ((a3-5 16384.0)) - (.mov vf7 a3-5) - ) - (.lvf vf5 (&-> a1-6 quad)) - ) - (.lvf vf4 (&-> a0-12 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a2-10 quad) vf6) - ) - (vector-float*! (-> s5-0 move-dist) v1-15 -32768.0) - (let ((v1-16 s5-0)) - (set! (-> v1-16 radius) 40.96) - (set! (-> v1-16 collide-with) (collide-spec backgnd)) - (set! (-> v1-16 ignore-process0) #f) - (set! (-> v1-16 ignore-process1) #f) - (set! (-> v1-16 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (set! (-> v1-16 action-mask) (collide-action solid)) - ) - (let ((f0-13 (probe-using-line-sphere *collide-cache* s5-0))) - (when (>= f0-13 0.0) - (let ((a1-10 s2-0)) - (let ((v1-19 (-> s5-0 start-pos))) - (let ((a0-20 (-> s5-0 move-dist))) - (let ((a2-11 f0-13)) - (.mov vf7 a2-11) - ) - (.lvf vf5 (&-> a0-20 quad)) - ) - (.lvf vf4 (&-> v1-19 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-10 quad) vf6) - ) - ) - ) - (let ((f0-15 (fmax -8192.0 (fmin 8192.0 (- (-> s2-0 y) (-> s3-0 y)))))) - (+! (-> obj delta-y-ik s4-0) (* 10.0 (-> pp clock seconds-per-frame) (- f0-15 (-> obj delta-y-ik s4-0)))) - ) - ) - ) - (+! (-> s3-0 y) (-> obj delta-y-ik s4-0)) - (handle-copy! (-> obj joint-ik s4-0) s3-0) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (new 'stack-no-clear 'collide-query))) + (let ((v1-0 (-> s5-0 bbox)) + (a0-2 (-> obj root trans)) + (a1-0 (new 'stack-no-clear 'vector)) ) + (set! (-> a1-0 x) 22528.0) + (set! (-> a1-0 y) 22528.0) + (set! (-> a1-0 z) 22528.0) + (set! (-> a1-0 w) 1.0) + (vector-! (the-as vector v1-0) a0-2 a1-0) + ) + (let ((v1-2 (-> s5-0 bbox max)) + (a0-4 (-> obj root trans)) + (a1-1 (new 'stack-no-clear 'vector)) + ) + (set! (-> a1-1 x) 22528.0) + (set! (-> a1-1 y) 22528.0) + (set! (-> a1-1 z) 22528.0) + (set! (-> a1-1 w) 1.0) + (vector+! v1-2 a0-4 a1-1) + ) + (set! (-> s5-0 collide-with) (collide-spec backgnd)) + (set! (-> s5-0 ignore-process0) #f) + (set! (-> s5-0 ignore-process1) #f) + (set! (-> s5-0 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (fill-using-bounding-box *collide-cache* s5-0) + (dotimes (s4-0 4) + (-> obj joint-ik s4-0 shoulder-matrix-no-ik) + (let ((a2-8 (-> obj joint-ik s4-0 elbow-matrix-no-ik)) + (s3-0 (new 'stack-no-clear 'vector)) + ) + (let ((v1-15 (new 'stack-no-clear 'vector))) + (set! (-> v1-15 quad) (-> *y-vector* quad)) + (new 'stack-no-clear 'vector) + (let ((s2-0 (new 'stack-no-clear 'vector))) + (let ((a1-3 s3-0)) + (let ((a0-9 (-> a2-8 trans))) + (let ((a2-9 (-> a2-8 vector 1))) + (let ((a3-3 (-> obj joint-ik s4-0 hand-dist))) + (.mov vf7 a3-3) + ) + (.lvf vf5 (&-> a2-9 quad)) + ) + (.lvf vf4 (&-> a0-9 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-3 quad) vf6) + ) + (set! (-> s2-0 quad) (-> s3-0 quad)) + (set! (-> s2-0 y) (-> obj root trans y)) + (let ((a2-10 (-> s5-0 start-pos))) + (let ((a0-12 s2-0)) + (let ((a1-6 v1-15)) + (let ((a3-5 16384.0)) + (.mov vf7 a3-5) + ) + (.lvf vf5 (&-> a1-6 quad)) + ) + (.lvf vf4 (&-> a0-12 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a2-10 quad) vf6) + ) + (vector-float*! (-> s5-0 move-dist) v1-15 -32768.0) + (let ((v1-16 s5-0)) + (set! (-> v1-16 radius) 40.96) + (set! (-> v1-16 collide-with) (collide-spec backgnd)) + (set! (-> v1-16 ignore-process0) #f) + (set! (-> v1-16 ignore-process1) #f) + (set! (-> v1-16 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (set! (-> v1-16 action-mask) (collide-action solid)) + ) + (let ((f0-13 (probe-using-line-sphere *collide-cache* s5-0))) + (when (>= f0-13 0.0) + (let ((a1-10 s2-0)) + (let ((v1-19 (-> s5-0 start-pos))) + (let ((a0-20 (-> s5-0 move-dist))) + (let ((a2-11 f0-13)) + (.mov vf7 a2-11) + ) + (.lvf vf5 (&-> a0-20 quad)) + ) + (.lvf vf4 (&-> v1-19 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-10 quad) vf6) + ) + ) + ) + (let ((f0-15 (fmax -8192.0 (fmin 8192.0 (- (-> s2-0 y) (-> s3-0 y)))))) + (+! (-> obj delta-y-ik s4-0) (* 10.0 (seconds-per-frame) (- f0-15 (-> obj delta-y-ik s4-0)))) + ) + ) + ) + (+! (-> s3-0 y) (-> obj delta-y-ik s4-0)) + (handle-copy! (-> obj joint-ik s4-0) s3-0) ) ) - 0 - (none) ) + 0 + (none) ) ) @@ -1106,7 +1098,7 @@ ) (let ((s3-1 (current-time))) (until (>= (- (current-time) s3-1) (seconds 0.2)) - (set! f30-0 (seek f30-0 (lerp-scale 0.0 1.0 (the float s4-0) 0.0 8.0) (-> self clock seconds-per-frame))) + (set! f30-0 (seek f30-0 (lerp-scale 0.0 1.0 (the float s4-0) 0.0 8.0) (seconds-per-frame))) (ja :num! (loop!)) (let ((a0-27 (-> self skel root-channel 1))) (set! (-> a0-27 frame-interp 1) f30-0) diff --git a/goal_src/jak2/levels/common/entities/fort-floor-spike.gc b/goal_src/jak2/levels/common/entities/fort-floor-spike.gc index 62100966ea..70178cb0e6 100644 --- a/goal_src/jak2/levels/common/entities/fort-floor-spike.gc +++ b/goal_src/jak2/levels/common/entities/fort-floor-spike.gc @@ -158,17 +158,13 @@ (dotimes (s4-0 (-> self spike-dim 1)) (cond ((zero? (-> s5-0 state)) - (seek! - (-> s5-0 table-ptr s4-0 y) - (* 4096.0 (- -4.0 (the float s4-0))) - (* 131072.0 (-> self clock seconds-per-frame)) - ) + (seek! (-> s5-0 table-ptr s4-0 y) (* 4096.0 (- -4.0 (the float s4-0))) (* 131072.0 (seconds-per-frame))) ) (else (let ((f30-0 (-> s5-0 table-ptr s4-0 y)) (f28-0 (* 4096.0 (+ -1.0 (the float s4-0)))) ) - (seek! (-> s5-0 table-ptr s4-0 y) f28-0 (* 131072.0 (-> self clock seconds-per-frame))) + (seek! (-> s5-0 table-ptr s4-0 y) f28-0 (* 131072.0 (seconds-per-frame))) (if (and (< f30-0 f28-0) (= (-> s5-0 table-ptr gp-0 y) f28-0)) (sound-play "floor-spike" :position (-> s5-0 table-ptr gp-0)) ) diff --git a/goal_src/jak2/levels/common/entities/gun-buoy.gc b/goal_src/jak2/levels/common/entities/gun-buoy.gc index 12c7d13a80..94371d6773 100644 --- a/goal_src/jak2/levels/common/entities/gun-buoy.gc +++ b/goal_src/jak2/levels/common/entities/gun-buoy.gc @@ -44,77 +44,75 @@ (defun gun-buoy-shot-move ((arg0 gun-buoy-shot)) (local-vars (at-0 int)) - (with-pp - (rlet ((vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (let ((s5-0 (-> arg0 root))) - (let ((s3-0 (new 'stack-no-clear 'collide-query)) - (s2-0 (-> s5-0 root-prim)) - (s4-0 (new 'stack-no-clear 'vector)) - ) - (set! (-> s4-0 quad) (-> s5-0 transv quad)) - (let* ((f30-0 (vector-length s4-0)) - (s1-0 *target*) - (a0-2 (if (type? s1-0 process-focusable) - s1-0 - ) - ) - ) - (when a0-2 - (let ((s1-1 (new 'stack-no-clear 'vector))) - (set! (-> s1-1 quad) (-> (get-trans a0-2 0) quad)) - (+! (-> s1-1 y) 8192.0) - (vector-! s4-0 s1-1 (-> s5-0 trans)) - ) - (vector-normalize! s4-0 f30-0) - ) + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (-> arg0 root))) + (let ((s3-0 (new 'stack-no-clear 'collide-query)) + (s2-0 (-> s5-0 root-prim)) + (s4-0 (new 'stack-no-clear 'vector)) ) - (set! (-> s3-0 start-pos quad) (-> s5-0 trans quad)) - (let ((v1-12 (-> s3-0 move-dist))) - (.lvf vf1 (&-> s4-0 quad)) - (let ((f0-2 (-> pp clock seconds-per-frame))) - (.mov at-0 f0-2) - ) - (.mov vf2 at-0) - (.mov.vf vf1 vf0 :mask #b1000) - (.mul.x.vf vf1 vf1 vf2 :mask #b111) - (.svf (&-> v1-12 quad) vf1) - ) - (let ((v1-13 s3-0)) - (set! (-> v1-13 radius) (-> s2-0 prim-core world-sphere w)) - (set! (-> v1-13 collide-with) (-> s2-0 prim-core collide-with)) - (set! (-> v1-13 ignore-process0) arg0) - (set! (-> v1-13 ignore-process1) (ppointer->process (-> arg0 parent))) - (set! (-> v1-13 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (set! (-> v1-13 action-mask) (collide-action solid)) - ) - (set! (-> *actor-hash* debug-draw) #t) - (fill-using-line-sphere *collide-cache* s3-0) - (set! (-> *actor-hash* debug-draw) #f) - (integrate-and-collide! s5-0 s4-0) - ) - (let ((s4-1 (new 'stack-no-clear 'vector))) - (vector-! s4-1 (-> arg0 tail-pos) (-> s5-0 trans)) - (let ((f0-4 (vector-length s4-1))) - (when (< 36864.0 f0-4) - (vector-normalize! s4-1 36864.0) - (vector+! (-> arg0 tail-pos) (-> s5-0 trans) s4-1) + (set! (-> s4-0 quad) (-> s5-0 transv quad)) + (let* ((f30-0 (vector-length s4-0)) + (s1-0 *target*) + (a0-2 (if (type? s1-0 process-focusable) + s1-0 + ) + ) + ) + (when a0-2 + (let ((s1-1 (new 'stack-no-clear 'vector))) + (set! (-> s1-1 quad) (-> (get-trans a0-2 0) quad)) + (+! (-> s1-1 y) 8192.0) + (vector-! s4-0 s1-1 (-> s5-0 trans)) ) + (vector-normalize! s4-0 f30-0) ) ) - (when (logtest? (-> s5-0 status) (collide-status touch-surface)) - (if (logtest? (-> arg0 root status) (collide-status touch-actor)) - (set! (-> arg0 hit-actor?) #t) - ) - (go (method-of-object arg0 impact)) + (set! (-> s3-0 start-pos quad) (-> s5-0 trans quad)) + (let ((v1-12 (-> s3-0 move-dist))) + (.lvf vf1 (&-> s4-0 quad)) + (let ((f0-2 (seconds-per-frame))) + (.mov at-0 f0-2) + ) + (.mov vf2 at-0) + (.mov.vf vf1 vf0 :mask #b1000) + (.mul.x.vf vf1 vf1 vf2 :mask #b111) + (.svf (&-> v1-12 quad) vf1) + ) + (let ((v1-13 s3-0)) + (set! (-> v1-13 radius) (-> s2-0 prim-core world-sphere w)) + (set! (-> v1-13 collide-with) (-> s2-0 prim-core collide-with)) + (set! (-> v1-13 ignore-process0) arg0) + (set! (-> v1-13 ignore-process1) (ppointer->process (-> arg0 parent))) + (set! (-> v1-13 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (set! (-> v1-13 action-mask) (collide-action solid)) + ) + (set! (-> *actor-hash* debug-draw) #t) + (fill-using-line-sphere *collide-cache* s3-0) + (set! (-> *actor-hash* debug-draw) #f) + (integrate-and-collide! s5-0 s4-0) + ) + (let ((s4-1 (new 'stack-no-clear 'vector))) + (vector-! s4-1 (-> arg0 tail-pos) (-> s5-0 trans)) + (let ((f0-4 (vector-length s4-1))) + (when (< 36864.0 f0-4) + (vector-normalize! s4-1 36864.0) + (vector+! (-> arg0 tail-pos) (-> s5-0 trans) s4-1) + ) ) ) - 0 - (none) + (when (logtest? (-> s5-0 status) (collide-status touch-surface)) + (if (logtest? (-> arg0 root status) (collide-status touch-actor)) + (set! (-> arg0 hit-actor?) #t) + ) + (go (method-of-object arg0 impact)) + ) ) + 0 + (none) ) ) @@ -390,7 +388,7 @@ (let ((gp-1 (new 'stack 'water-info))) (water-info-init! (-> self root) gp-1 (collide-action solid semi-solid)) (get-height *ocean* s5-2 #t) - (seek! (-> self y-final) (+ -3276.8 (-> gp-1 trans y)) (* 3276.8 (-> self clock seconds-per-frame))) + (seek! (-> self y-final) (+ -3276.8 (-> gp-1 trans y)) (* 3276.8 (seconds-per-frame))) ) ) 0 @@ -523,9 +521,9 @@ (set! (-> self y-offset) (seek-ease (-> self y-offset) 0.0 - (* (-> self y-speed) (-> self clock seconds-per-frame)) + (* (-> self y-speed) (seconds-per-frame)) 12288.0 - (* 40.96 (-> self clock seconds-per-frame)) + (* 40.96 (seconds-per-frame)) ) ) (let ((f30-0 (- 1.0 (fabs (* 0.000012207031 (-> self y-offset)))))) @@ -567,7 +565,7 @@ ) :code (the-as (function none :behavior gun-buoy) sleep-code) :post (behavior () - (seek! (-> self y-offset) -81920.0 (* 49152.0 (-> self clock seconds-per-frame))) + (seek! (-> self y-offset) -81920.0 (* 49152.0 (seconds-per-frame))) (let ((f30-0 (- 1.0 (fabs (* 0.000012207031 (-> self y-offset)))))) (let ((f0-5 (* f30-0 f30-0))) (set-vector! (-> self root scale) f30-0 f30-0 f30-0 1.0) @@ -937,73 +935,71 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (-> obj root) - (let* ((s4-0 *target*) - (s5-0 (if (type? s4-0 process-focusable) - s4-0 - ) - ) - ) - (cond - (s5-0 - (let* ((s2-1 (vector-normalize-copy! - (new 'stack-no-clear 'vector) - (vector-z-quaternion! (new 'stack-no-clear 'vector) (get-quat s5-0 2)) - 1.0 - ) + (-> obj root) + (let* ((s4-0 *target*) + (s5-0 (if (type? s4-0 process-focusable) + s4-0 + ) + ) + ) + (cond + (s5-0 + (let* ((s2-1 (vector-normalize-copy! + (new 'stack-no-clear 'vector) + (vector-z-quaternion! (new 'stack-no-clear 'vector) (get-quat s5-0 2)) + 1.0 ) - (f28-0 (-> obj offset-y-angular)) - (s4-2 (-> obj offset-from-player)) - (s3-1 (vector-normalize-copy! (new 'stack-no-clear 'vector) s4-2 1.0)) - (f30-0 (vector-y-angle s3-1)) - (f0-0 (vector-y-angle s2-1)) - (f30-1 (+ (* 0.15 f28-0) (* 0.8 (-> pp clock seconds-per-frame) (deg-diff f30-0 f0-0)))) - ) - (vector-rotate-y! s3-1 s3-1 f30-1) - (vector-normalize! s3-1 (vector-length s4-2)) - (set! (-> s4-2 quad) (-> s3-1 quad)) - (set! (-> obj offset-y-angular) f30-1) - ) - (let* ((f30-2 1.1) - (v1-10 (get-transv s5-0)) - (f30-3 (* f30-2 (sqrtf (+ (* (-> v1-10 x) (-> v1-10 x)) (* (-> v1-10 z) (-> v1-10 z)))))) - (f0-8 (vector-length (vector-! (new 'stack-no-clear 'vector) (get-trans s5-0 0) (-> obj root trans)))) - (f0-10 (fabs (+ -81920.0 f0-8))) - (f1-7 (-> obj nav target-speed)) - (f0-11 (fmax f30-3 f0-10)) - ) - (set! (-> obj nav target-speed) (if (< f1-7 f0-11) - (seek f1-7 f0-11 (* 163840.0 (-> pp clock seconds-per-frame))) - (seek f1-7 f0-11 (* 143360.0 (-> pp clock seconds-per-frame))) - ) - ) - ) - 0 + ) + (f28-0 (-> obj offset-y-angular)) + (s4-2 (-> obj offset-from-player)) + (s3-1 (vector-normalize-copy! (new 'stack-no-clear 'vector) s4-2 1.0)) + (f30-0 (vector-y-angle s3-1)) + (f0-0 (vector-y-angle s2-1)) + (f30-1 (+ (* 0.15 f28-0) (* 0.8 (seconds-per-frame) (deg-diff f30-0 f0-0)))) + ) + (vector-rotate-y! s3-1 s3-1 f30-1) + (vector-normalize! s3-1 (vector-length s4-2)) + (set! (-> s4-2 quad) (-> s3-1 quad)) + (set! (-> obj offset-y-angular) f30-1) ) - (else - (let ((v1-26 (-> obj nav))) - (set! (-> v1-26 target-speed) 0.0) - ) - 0 + (let* ((f30-2 1.1) + (v1-10 (get-transv s5-0)) + (f30-3 (* f30-2 (sqrtf (+ (* (-> v1-10 x) (-> v1-10 x)) (* (-> v1-10 z) (-> v1-10 z)))))) + (f0-8 (vector-length (vector-! (new 'stack-no-clear 'vector) (get-trans s5-0 0) (-> obj root trans)))) + (f0-10 (fabs (+ -81920.0 f0-8))) + (f1-7 (-> obj nav target-speed)) + (f0-11 (fmax f30-3 f0-10)) + ) + (set! (-> obj nav target-speed) (if (< f1-7 f0-11) + (seek f1-7 f0-11 (* 163840.0 (seconds-per-frame))) + (seek f1-7 f0-11 (* 143360.0 (seconds-per-frame))) + ) + ) ) + 0 + ) + (else + (let ((v1-26 (-> obj nav))) + (set! (-> v1-26 target-speed) 0.0) + ) + 0 ) ) - 0 - (let ((v1-30 (current-time)) - (f0-18 4.83) - ) - (set! (-> obj y-bob) - (* 1228.8 (cos (* 65536.0 (/ (the float (mod v1-30 (the int (* 300.0 f0-18)))) (* 300.0 f0-18))))) - ) - ) - (water-control-method-10 (-> obj water)) - (update-trans! (-> obj sound) (-> obj root trans)) - (update! (-> obj sound)) - ((method-of-type nav-enemy track-target!) obj) - 0 - (none) ) + 0 + (let ((v1-30 (current-time)) + (f0-18 4.83) + ) + (set! (-> obj y-bob) + (* 1228.8 (cos (* 65536.0 (/ (the float (mod v1-30 (the int (* 300.0 f0-18)))) (* 300.0 f0-18))))) + ) + ) + (water-control-method-10 (-> obj water)) + (update-trans! (-> obj sound) (-> obj root trans)) + (update! (-> obj sound)) + ((method-of-type nav-enemy track-target!) obj) + 0 + (none) ) ;; WARN: Return type mismatch object vs none. @@ -1126,75 +1122,69 @@ (defmethod nav-enemy-method-142 gun-buoy ((obj gun-buoy) (arg0 nav-control)) (local-vars (a0-19 int) (a0-21 int)) - (with-pp - (let* ((v1-1 (-> *perf-stats* data 33)) - (a0-1 (-> v1-1 ctrl)) - ) - (+! (-> v1-1 count) 1) - (b! (zero? a0-1) cfg-2 :delay (nop!)) - (.mtc0 Perf 0) - (.sync.l) - (.sync.p) - (.mtpc pcr0 0) - (.mtpc pcr1 0) - (.sync.l) - (.sync.p) - (.mtc0 Perf a0-1) - ) + (let* ((v1-1 (-> *perf-stats* data 33)) + (a0-1 (-> v1-1 ctrl)) + ) + (+! (-> v1-1 count) 1) + (b! (zero? a0-1) cfg-2 :delay (nop!)) + (.mtc0 Perf 0) (.sync.l) (.sync.p) - (label cfg-2) - 0 - (forward-up-nopitch->quaternion (-> obj root quat) (-> obj aim-dir) *y-vector*) - (seek! - (-> obj elev-angle) - (- (vector-x-angle (-> obj aim-dir))) - (* 10922.667 (-> pp clock seconds-per-frame)) - ) - (let* ((s5-1 (new 'stack-no-clear 'quaternion)) - (s4-1 (-> obj root quat)) - (f1-1 (-> obj elev-angle)) - (f0-7 (fmax -728.1778 (fmin 728.1778 f1-1))) - (f1-2 (- f1-1 f0-7)) - (f2-3 (* 0.2 f1-2)) - (f30-0 (+ f0-7 (* 0.8 f1-2))) - ) - (quaternion-vector-angle! s5-1 *x-vector* f2-3) - (quaternion-normalize! (quaternion*! s4-1 s4-1 s5-1)) - (quaternion-vector-angle! (the-as quaternion (-> obj gun-elev-jmod target)) *x-vector* f30-0) - ) - (let* ((s2-0 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) (-> obj root transv) (-> obj root quat))) - (v1-15 (vector-normalize-copy! (new 'stack-no-clear 'vector) s2-0 1.0)) - (s3-1 (new 'stack-no-clear 'vector)) - ) - 0.0 - (let ((s5-2 (new 'stack-no-clear 'quaternion)) - (s4-2 (-> obj root quat)) - (gp-1 (-> obj banking-quat)) - ) - (vector-normalize! (vector-cross! s3-1 v1-15 *y-vector*) 1.0) - (let ((f0-9 (lerp-scale 0.0 1638.4 (vector-length s2-0) 0.0 81920.0))) - (quaternion-vector-angle! s5-2 s3-1 (- f0-9)) - ) - (quaternion-slerp! gp-1 gp-1 s5-2 (* 2.0 (-> pp clock seconds-per-frame))) - (quaternion*! s4-2 s4-2 gp-1) - ) - ) - (let ((v1-20 (-> *perf-stats* data 33))) - (b! (zero? (-> v1-20 ctrl)) cfg-4 :delay (nop!)) - (.mtc0 Perf 0) - (.sync.l) - (.sync.p) - (.mfpc a0-19 pcr0) - (+! (-> v1-20 accum0) a0-19) - (.mfpc a0-21 pcr1) - (+! (-> v1-20 accum1) a0-21) - ) - (label cfg-4) - 0 - 0 - (none) + (.mtpc pcr0 0) + (.mtpc pcr1 0) + (.sync.l) + (.sync.p) + (.mtc0 Perf a0-1) ) + (.sync.l) + (.sync.p) + (label cfg-2) + 0 + (forward-up-nopitch->quaternion (-> obj root quat) (-> obj aim-dir) *y-vector*) + (seek! (-> obj elev-angle) (- (vector-x-angle (-> obj aim-dir))) (* 10922.667 (seconds-per-frame))) + (let* ((s5-1 (new 'stack-no-clear 'quaternion)) + (s4-1 (-> obj root quat)) + (f1-1 (-> obj elev-angle)) + (f0-7 (fmax -728.1778 (fmin 728.1778 f1-1))) + (f1-2 (- f1-1 f0-7)) + (f2-3 (* 0.2 f1-2)) + (f30-0 (+ f0-7 (* 0.8 f1-2))) + ) + (quaternion-vector-angle! s5-1 *x-vector* f2-3) + (quaternion-normalize! (quaternion*! s4-1 s4-1 s5-1)) + (quaternion-vector-angle! (the-as quaternion (-> obj gun-elev-jmod target)) *x-vector* f30-0) + ) + (let* ((s2-0 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) (-> obj root transv) (-> obj root quat))) + (v1-15 (vector-normalize-copy! (new 'stack-no-clear 'vector) s2-0 1.0)) + (s3-1 (new 'stack-no-clear 'vector)) + ) + 0.0 + (let ((s5-2 (new 'stack-no-clear 'quaternion)) + (s4-2 (-> obj root quat)) + (gp-1 (-> obj banking-quat)) + ) + (vector-normalize! (vector-cross! s3-1 v1-15 *y-vector*) 1.0) + (let ((f0-9 (lerp-scale 0.0 1638.4 (vector-length s2-0) 0.0 81920.0))) + (quaternion-vector-angle! s5-2 s3-1 (- f0-9)) + ) + (quaternion-slerp! gp-1 gp-1 s5-2 (* 2.0 (seconds-per-frame))) + (quaternion*! s4-2 s4-2 gp-1) + ) + ) + (let ((v1-20 (-> *perf-stats* data 33))) + (b! (zero? (-> v1-20 ctrl)) cfg-4 :delay (nop!)) + (.mtc0 Perf 0) + (.sync.l) + (.sync.p) + (.mfpc a0-19 pcr0) + (+! (-> v1-20 accum0) a0-19) + (.mfpc a0-21 pcr1) + (+! (-> v1-20 accum1) a0-21) + ) + (label cfg-4) + 0 + 0 + (none) ) ;; WARN: Return type mismatch nav-enemy vs gun-buoy. diff --git a/goal_src/jak2/levels/common/guard-projectile.gc b/goal_src/jak2/levels/common/guard-projectile.gc index 77db6b2f8c..da948644f7 100644 --- a/goal_src/jak2/levels/common/guard-projectile.gc +++ b/goal_src/jak2/levels/common/guard-projectile.gc @@ -383,22 +383,8 @@ (set! (-> *part-id-table* 606 init-specs 4 initial-valuef) f28-0) ) (vector-normalize! s5-1 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-5 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 607)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s4-0 quad)) - (t9-2 a0-5 a1-2 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-6 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 608)) - (a2-4 *launch-matrix*) - ) - (set! (-> a2-4 trans quad) (-> s4-0 quad)) - (t9-3 a0-6 a1-3 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 607) s4-0) + (launch-particles (-> *part-id-table* 608) s4-0) ) (let ((s4-1 (new 'stack-no-clear 'matrix)) (f26-0 (* 0.000027126736 f30-0)) @@ -409,14 +395,7 @@ (set! (-> s4-1 trans quad) (-> gp-0 quad)) (set! (-> *part-id-table* 609 init-specs 3 initial-valuef) (* f26-0 f30-1)) (set! (-> *part-id-table* 609 init-specs 4 initial-valuef) (* f26-0 f28-1)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 609) - s4-1 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 609) s4-1 :origin-is-matrix #t) (set! (-> *part-id-table* 609 init-specs 3 initial-valuef) f30-1) (set! (-> *part-id-table* 609 init-specs 4 initial-valuef) f28-1) ) diff --git a/goal_src/jak2/levels/common/metalhead-projectile.gc b/goal_src/jak2/levels/common/metalhead-projectile.gc index fd057dcf9c..59fcc11cb2 100644 --- a/goal_src/jak2/levels/common/metalhead-projectile.gc +++ b/goal_src/jak2/levels/common/metalhead-projectile.gc @@ -370,14 +370,7 @@ (set! (-> *part-id-table* 621 init-specs 4 initial-valuef) f28-0) ) (vector-normalize! s5-1 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-5 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 622)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s4-0 quad)) - (t9-2 a0-5 a1-2 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 622) s4-0) ) (let ((s4-1 (new 'stack-no-clear 'matrix)) (f26-0 (* 0.000020345053 f30-0)) @@ -388,14 +381,7 @@ (set! (-> s4-1 trans quad) (-> gp-0 quad)) (set! (-> *part-id-table* 623 init-specs 3 initial-valuef) (* f26-0 f30-1)) (set! (-> *part-id-table* 623 init-specs 5 initial-valuef) (* f26-0 f28-1)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 623) - s4-1 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 623) s4-1 :origin-is-matrix #t) (set! (-> *part-id-table* 623 init-specs 3 initial-valuef) f30-1) (set! (-> *part-id-table* 623 init-specs 5 initial-valuef) f28-1) ) diff --git a/goal_src/jak2/levels/common/race/race-manager.gc b/goal_src/jak2/levels/common/race/race-manager.gc index c56e24561c..6e1f0ddd93 100644 --- a/goal_src/jak2/levels/common/race/race-manager.gc +++ b/goal_src/jak2/levels/common/race/race-manager.gc @@ -196,118 +196,116 @@ (defmethod update-lap-distance racer-state ((obj racer-state) (arg0 race-state)) (local-vars (a0-29 float)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (let ((s5-0 (new 'stack-no-clear 'matrix3))) - (-> arg0 info) - (let ((v1-2 (handle->process (-> obj racer)))) - (cond - (v1-2 - (if (focus-test? (the-as process-focusable v1-2) dead inactive) - (logior! (-> obj flags) (racer-flags dead)) - ) - (set! (-> s5-0 vector 0 quad) (-> (the-as process-focusable v1-2) root trans quad)) - (when (not (logtest? (-> obj flags) (racer-flags finished dead))) - (let ((s3-0 (new 'stack-no-clear 'race-mesh-slice-query))) - (set! (-> s3-0 search-sphere quad) (-> s5-0 vector 0 quad)) - (set! (-> s3-0 search-sphere r) 0.0) - (race-mesh-method-13 (-> arg0 info mesh) (the-as race-mesh-slice-query (&-> s3-0 slice-id))) - (set! (-> obj lap-distance-prev) (-> obj lap-distance)) - (cond - ((>= (-> s3-0 slice-id) 0) - (set! (-> obj lap-distance) (-> s3-0 lap-dist)) - (if (not (logtest? (-> obj flags) (racer-flags on-track))) - (set! (-> obj lap-distance-prev) (-> obj lap-distance)) - ) - (logior! (-> obj flags) (racer-flags on-track)) - ) - (else - (logclear! (-> obj flags) (racer-flags on-track)) - ) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (new 'stack-no-clear 'matrix3))) + (-> arg0 info) + (let ((v1-2 (handle->process (-> obj racer)))) + (cond + (v1-2 + (if (focus-test? (the-as process-focusable v1-2) dead inactive) + (logior! (-> obj flags) (racer-flags dead)) + ) + (set! (-> s5-0 vector 0 quad) (-> (the-as process-focusable v1-2) root trans quad)) + (when (not (logtest? (-> obj flags) (racer-flags finished dead))) + (let ((s3-0 (new 'stack-no-clear 'race-mesh-slice-query))) + (set! (-> s3-0 search-sphere quad) (-> s5-0 vector 0 quad)) + (set! (-> s3-0 search-sphere r) 0.0) + (race-mesh-method-13 (-> arg0 info mesh) (the-as race-mesh-slice-query (&-> s3-0 slice-id))) + (set! (-> obj lap-distance-prev) (-> obj lap-distance)) + (cond + ((>= (-> s3-0 slice-id) 0) + (set! (-> obj lap-distance) (-> s3-0 lap-dist)) + (if (not (logtest? (-> obj flags) (racer-flags on-track))) + (set! (-> obj lap-distance-prev) (-> obj lap-distance)) + ) + (logior! (-> obj flags) (racer-flags on-track)) + ) + (else + (logclear! (-> obj flags) (racer-flags on-track)) ) - (cond - ((logtest? (-> arg0 info mesh flags) (race-mesh-flags racemeshflag-0)) - (when (>= (-> s3-0 slice-id) 0) - (let ((v1-29 (min 3 (the int (* 4.0 (-> s3-0 lap-dist)))))) - (when (= v1-29 (logand (+ (-> obj lap-quadrant) 1) 3)) - (set! (-> obj lap-quadrant) v1-29) - (when (zero? v1-29) - (if (logtest? (-> obj flags) (racer-flags in-race)) - (end-lap obj arg0) - (begin-race arg0) - ) - (begin-lap obj arg0) - ) + ) + (cond + ((logtest? (-> arg0 info mesh flags) (race-mesh-flags racemeshflag-0)) + (when (>= (-> s3-0 slice-id) 0) + (let ((v1-29 (min 3 (the int (* 4.0 (-> s3-0 lap-dist)))))) + (when (= v1-29 (logand (+ (-> obj lap-quadrant) 1) 3)) + (set! (-> obj lap-quadrant) v1-29) + (when (zero? v1-29) + (if (logtest? (-> obj flags) (racer-flags in-race)) + (end-lap obj arg0) + (begin-race arg0) + ) + (begin-lap obj arg0) ) ) ) ) - ((logtest? (-> obj flags) (racer-flags in-race)) - (let ((v1-39 (new 'stack-no-clear 'vector))) - (vector-! (the-as vector (&-> v1-39 x)) (-> obj position) (the-as vector (-> arg0 info finish-sphere))) - (.lvf vf1 (&-> (the-as vector (&-> v1-39 x)) quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov a0-29 vf1) - (let ((f0-7 a0-29) - (f1-1 (-> arg0 info finish-sphere r)) - ) - (if (and (< f0-7 (* f1-1 f1-1)) (< 0.0 (vector-dot (the-as vector (&-> v1-39 x)) (-> arg0 info finish-dir)))) - (end-lap obj arg0) - ) - ) + ) + ((logtest? (-> obj flags) (racer-flags in-race)) + (let ((v1-39 (new 'stack-no-clear 'vector))) + (vector-! (the-as vector (&-> v1-39 x)) (-> obj position) (the-as vector (-> arg0 info finish-sphere))) + (.lvf vf1 (&-> (the-as vector (&-> v1-39 x)) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov a0-29 vf1) + (let ((f0-7 a0-29) + (f1-1 (-> arg0 info finish-sphere r)) + ) + (if (and (< f0-7 (* f1-1 f1-1)) (< 0.0 (vector-dot (the-as vector (&-> v1-39 x)) (-> arg0 info finish-dir)))) + (end-lap obj arg0) + ) ) ) - (else - (when (< 0.0 (-> obj lap-distance)) - (begin-race arg0) - (begin-lap obj arg0) - ) + ) + (else + (when (< 0.0 (-> obj lap-distance)) + (begin-race arg0) + (begin-lap obj arg0) ) ) ) - (let ((f0-10 (-> arg0 info ai-max-speed-factor))) - (if (< (+ (-> arg0 target-pos) (-> obj target-pos-offset)) (-> obj pos)) - (set! f0-10 (-> arg0 info ai-min-speed-factor)) - ) - (seek! (-> obj speed-factor) f0-10 (* 0.2 (-> pp clock seconds-per-frame))) - ) - 0 ) - (if (logtest? (-> obj flags) (racer-flags finished)) - (seek! (-> obj speed-factor) 0.9 (* 0.2 (-> pp clock seconds-per-frame))) - ) - (when (logtest? (-> obj flags) (racer-flags in-race)) - (dotimes (s3-1 (-> arg0 info decision-point-count)) - (let ((v1-70 (-> arg0 info decision-point-array s3-1))) - (if (and (< (-> obj lap-distance-prev) (-> v1-70 pos)) (>= (-> obj lap-distance) (-> v1-70 pos))) - (send-event (handle->process (-> obj racer)) 'race-decision-point v1-70) - ) + (let ((f0-10 (-> arg0 info ai-max-speed-factor))) + (if (< (+ (-> arg0 target-pos) (-> obj target-pos-offset)) (-> obj pos)) + (set! f0-10 (-> arg0 info ai-min-speed-factor)) ) - ) - (set! (-> obj pos) (+ (-> obj lap-distance) (the float (-> obj lap-count)))) + (seek! (-> obj speed-factor) f0-10 (* 0.2 (seconds-per-frame))) ) - (set! (-> obj position quad) (-> s5-0 vector 0 quad)) + 0 ) - (else - (logior! (-> obj flags) (racer-flags dead)) + (if (logtest? (-> obj flags) (racer-flags finished)) + (seek! (-> obj speed-factor) 0.9 (* 0.2 (seconds-per-frame))) + ) + (when (logtest? (-> obj flags) (racer-flags in-race)) + (dotimes (s3-1 (-> arg0 info decision-point-count)) + (let ((v1-70 (-> arg0 info decision-point-array s3-1))) + (if (and (< (-> obj lap-distance-prev) (-> v1-70 pos)) (>= (-> obj lap-distance) (-> v1-70 pos))) + (send-event (handle->process (-> obj racer)) 'race-decision-point v1-70) + ) + ) + ) + (set! (-> obj pos) (+ (-> obj lap-distance) (the float (-> obj lap-count)))) ) + (set! (-> obj position quad) (-> s5-0 vector 0 quad)) + ) + (else + (logior! (-> obj flags) (racer-flags dead)) ) ) ) - (when (logtest? (-> obj flags) (racer-flags unknown)) - ) - 0 - (none) ) + (when (logtest? (-> obj flags) (racer-flags unknown)) + ) + 0 + (none) ) ) @@ -1172,7 +1170,7 @@ ) ) (game-info-method-28 *game-info* (the-as game-score s5-0) arg0) - ;; pc port note : just give the skill directly + ;; og:preserve-this just give the skill directly (#cond (PC_PORT (send-event *target* 'get-pickup (pickup-type skill) (* (the float s2-2) (-> *FACT-bank* super-skill-inc)))) @@ -1476,8 +1474,8 @@ (send-event (ppointer->process (-> self parent)) 'complete) (sleep-code) ) + ;; og:preserve-this auto-save when a race is won (#when PC_PORT - ;; auto-save when a race is won (auto-save-user)) (until #f (cond @@ -1598,7 +1596,8 @@ ;; WARN: Return type mismatch object vs none. (defbehavior race-manager-init-by-other race-manager ((arg0 race-info) (arg1 symbol)) - (stack-size-set! (-> self main-thread) 1024) ;; changed + ;; og:preserve-this changed from 512 + (stack-size-set! (-> self main-thread) 1024) (race-vehicle-entity-hack) (set! (-> self race-state) *race-state*) (set! (-> self race-state info) arg0) diff --git a/goal_src/jak2/levels/common/race/race-obs.gc b/goal_src/jak2/levels/common/race/race-obs.gc index d2f7df0696..bca7dfe2c1 100644 --- a/goal_src/jak2/levels/common/race/race-obs.gc +++ b/goal_src/jak2/levels/common/race/race-obs.gc @@ -107,24 +107,20 @@ (defmethod race-signal-method-29 race-signal ((obj race-signal)) - (with-pp - (+! (-> obj y-offset) - (* (- (-> obj dest-y-offset) (-> obj y-offset)) (fmin 1.0 (* 2.0 (-> pp clock seconds-per-frame)))) - ) - (let ((f30-0 (* 0.0033333334 (the float (- (current-time) (-> obj bob-time)))))) - (set! (-> obj root trans y) (+ (-> obj pos y) (-> obj y-offset) (* 1024.0 (sin (* 32768.0 f30-0))))) - (set! (-> obj root trans z) (+ (-> obj pos z) (* 2048.0 (cos (* 32768.0 f30-0))))) - ) - (let ((v1-15 (handle->process (-> obj banner)))) - (when v1-15 - (set! (-> (the-as race-signal-banner v1-15) root trans quad) (-> obj root trans quad)) - (quaternion-copy! (-> (the-as race-signal-banner v1-15) root quat) (-> obj root quat)) - ) - ) - (ja-post) - 0 - (none) + (+! (-> obj y-offset) (* (- (-> obj dest-y-offset) (-> obj y-offset)) (fmin 1.0 (* 2.0 (seconds-per-frame))))) + (let ((f30-0 (* 0.0033333334 (the float (- (current-time) (-> obj bob-time)))))) + (set! (-> obj root trans y) (+ (-> obj pos y) (-> obj y-offset) (* 1024.0 (sin (* 32768.0 f30-0))))) + (set! (-> obj root trans z) (+ (-> obj pos z) (* 2048.0 (cos (* 32768.0 f30-0))))) ) + (let ((v1-15 (handle->process (-> obj banner)))) + (when v1-15 + (set! (-> (the-as race-signal-banner v1-15) root trans quad) (-> obj root trans quad)) + (quaternion-copy! (-> (the-as race-signal-banner v1-15) root quat) (-> obj root quat)) + ) + ) + (ja-post) + 0 + (none) ) (defbehavior race-signal-event-handler race-signal ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) diff --git a/goal_src/jak2/levels/common/race/vehicle-racer.gc b/goal_src/jak2/levels/common/race/vehicle-racer.gc index dda4aededb..487a772c70 100644 --- a/goal_src/jak2/levels/common/race/vehicle-racer.gc +++ b/goal_src/jak2/levels/common/race/vehicle-racer.gc @@ -524,295 +524,291 @@ (defmethod vehicle-racer-method-151 vehicle-racer ((obj vehicle-racer)) (local-vars (v1-18 float) (v1-28 float)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (let ((s5-0 (-> obj race))) - (when (nonzero? s5-0) - (race-control-method-11 s5-0 0.0) - (let ((s4-0 (-> obj rbody)) - (f30-0 (-> pp clock seconds-per-frame)) - ) - 1.0 - (let ((s3-0 (new 'stack-no-clear 'inline-array 'matrix 9)) - (f28-0 - (fmin - (* (+ (vector-length (-> s4-0 state lin-velocity)) (* 163840.0 f30-0)) - (/ 1.0 (fmax 1.0 (vector-length (-> s5-0 lin-velocity)))) - ) - (-> s5-0 racer-state speed-factor) - ) - ) - ) - (set! (-> s3-0 1 vector 1 x) 819200.0) - (quaternion-copy! (the-as quaternion (-> s3-0 1)) (-> s5-0 path-sample quat)) - (vector-float*! (-> s3-0 0 vector 2) (-> s5-0 lin-velocity) f28-0) - (vector-! (-> s3-0 0 trans) (the-as vector (-> s5-0 path-sample)) (-> s4-0 state position)) - (.lvf vf1 (&-> (-> s3-0 0 trans) quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-18 vf1) - (let ((f0-6 v1-18) - (f1-5 1.0) - (f2-2 40960.0) - ) - (set! (-> obj path-deviation) (* f0-6 (/ f1-5 (* f2-2 f2-2)))) - ) - (let ((a1-4 (-> s3-0 0 vector 2))) - (let ((v1-22 (-> s3-0 0 vector 2))) - (let ((a0-5 (-> s3-0 0 trans))) - (let ((a2-1 1.0)) - (.mov vf7 a2-1) - ) - (.lvf vf5 (&-> a0-5 quad)) - ) - (.lvf vf4 (&-> v1-22 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-4 quad) vf6) - ) - (vector-! (the-as vector (-> s3-0 0)) (-> s3-0 0 vector 2) (-> s4-0 state lin-velocity)) - (vector-float*! (the-as vector (-> s3-0 0)) (the-as vector (-> s3-0 0)) 16.0) - (let* ((f0-10 (-> s3-0 1 vector 1 x)) - (f0-12 (* f0-10 f0-10)) - ) - (.lvf vf1 (&-> (-> s3-0 0) quad 0)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-28 vf1) - (if (< f0-12 v1-28) - (vector-normalize! (the-as vector (-> s3-0 0)) (-> s3-0 1 vector 1 x)) - ) - ) - (let ((a1-9 (-> s4-0 state lin-velocity))) - (let ((v1-31 (-> s4-0 state lin-velocity))) - (let ((a0-9 (-> s3-0 0))) - (let ((a2-2 f30-0)) - (.mov vf7 a2-2) - ) - (.lvf vf5 (&-> a0-9 quad 0)) - ) - (.lvf vf4 (&-> v1-31 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-9 quad) vf6) - ) - (let ((a1-10 (-> s4-0 state position))) - (let ((v1-32 (-> s4-0 state position))) - (let ((a0-10 (-> s4-0 state lin-velocity))) - (let ((a2-3 f30-0)) - (.mov vf7 a2-3) - ) - (.lvf vf5 (&-> a0-10 quad)) - ) - (.lvf vf4 (&-> v1-32 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-10 quad) vf6) - ) - (quaternion-pseudo-seek - (-> s4-0 state rotation) - (-> s4-0 state rotation) - (the-as quaternion (-> s3-0 1)) - (* 10.0 f30-0) - ) - (vector-float*! (-> s4-0 state lin-momentum) (-> s4-0 state lin-velocity) (-> obj info info mass)) - (vector-reset! (-> s4-0 state ang-momentum)) - (rigid-body-method-24 (-> s4-0 state)) - (rigid-body-method-13 (-> s4-0 state)) - (set! (-> obj root transv quad) (-> s4-0 state lin-velocity quad)) - (quaternion-copy! (-> obj root quat) (-> s4-0 state rotation)) - (let ((v1-46 s4-0) - (a1-14 (-> obj root trans)) - ) - (rigid-body-method-23 (-> v1-46 state) a1-14) - ) - (let* ((v1-51 (-> obj node-list data 0 bone transform)) - (a3-1 (-> s4-0 state matrix)) - (a0-20 (-> a3-1 quad 0)) - (a1-15 (-> a3-1 quad 1)) - (a2-5 (-> a3-1 quad 2)) - (a3-2 (-> a3-1 trans quad)) - ) - (set! (-> v1-51 quad 0) a0-20) - (set! (-> v1-51 quad 1) a1-15) - (set! (-> v1-51 quad 2) a2-5) - (set! (-> v1-51 trans quad) a3-2) - ) - (set! (-> obj node-list data 0 bone transform trans quad) (-> obj root trans quad)) - (race-control-method-11 s5-0 (* f30-0 f28-0)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (-> obj race))) + (when (nonzero? s5-0) + (race-control-method-11 s5-0 0.0) + (let ((s4-0 (-> obj rbody)) + (f30-0 (seconds-per-frame)) ) - ) - ) - ) - (vehicle-method-119 obj) - (vehicle-method-120 obj) - (update-transforms (-> obj root)) - (let ((a1-17 (new 'stack-no-clear 'overlaps-others-params))) - (set! (-> a1-17 options) (overlaps-others-options)) - (set! (-> a1-17 collide-with-filter) (collide-spec civilian enemy obstacle)) - (set! (-> a1-17 tlist) *touching-list*) - (find-overlapping-shapes (-> obj root) a1-17) - ) - 0 - (none) - ) - ) - ) - -(defmethod physics-post vehicle-racer ((obj vehicle-racer)) - (local-vars (v1-35 float)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (let ((s5-0 (-> obj race))) - (let ((s4-0 (new 'stack-no-clear 'inline-array 'matrix 9))) - (set! (-> s4-0 0 quad 0) (-> obj rbody state position quad)) - (set! (-> s4-0 0 vector 1 quad) (-> obj rbody state lin-velocity quad)) - (set! (-> s4-0 3 vector 1 y) 0.0) - (set! (-> s4-0 1 vector 1 quad) (-> obj rbody state matrix quad 0)) - (set! (-> s4-0 1 vector 1 y) 0.0) - (vector-normalize! (-> s4-0 1 vector 1) 1.0) - (set! (-> s4-0 1 vector 2 quad) (-> obj rbody state matrix vector 2 quad)) - (set! (-> s4-0 3 vector 0 x) - (* (-> obj rbody state ang-velocity y) (vector-length (-> obj rbody state lin-velocity))) - ) - (set! (-> s4-0 3 vector 1 x) (-> pp clock seconds-per-frame)) - (race-control-method-12 s5-0 (the-as vector (-> s4-0 0))) - (set! (-> s4-0 3 vector 0 y) (vector-length (-> s4-0 0 vector 1))) - (set! (-> s4-0 3 vector 0 z) (vector-length (-> s5-0 lin-velocity))) - (set! (-> s4-0 3 vector 0 w) - (* (-> s4-0 3 vector 0 z) (fmax (-> s5-0 racer-state speed-factor) (-> obj shortcut-speed-factor))) - ) - (if (logtest? (rigid-body-object-flag in-air turbo-boost) (-> obj flags)) - (set! (-> s4-0 3 vector 0 w) (* 2.0 (-> s4-0 3 vector 0 w))) - ) - (let ((v1-21 (-> s5-0 path-sample))) - (set! (-> s4-0 2 vector 0 x) (* 0.007874016 (the float (-> v1-21 stick-x)))) - (set! (-> s4-0 2 vector 0 w) (* 0.007874016 (the float (-> v1-21 stick-y)))) - (set! (-> s4-0 2 vector 0 y) (* 0.003921569 (the float (-> v1-21 throttle)))) - (set! (-> s4-0 2 vector 0 z) (if (logtest? (-> v1-21 flags) 1) - 1.0 - 0.0 - ) + 1.0 + (let ((s3-0 (new 'stack-no-clear 'inline-array 'matrix 9)) + (f28-0 + (fmin + (* (+ (vector-length (-> s4-0 state lin-velocity)) (* 163840.0 f30-0)) + (/ 1.0 (fmax 1.0 (vector-length (-> s5-0 lin-velocity)))) + ) + (-> s5-0 racer-state speed-factor) + ) ) - ) - (let ((f0-19 (+ (-> s5-0 path-t) (* 1.875 (/ 1.0 (-> s4-0 3 vector 0 z)) (-> s4-0 3 vector 0 y))))) - (race-path-method-11 (-> s5-0 path) (the-as race-path-sample (-> s4-0 2 vector 1)) (-> s4-0 2 trans) f0-19) - ) - (vector-! (-> s4-0 0 trans) (the-as vector (-> s5-0 path-sample)) (the-as vector (-> s4-0 0))) - (let* ((f0-20 (-> s4-0 3 vector 1 y)) - (f1-13 1.0) - (f2-4 40960.0) - (f1-14 (/ f1-13 (* f2-4 f2-4))) - ) - (.lvf vf1 (&-> (-> s4-0 0 trans) quad)) + ) + (set! (-> s3-0 1 vector 1 x) 819200.0) + (quaternion-copy! (the-as quaternion (-> s3-0 1)) (-> s5-0 path-sample quat)) + (vector-float*! (-> s3-0 0 vector 2) (-> s5-0 lin-velocity) f28-0) + (vector-! (-> s3-0 0 trans) (the-as vector (-> s5-0 path-sample)) (-> s4-0 state position)) + (.lvf vf1 (&-> (-> s3-0 0 trans) quad)) (.add.w.vf vf2 vf0 vf0 :mask #b1) (.mul.vf vf1 vf1 vf1) (.mul.x.vf acc vf2 vf1 :mask #b1) (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-35 vf1) - (set! (-> s4-0 3 vector 1 y) (+ f0-20 (* f1-14 v1-35))) - ) - (let ((f30-0 (-> s4-0 3 vector 1 y)) - (f0-22 1.0) - (f1-16 40960.0) - ) - (set! (-> s4-0 3 vector 1 y) - (+ f30-0 - (* (/ f0-22 (* f1-16 f1-16)) (vector-vector-distance-squared (-> s5-0 lin-velocity) (-> s4-0 0 vector 1))) - ) + (.mov v1-18 vf1) + (let ((f0-6 v1-18) + (f1-5 1.0) + (f2-2 40960.0) ) - ) - (set! (-> obj path-deviation) (-> s4-0 3 vector 1 y)) - (let ((a1-6 (-> s4-0 0 vector 2))) - (let ((v1-39 (-> s4-0 2 trans))) - (let ((a0-25 (-> s4-0 0 trans))) - (let ((a2-2 1.0)) - (.mov vf7 a2-2) - ) - (.lvf vf5 (&-> a0-25 quad)) - ) - (.lvf vf4 (&-> v1-39 quad)) + (set! (-> obj path-deviation) (* f0-6 (/ f1-5 (* f2-2 f2-2)))) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-6 quad) vf6) + (let ((a1-4 (-> s3-0 0 vector 2))) + (let ((v1-22 (-> s3-0 0 vector 2))) + (let ((a0-5 (-> s3-0 0 trans))) + (let ((a2-1 1.0)) + (.mov vf7 a2-1) + ) + (.lvf vf5 (&-> a0-5 quad)) + ) + (.lvf vf4 (&-> v1-22 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-4 quad) vf6) + ) + (vector-! (the-as vector (-> s3-0 0)) (-> s3-0 0 vector 2) (-> s4-0 state lin-velocity)) + (vector-float*! (the-as vector (-> s3-0 0)) (the-as vector (-> s3-0 0)) 16.0) + (let* ((f0-10 (-> s3-0 1 vector 1 x)) + (f0-12 (* f0-10 f0-10)) + ) + (.lvf vf1 (&-> (-> s3-0 0) quad 0)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-28 vf1) + (if (< f0-12 v1-28) + (vector-normalize! (the-as vector (-> s3-0 0)) (-> s3-0 1 vector 1 x)) + ) + ) + (let ((a1-9 (-> s4-0 state lin-velocity))) + (let ((v1-31 (-> s4-0 state lin-velocity))) + (let ((a0-9 (-> s3-0 0))) + (let ((a2-2 f30-0)) + (.mov vf7 a2-2) + ) + (.lvf vf5 (&-> a0-9 quad 0)) + ) + (.lvf vf4 (&-> v1-31 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-9 quad) vf6) + ) + (let ((a1-10 (-> s4-0 state position))) + (let ((v1-32 (-> s4-0 state position))) + (let ((a0-10 (-> s4-0 state lin-velocity))) + (let ((a2-3 f30-0)) + (.mov vf7 a2-3) + ) + (.lvf vf5 (&-> a0-10 quad)) + ) + (.lvf vf4 (&-> v1-32 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-10 quad) vf6) + ) + (quaternion-pseudo-seek + (-> s4-0 state rotation) + (-> s4-0 state rotation) + (the-as quaternion (-> s3-0 1)) + (* 10.0 f30-0) + ) + (vector-float*! (-> s4-0 state lin-momentum) (-> s4-0 state lin-velocity) (-> obj info info mass)) + (vector-reset! (-> s4-0 state ang-momentum)) + (rigid-body-method-24 (-> s4-0 state)) + (rigid-body-method-13 (-> s4-0 state)) + (set! (-> obj root transv quad) (-> s4-0 state lin-velocity quad)) + (quaternion-copy! (-> obj root quat) (-> s4-0 state rotation)) + (let ((v1-46 s4-0) + (a1-14 (-> obj root trans)) + ) + (rigid-body-method-23 (-> v1-46 state) a1-14) + ) + (let* ((v1-51 (-> obj node-list data 0 bone transform)) + (a3-1 (-> s4-0 state matrix)) + (a0-20 (-> a3-1 quad 0)) + (a1-15 (-> a3-1 quad 1)) + (a2-5 (-> a3-1 quad 2)) + (a3-2 (-> a3-1 trans quad)) + ) + (set! (-> v1-51 quad 0) a0-20) + (set! (-> v1-51 quad 1) a1-15) + (set! (-> v1-51 quad 2) a2-5) + (set! (-> v1-51 trans quad) a3-2) + ) + (set! (-> obj node-list data 0 bone transform trans quad) (-> obj root trans quad)) + (race-control-method-11 s5-0 (* f30-0 f28-0)) ) - (vector-! (the-as vector (-> s4-0 1)) (-> s4-0 0 vector 2) (-> s4-0 0 vector 1)) - (vector-float*! (-> s4-0 1 trans) (the-as vector (-> s4-0 1)) 1.5) - (let ((f1-22 (* 0.00036621094 (- (-> s4-0 3 vector 0 w) (-> s4-0 3 vector 0 y)) (-> s4-0 3 vector 1 x)))) - (set! (-> obj ai-controls throttle) (fmax 0.0 (fmin 1.0 (+ (-> obj ai-controls throttle) f1-22)))) - ) - (set! (-> obj ai-controls brake) - (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ (- -4096.0 (-> s4-0 3 vector 0 w)) (-> s4-0 3 vector 0 y))))) - ) - (+! (-> obj ai-controls brake) (* (- (-> obj ai-controls brake)) (fmin 1.0 (* 8.0 (-> s4-0 3 vector 1 x))))) - (set! (-> obj ai-controls steering) - (fmax -1.0 (fmin 1.0 (* 0.000000000048894434 - (+ 40960.0 (-> s4-0 3 vector 0 y)) - (vector-dot (-> s4-0 1 vector 1) (-> s4-0 1 trans)) - ) - ) - ) - ) - (set! (-> s4-0 3 vector 1 y) (fmin 1.0 (-> s4-0 3 vector 1 y))) - (set! (-> s4-0 2 vector 0 x) (+ (* (-> s4-0 2 vector 0 x) (- 1.0 (-> s4-0 3 vector 1 y))) - (* (-> obj ai-controls steering) (-> s4-0 3 vector 1 y)) - ) - ) - (set! (-> s4-0 2 vector 0 y) (-> obj ai-controls throttle)) - (set! (-> s4-0 2 vector 0 z) (-> obj ai-controls brake)) - (vehicle-method-95 obj (the-as vector (-> s4-0 2))) - ) - (when (logtest? (-> s5-0 path-sample flags) 2) - (start-jump obj) - 0 ) ) - (vehicle-method-121 obj) - (when (< (-> obj rbody state position y) -409600.0) - (format - #t - "vehicle-racer::physics-post: pid ~d fell to death from path-id ~d~%" - (-> obj pid) - (-> obj race path record-id) - ) - (go (method-of-object obj explode)) - ) - 0 - (none) ) + (vehicle-method-119 obj) + (vehicle-method-120 obj) + (update-transforms (-> obj root)) + (let ((a1-17 (new 'stack-no-clear 'overlaps-others-params))) + (set! (-> a1-17 options) (overlaps-others-options)) + (set! (-> a1-17 collide-with-filter) (collide-spec civilian enemy obstacle)) + (set! (-> a1-17 tlist) *touching-list*) + (find-overlapping-shapes (-> obj root) a1-17) + ) + 0 + (none) + ) + ) + +(defmethod physics-post vehicle-racer ((obj vehicle-racer)) + (local-vars (v1-35 float)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (-> obj race))) + (let ((s4-0 (new 'stack-no-clear 'inline-array 'matrix 9))) + (set! (-> s4-0 0 quad 0) (-> obj rbody state position quad)) + (set! (-> s4-0 0 vector 1 quad) (-> obj rbody state lin-velocity quad)) + (set! (-> s4-0 3 vector 1 y) 0.0) + (set! (-> s4-0 1 vector 1 quad) (-> obj rbody state matrix quad 0)) + (set! (-> s4-0 1 vector 1 y) 0.0) + (vector-normalize! (-> s4-0 1 vector 1) 1.0) + (set! (-> s4-0 1 vector 2 quad) (-> obj rbody state matrix vector 2 quad)) + (set! (-> s4-0 3 vector 0 x) + (* (-> obj rbody state ang-velocity y) (vector-length (-> obj rbody state lin-velocity))) + ) + (set! (-> s4-0 3 vector 1 x) (seconds-per-frame)) + (race-control-method-12 s5-0 (the-as vector (-> s4-0 0))) + (set! (-> s4-0 3 vector 0 y) (vector-length (-> s4-0 0 vector 1))) + (set! (-> s4-0 3 vector 0 z) (vector-length (-> s5-0 lin-velocity))) + (set! (-> s4-0 3 vector 0 w) + (* (-> s4-0 3 vector 0 z) (fmax (-> s5-0 racer-state speed-factor) (-> obj shortcut-speed-factor))) + ) + (if (logtest? (rigid-body-object-flag in-air turbo-boost) (-> obj flags)) + (set! (-> s4-0 3 vector 0 w) (* 2.0 (-> s4-0 3 vector 0 w))) + ) + (let ((v1-21 (-> s5-0 path-sample))) + (set! (-> s4-0 2 vector 0 x) (* 0.007874016 (the float (-> v1-21 stick-x)))) + (set! (-> s4-0 2 vector 0 w) (* 0.007874016 (the float (-> v1-21 stick-y)))) + (set! (-> s4-0 2 vector 0 y) (* 0.003921569 (the float (-> v1-21 throttle)))) + (set! (-> s4-0 2 vector 0 z) (if (logtest? (-> v1-21 flags) 1) + 1.0 + 0.0 + ) + ) + ) + (let ((f0-19 (+ (-> s5-0 path-t) (* 1.875 (/ 1.0 (-> s4-0 3 vector 0 z)) (-> s4-0 3 vector 0 y))))) + (race-path-method-11 (-> s5-0 path) (the-as race-path-sample (-> s4-0 2 vector 1)) (-> s4-0 2 trans) f0-19) + ) + (vector-! (-> s4-0 0 trans) (the-as vector (-> s5-0 path-sample)) (the-as vector (-> s4-0 0))) + (let* ((f0-20 (-> s4-0 3 vector 1 y)) + (f1-13 1.0) + (f2-4 40960.0) + (f1-14 (/ f1-13 (* f2-4 f2-4))) + ) + (.lvf vf1 (&-> (-> s4-0 0 trans) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-35 vf1) + (set! (-> s4-0 3 vector 1 y) (+ f0-20 (* f1-14 v1-35))) + ) + (let ((f30-0 (-> s4-0 3 vector 1 y)) + (f0-22 1.0) + (f1-16 40960.0) + ) + (set! (-> s4-0 3 vector 1 y) + (+ f30-0 + (* (/ f0-22 (* f1-16 f1-16)) (vector-vector-distance-squared (-> s5-0 lin-velocity) (-> s4-0 0 vector 1))) + ) + ) + ) + (set! (-> obj path-deviation) (-> s4-0 3 vector 1 y)) + (let ((a1-6 (-> s4-0 0 vector 2))) + (let ((v1-39 (-> s4-0 2 trans))) + (let ((a0-25 (-> s4-0 0 trans))) + (let ((a2-2 1.0)) + (.mov vf7 a2-2) + ) + (.lvf vf5 (&-> a0-25 quad)) + ) + (.lvf vf4 (&-> v1-39 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-6 quad) vf6) + ) + (vector-! (the-as vector (-> s4-0 1)) (-> s4-0 0 vector 2) (-> s4-0 0 vector 1)) + (vector-float*! (-> s4-0 1 trans) (the-as vector (-> s4-0 1)) 1.5) + (let ((f1-22 (* 0.00036621094 (- (-> s4-0 3 vector 0 w) (-> s4-0 3 vector 0 y)) (-> s4-0 3 vector 1 x)))) + (set! (-> obj ai-controls throttle) (fmax 0.0 (fmin 1.0 (+ (-> obj ai-controls throttle) f1-22)))) + ) + (set! (-> obj ai-controls brake) + (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ (- -4096.0 (-> s4-0 3 vector 0 w)) (-> s4-0 3 vector 0 y))))) + ) + (+! (-> obj ai-controls brake) (* (- (-> obj ai-controls brake)) (fmin 1.0 (* 8.0 (-> s4-0 3 vector 1 x))))) + (set! (-> obj ai-controls steering) + (fmax -1.0 (fmin 1.0 (* 0.000000000048894434 + (+ 40960.0 (-> s4-0 3 vector 0 y)) + (vector-dot (-> s4-0 1 vector 1) (-> s4-0 1 trans)) + ) + ) + ) + ) + (set! (-> s4-0 3 vector 1 y) (fmin 1.0 (-> s4-0 3 vector 1 y))) + (set! (-> s4-0 2 vector 0 x) (+ (* (-> s4-0 2 vector 0 x) (- 1.0 (-> s4-0 3 vector 1 y))) + (* (-> obj ai-controls steering) (-> s4-0 3 vector 1 y)) + ) + ) + (set! (-> s4-0 2 vector 0 y) (-> obj ai-controls throttle)) + (set! (-> s4-0 2 vector 0 z) (-> obj ai-controls brake)) + (vehicle-method-95 obj (the-as vector (-> s4-0 2))) + ) + (when (logtest? (-> s5-0 path-sample flags) 2) + (start-jump obj) + 0 + ) + ) + (vehicle-method-121 obj) + (when (< (-> obj rbody state position y) -409600.0) + (format + #t + "vehicle-racer::physics-post: pid ~d fell to death from path-id ~d~%" + (-> obj pid) + (-> obj race path record-id) + ) + (go (method-of-object obj explode)) + ) + 0 + (none) ) ) diff --git a/goal_src/jak2/levels/common/warp-gate.gc b/goal_src/jak2/levels/common/warp-gate.gc index 0ace4801f9..f2d93cb296 100644 --- a/goal_src/jak2/levels/common/warp-gate.gc +++ b/goal_src/jak2/levels/common/warp-gate.gc @@ -589,12 +589,12 @@ ) (cond ((-> self continue) - (seek! (-> self anim-speed) 1.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self anim-speed) 1.0 (* 2.0 (seconds-per-frame))) (setup-masks (-> self draw) 2 0) ) (else (setup-masks (-> self draw) 0 2) - (seek! (-> self anim-speed) 0.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self anim-speed) 0.0 (* 2.0 (seconds-per-frame))) ) ) (update! (-> self sound)) @@ -769,6 +769,7 @@ (set! (-> self root trans quad) (-> arg1 quad)) ) (logior! (-> self mask) (process-mask actor-pause)) + ;; og:preserve-this added for revisiting nest (#when PC_PORT (when (string= (-> self name) "air-train-1") (set! (-> (the (pointer pair) (get-tag-index-data arg0 2))) @@ -936,7 +937,7 @@ This commonly includes things such as: (when (and (or (< (vector-dot gp-1 (-> self control transv)) 0.0) (-> self control unknown-spool-anim00)) (>= (- (current-time) (-> self state-time)) (seconds 0.05)) ) - (vector-seek! (-> self draw color-mult) (new 'static 'vector) (* 2.0 (-> self clock seconds-per-frame))) + (vector-seek! (-> self draw color-mult) (new 'static 'vector) (* 2.0 (seconds-per-frame))) (set! (-> self control transv x) (* 0.95 (-> self control transv x))) (set! (-> self control transv z) (* 0.95 (-> self control transv z))) (when (not (-> self control unknown-spool-anim00)) diff --git a/goal_src/jak2/levels/consite/consite-scenes.gc b/goal_src/jak2/levels/consite/consite-scenes.gc index 58a6d4389a..272fa593ab 100644 --- a/goal_src/jak2/levels/consite/consite-scenes.gc +++ b/goal_src/jak2/levels/consite/consite-scenes.gc @@ -609,14 +609,7 @@ (set! (-> *part-id-table* 621 init-specs 4 initial-valuef) f28-0) ) (vector-normalize! s5-1 1.0) - (let ((t9-4 sp-launch-particles-var) - (a0-8 *sp-particle-system-2d*) - (a1-9 (-> *part-id-table* 622)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-2 quad)) - (t9-4 a0-8 a1-9 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 622) s3-2) ) (let ((s4-1 (new 'stack-no-clear 'matrix)) (f26-0 (* 0.000020345053 f30-0)) @@ -627,14 +620,7 @@ (set! (-> s4-1 trans quad) (-> gp-0 quad)) (set! (-> *part-id-table* 623 init-specs 3 initial-valuef) (* f26-0 f30-1)) (set! (-> *part-id-table* 623 init-specs 5 initial-valuef) (* f26-0 f28-1)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 623) - s4-1 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 623) s4-1 :origin-is-matrix #t) (set! (-> *part-id-table* 623 init-specs 3 initial-valuef) f30-1) (set! (-> *part-id-table* 623 init-specs 5 initial-valuef) f28-1) ) diff --git a/goal_src/jak2/levels/dig/dig-digger.gc b/goal_src/jak2/levels/dig/dig-digger.gc index cc9659f105..bd5f9e15bb 100644 --- a/goal_src/jak2/levels/dig/dig-digger.gc +++ b/goal_src/jak2/levels/dig/dig-digger.gc @@ -289,30 +289,9 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 4950)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 4951)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-4 (-> *part-id-table* 4952)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-3 a0-4 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4950) gp-0) + (launch-particles (-> *part-id-table* 4951) gp-0) + (launch-particles (-> *part-id-table* 4952) gp-0) ) ) (none) @@ -896,6 +875,7 @@ This commonly includes things such as: ) ) ) + ;; og:preserve-this hack ;; original ;; (vector-reset! (+ (the-as uint (-> obj chain-joints 0 velocity)) (* 48 s5-0))) (vector-reset! (-> obj chain-joints s5-0 velocity)) ;; hack diff --git a/goal_src/jak2/levels/dig/dig-obs.gc b/goal_src/jak2/levels/dig/dig-obs.gc index 3f130249f1..00b379a6e9 100644 --- a/goal_src/jak2/levels/dig/dig-obs.gc +++ b/goal_src/jak2/levels/dig/dig-obs.gc @@ -603,7 +603,7 @@ ) (until (>= (-> self root trans y) f30-0) (set! (-> self root trans y) - (seek-with-smooth (-> self root trans y) f30-0 (* 4096.0 (-> self clock seconds-per-frame)) 0.25 40.96) + (seek-with-smooth (-> self root trans y) f30-0 (* 4096.0 (seconds-per-frame)) 0.25 40.96) ) (when (>= (current-time) s5-1) (activate! @@ -786,7 +786,7 @@ This commonly includes things such as: :code (behavior () (sound-play "dig-button") (until (= (-> self root trans y) (-> self down-y)) - (seek! (-> self root trans y) (-> self down-y) (* 16384.0 (-> self clock seconds-per-frame))) + (seek! (-> self root trans y) (-> self down-y) (* 16384.0 (seconds-per-frame))) (logior! (-> self skel status) (joint-control-status sync-math)) (transform-post) (logclear! (-> self skel status) (joint-control-status sync-math)) diff --git a/goal_src/jak2/levels/dig/dig-part.gc b/goal_src/jak2/levels/dig/dig-part.gc index 9559981057..cdab702443 100644 --- a/goal_src/jak2/levels/dig/dig-part.gc +++ b/goal_src/jak2/levels/dig/dig-part.gc @@ -942,22 +942,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 vector 0 x) origin-y (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 5043)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 5030)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 5043) gp-0) + (launch-particles (-> *part-id-table* 5030) gp-0) ) ) ) diff --git a/goal_src/jak2/levels/dig/dig1-obs.gc b/goal_src/jak2/levels/dig/dig1-obs.gc index 991042a78c..b4d2da7229 100644 --- a/goal_src/jak2/levels/dig/dig1-obs.gc +++ b/goal_src/jak2/levels/dig/dig1-obs.gc @@ -667,37 +667,35 @@ ) (defmethod rigid-body-object-method-37 dig-bomb-crate-cylinder ((obj dig-bomb-crate-cylinder)) - (with-pp - (let ((a1-0 (new 'stack-no-clear 'collide-query))) - (set! (-> a1-0 start-pos quad) (-> obj rbody state position quad)) - (vector-float*! (-> a1-0 move-dist) (-> obj rbody state lin-velocity) (-> pp clock seconds-per-frame)) - (let ((v1-3 a1-0)) - (set! (-> v1-3 radius) (+ 4096.0 (-> obj root root-prim local-sphere w))) - (set! (-> v1-3 collide-with) (-> obj root root-prim prim-core collide-with)) - (set! (-> v1-3 ignore-process0) obj) - (set! (-> v1-3 ignore-process1) #f) - (set! (-> v1-3 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (set! (-> v1-3 action-mask) (collide-action solid)) - ) - (fill-using-line-sphere *collide-cache* a1-0) + (let ((a1-0 (new 'stack-no-clear 'collide-query))) + (set! (-> a1-0 start-pos quad) (-> obj rbody state position quad)) + (vector-float*! (-> a1-0 move-dist) (-> obj rbody state lin-velocity) (seconds-per-frame)) + (let ((v1-3 a1-0)) + (set! (-> v1-3 radius) (+ 4096.0 (-> obj root root-prim local-sphere w))) + (set! (-> v1-3 collide-with) (-> obj root root-prim prim-core collide-with)) + (set! (-> v1-3 ignore-process0) obj) + (set! (-> v1-3 ignore-process1) #f) + (set! (-> v1-3 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (set! (-> v1-3 action-mask) (collide-action solid)) ) - (if *display-collide-cache* - (debug-draw *collide-cache*) - ) - (rigid-body-object-method-30 obj) - (set! (-> obj root transv quad) (-> obj rbody state lin-velocity quad)) - (quaternion-copy! (-> obj root quat) (-> obj rbody state rotation)) - (rigid-body-method-24 (-> obj rbody state)) - (let ((v1-19 (-> obj rbody)) - (a1-2 (-> obj root trans)) - ) - (rigid-body-method-23 (-> v1-19 state) a1-2) - ) - (set! (-> obj node-list data 0 bone transform trans quad) (-> obj root trans quad)) - (transform-post) - 0 - (none) + (fill-using-line-sphere *collide-cache* a1-0) ) + (if *display-collide-cache* + (debug-draw *collide-cache*) + ) + (rigid-body-object-method-30 obj) + (set! (-> obj root transv quad) (-> obj rbody state lin-velocity quad)) + (quaternion-copy! (-> obj root quat) (-> obj rbody state rotation)) + (rigid-body-method-24 (-> obj rbody state)) + (let ((v1-19 (-> obj rbody)) + (a1-2 (-> obj root trans)) + ) + (rigid-body-method-23 (-> v1-19 state) a1-2) + ) + (set! (-> obj node-list data 0 bone transform trans quad) (-> obj root trans quad)) + (transform-post) + 0 + (none) ) (defmethod allocate-and-init-cshape dig-bomb-crate-cylinder ((obj dig-bomb-crate-cylinder)) diff --git a/goal_src/jak2/levels/dig/dig3-obs.gc b/goal_src/jak2/levels/dig/dig3-obs.gc index 9b33711573..1af4c86eac 100644 --- a/goal_src/jak2/levels/dig/dig3-obs.gc +++ b/goal_src/jak2/levels/dig/dig3-obs.gc @@ -298,7 +298,7 @@ ) (until (>= (- (current-time) gp-6) (seconds 1)) (set! (-> self rot-angle) - (the float (sar (shl (the int (+ (-> self rot-angle) (* f30-1 (-> self clock seconds-per-frame)))) 48) 48)) + (the float (sar (shl (the int (+ (-> self rot-angle) (* f30-1 (seconds-per-frame)))) 48) 48)) ) (suspend) ) @@ -464,11 +464,9 @@ This commonly includes things such as: ) (defun spikey-sphere-update-velocity ((arg0 dig-spikey-sphere)) - (with-pp - (set! (-> arg0 root transv y) (- (-> arg0 root transv y) (* 327680.0 (-> pp clock seconds-per-frame)))) - 0 - (none) - ) + (set! (-> arg0 root transv y) (- (-> arg0 root transv y) (* 327680.0 (seconds-per-frame)))) + 0 + (none) ) (defbehavior spikey-sphere-reaction dig-spikey-sphere ((arg0 control-info) (arg1 collide-query) (arg2 vector) (arg3 vector)) @@ -617,39 +615,37 @@ This commonly includes things such as: (defmethod init-proj-settings! dig-spikey-sphere ((obj dig-spikey-sphere)) "Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc" - (with-pp - (set! (-> obj attack-mode) 'eco-dark) - (initialize-skeleton - obj - (the-as skeleton-group (art-group-get-by-name *level* "skel-dig-spikey-sphere" (the-as (pointer uint32) #f))) - (the-as pair 0) - ) - (let ((t9-2 (method-of-type projectile-bounce init-proj-settings!))) - (t9-2 obj) - ) - (set! (-> obj max-speed) 163840.0) - (set! (-> obj timeout) (seconds 8)) - (logclear! (-> obj mask) (process-mask actor-pause)) - (set! (-> obj notify-handle) (the-as handle #f)) - (set! (-> obj update-velocity) spikey-sphere-update-velocity) - (set! (-> obj max-hits) #xffff) - (set! (-> obj move) spikey-sphere-move) - (set-vector! (-> obj root quat) 0.0 0.0 0.0 1.0) - (set! (-> obj pad-i1hb23h1b) (+ -204800.0 (-> obj root trans y))) - (let ((v1-16 (-> obj starting-dir))) - (quaternion-axis-angle! - (-> obj tumble-quat) - (-> v1-16 z) - (-> v1-16 y) - (-> v1-16 x) - (* -65536.0 (-> pp clock seconds-per-frame)) - ) - ) - (set! (-> obj draw light-index) (the-as uint 4)) - (sound-play "spikey-roll") - 0 - (none) + (set! (-> obj attack-mode) 'eco-dark) + (initialize-skeleton + obj + (the-as skeleton-group (art-group-get-by-name *level* "skel-dig-spikey-sphere" (the-as (pointer uint32) #f))) + (the-as pair 0) ) + (let ((t9-2 (method-of-type projectile-bounce init-proj-settings!))) + (t9-2 obj) + ) + (set! (-> obj max-speed) 163840.0) + (set! (-> obj timeout) (seconds 8)) + (logclear! (-> obj mask) (process-mask actor-pause)) + (set! (-> obj notify-handle) (the-as handle #f)) + (set! (-> obj update-velocity) spikey-sphere-update-velocity) + (set! (-> obj max-hits) #xffff) + (set! (-> obj move) spikey-sphere-move) + (set-vector! (-> obj root quat) 0.0 0.0 0.0 1.0) + (set! (-> obj pad-i1hb23h1b) (+ -204800.0 (-> obj root trans y))) + (let ((v1-16 (-> obj starting-dir))) + (quaternion-axis-angle! + (-> obj tumble-quat) + (-> v1-16 z) + (-> v1-16 y) + (-> v1-16 x) + (* -65536.0 (seconds-per-frame)) + ) + ) + (set! (-> obj draw light-index) (the-as uint 4)) + (sound-play "spikey-roll") + 0 + (none) ) (deftype dig-spikey-sphere-door (process-drawable) @@ -1673,13 +1669,8 @@ This commonly includes things such as: :code (behavior () (sound-play "stomp-block") (while (< (-> self desty) (-> self root trans y)) - (set! (-> self root trans y) (seek-with-smooth - (-> self root trans y) - (-> self desty) - (* 24576.0 (-> self clock seconds-per-frame)) - 0.25 - 1.0 - ) + (set! (-> self root trans y) + (seek-with-smooth (-> self root trans y) (-> self desty) (* 24576.0 (seconds-per-frame)) 0.25 1.0) ) (suspend) ) @@ -1712,49 +1703,47 @@ This commonly includes things such as: ) (defmethod rigid-body-object-method-37 dig-stomp-block ((obj dig-stomp-block)) - (with-pp - (let ((a1-0 (new 'stack-no-clear 'collide-query))) - (set! (-> a1-0 start-pos quad) (-> obj rbody state position quad)) - (vector-float*! (-> a1-0 move-dist) (-> obj rbody state lin-velocity) (-> pp clock seconds-per-frame)) - (let ((v1-3 a1-0)) - (set! (-> v1-3 radius) (+ 4096.0 (-> obj root root-prim local-sphere w))) - (set! (-> v1-3 collide-with) (-> obj root root-prim prim-core collide-with)) - (set! (-> v1-3 ignore-process0) obj) - (set! (-> v1-3 ignore-process1) #f) - (set! (-> v1-3 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (set! (-> v1-3 action-mask) (collide-action solid)) - ) - (fill-using-line-sphere *collide-cache* a1-0) + (let ((a1-0 (new 'stack-no-clear 'collide-query))) + (set! (-> a1-0 start-pos quad) (-> obj rbody state position quad)) + (vector-float*! (-> a1-0 move-dist) (-> obj rbody state lin-velocity) (seconds-per-frame)) + (let ((v1-3 a1-0)) + (set! (-> v1-3 radius) (+ 4096.0 (-> obj root root-prim local-sphere w))) + (set! (-> v1-3 collide-with) (-> obj root root-prim prim-core collide-with)) + (set! (-> v1-3 ignore-process0) obj) + (set! (-> v1-3 ignore-process1) #f) + (set! (-> v1-3 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (set! (-> v1-3 action-mask) (collide-action solid)) ) - (let* ((a0-15 *collide-cache*) - (v1-6 (the-as object (-> a0-15 tris))) - ) - (countdown (a0-16 (-> a0-15 num-tris)) - (when (= (-> (the-as collide-cache-tri v1-6) pat event) (pat-event endlessfall)) - (+! (-> (the-as collide-cache-tri v1-6) vertex 0 y) 409600.0) - (+! (-> (the-as collide-cache-tri v1-6) vertex 1 y) 409600.0) - (+! (-> (the-as collide-cache-tri v1-6) vertex 2 y) 409600.0) - ) - (set! v1-6 (-> (the-as (inline-array collide-cache-tri) v1-6) 1)) - ) - ) - (if *display-collide-cache* - (debug-draw *collide-cache*) - ) - (rigid-body-object-method-30 obj) - (set! (-> obj root transv quad) (-> obj rbody state lin-velocity quad)) - (quaternion-copy! (-> obj root quat) (-> obj rbody state rotation)) - (rigid-body-method-24 (-> obj rbody state)) - (let ((v1-22 (-> obj rbody)) - (a1-8 (-> obj root trans)) - ) - (rigid-body-method-23 (-> v1-22 state) a1-8) - ) - (set! (-> obj node-list data 0 bone transform trans quad) (-> obj root trans quad)) - (transform-post) - 0 - (none) + (fill-using-line-sphere *collide-cache* a1-0) ) + (let* ((a0-15 *collide-cache*) + (v1-6 (the-as object (-> a0-15 tris))) + ) + (countdown (a0-16 (-> a0-15 num-tris)) + (when (= (-> (the-as collide-cache-tri v1-6) pat event) (pat-event endlessfall)) + (+! (-> (the-as collide-cache-tri v1-6) vertex 0 y) 409600.0) + (+! (-> (the-as collide-cache-tri v1-6) vertex 1 y) 409600.0) + (+! (-> (the-as collide-cache-tri v1-6) vertex 2 y) 409600.0) + ) + (set! v1-6 (-> (the-as (inline-array collide-cache-tri) v1-6) 1)) + ) + ) + (if *display-collide-cache* + (debug-draw *collide-cache*) + ) + (rigid-body-object-method-30 obj) + (set! (-> obj root transv quad) (-> obj rbody state lin-velocity quad)) + (quaternion-copy! (-> obj root quat) (-> obj rbody state rotation)) + (rigid-body-method-24 (-> obj rbody state)) + (let ((v1-22 (-> obj rbody)) + (a1-8 (-> obj root trans)) + ) + (rigid-body-method-23 (-> v1-22 state) a1-8) + ) + (set! (-> obj node-list data 0 bone transform trans quad) (-> obj root trans quad)) + (transform-post) + 0 + (none) ) (defmethod allocate-and-init-cshape dig-stomp-block ((obj dig-stomp-block)) diff --git a/goal_src/jak2/levels/drill/drill-mech-master.gc b/goal_src/jak2/levels/drill/drill-mech-master.gc index 21fbeff51f..9b04e3309a 100644 --- a/goal_src/jak2/levels/drill/drill-mech-master.gc +++ b/goal_src/jak2/levels/drill/drill-mech-master.gc @@ -276,7 +276,7 @@ *screen-filter* (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) - (* 5.0 (-> self clock seconds-per-frame)) + (* 5.0 (seconds-per-frame)) (bucket-id tex-all-map) ) ) diff --git a/goal_src/jak2/levels/drill/drill-obs.gc b/goal_src/jak2/levels/drill/drill-obs.gc index eb4054d8d7..7db7d8d20e 100644 --- a/goal_src/jak2/levels/drill/drill-obs.gc +++ b/goal_src/jak2/levels/drill/drill-obs.gc @@ -1485,23 +1485,10 @@ This commonly includes things such as: ) (set! (-> *part-id-table* 1993 init-specs 4 initial-valuef) (vector-length (-> s5-1 move-dist))) (draw-beam (-> *part-id-table* 1993) (-> s5-1 start-pos) (-> s5-1 move-dist) #f #t) - (let ((t9-9 sp-launch-particles-var) - (a0-17 *sp-particle-system-2d*) - (a1-7 (-> *part-id-table* 1994)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s5-1 start-pos quad)) - (t9-9 a0-17 a1-7 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-10 sp-launch-particles-var) - (a0-18 *sp-particle-system-2d*) - (a1-8 (-> *part-id-table* 1995)) - (a2-4 *launch-matrix*) - ) - (set! (-> a2-4 trans quad) - (-> (vector+! (new 'stack-no-clear 'vector) (-> s5-1 start-pos) (-> s5-1 move-dist)) quad) - ) - (t9-10 a0-18 a1-8 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) + (launch-particles (-> *part-id-table* 1994) (-> s5-1 start-pos)) + (launch-particles + (-> *part-id-table* 1995) + (vector+! (new 'stack-no-clear 'vector) (-> s5-1 start-pos) (-> s5-1 move-dist)) ) (let ((s4-4 (new 'stack-no-clear 'projectile-init-by-other-params))) (set! (-> s4-4 ent) (-> self entity)) diff --git a/goal_src/jak2/levels/drill/drill-part2.gc b/goal_src/jak2/levels/drill/drill-part2.gc index 4ba379234e..eeaea99051 100644 --- a/goal_src/jak2/levels/drill/drill-part2.gc +++ b/goal_src/jak2/levels/drill/drill-part2.gc @@ -196,30 +196,9 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 vector 0 x) -696320.0 (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 1908)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-3 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 1909)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-4 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 1910)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-3 a0-5 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1908) gp-0) + (launch-particles (-> *part-id-table* 1909) gp-0) + (launch-particles (-> *part-id-table* 1910) gp-0) ) ) (none) diff --git a/goal_src/jak2/levels/drill/ginsu.gc b/goal_src/jak2/levels/drill/ginsu.gc index 64a20f2870..8620412e81 100644 --- a/goal_src/jak2/levels/drill/ginsu.gc +++ b/goal_src/jak2/levels/drill/ginsu.gc @@ -483,40 +483,38 @@ ) (defmethod nav-enemy-method-142 ginsu ((obj ginsu) (arg0 nav-control)) - (with-pp - (let ((s3-0 (new 'stack-no-clear 'vector))) - (let ((a0-2 (handle->process (-> obj focus handle)))) - (cond - (a0-2 - (vector-! s3-0 (get-trans (the-as process-focusable a0-2) 0) (-> obj root trans)) - ) - (else - (let ((a0-7 (-> arg0 state))) - (set! (-> s3-0 quad) (-> a0-7 heading quad)) - ) - ) + (let ((s3-0 (new 'stack-no-clear 'vector))) + (let ((a0-2 (handle->process (-> obj focus handle)))) + (cond + (a0-2 + (vector-! s3-0 (get-trans (the-as process-focusable a0-2) 0) (-> obj root trans)) ) - ) - (set! (-> s3-0 y) 0.0) - (vector-normalize! s3-0 1.0) - (let ((s5-3 (new 'stack-no-clear 'quaternion)) - (s4-0 (-> obj root quat)) + (else + (let ((a0-7 (-> arg0 state))) + (set! (-> s3-0 quad) (-> a0-7 heading quad)) ) - (quaternion-set! s5-3 0.0 (sqrtf (* 0.5 (- 1.0 (-> s3-0 z)))) 0.0 (sqrtf (* 0.5 (+ 1.0 (-> s3-0 z))))) - (if (< (-> s3-0 x) 0.0) - (set! (-> s5-3 y) (- (-> s5-3 y))) - ) - (quaternion-pseudo-seek - s4-0 - s4-0 - s5-3 - (* (fmax 0.5 (* 0.00024414062 (-> obj nav state speed))) (-> pp clock seconds-per-frame)) ) ) ) - 0 - (none) + (set! (-> s3-0 y) 0.0) + (vector-normalize! s3-0 1.0) + (let ((s5-3 (new 'stack-no-clear 'quaternion)) + (s4-0 (-> obj root quat)) + ) + (quaternion-set! s5-3 0.0 (sqrtf (* 0.5 (- 1.0 (-> s3-0 z)))) 0.0 (sqrtf (* 0.5 (+ 1.0 (-> s3-0 z))))) + (if (< (-> s3-0 x) 0.0) + (set! (-> s5-3 y) (- (-> s5-3 y))) + ) + (quaternion-pseudo-seek + s4-0 + s4-0 + s5-3 + (* (fmax 0.5 (* 0.00024414062 (-> obj nav state speed))) (seconds-per-frame)) + ) + ) ) + 0 + (none) ) ;; WARN: disable def twice: 11. This may happen when a cond (no else) is nested inside of another conditional, but it should be rare. diff --git a/goal_src/jak2/levels/forest/fish.gc b/goal_src/jak2/levels/forest/fish.gc index 2bb1ab1bf5..6819e2d6d0 100644 --- a/goal_src/jak2/levels/forest/fish.gc +++ b/goal_src/jak2/levels/forest/fish.gc @@ -415,7 +415,7 @@ (set! (-> s0-0 y) 0.0) (let ((a0-44 s3-0)) (let ((v1-117 s3-0)) - (let ((a1-52 (-> self clock seconds-per-frame))) + (let ((a1-52 (seconds-per-frame))) (.mov vf7 a1-52) ) (.lvf vf5 (&-> s0-0 quad)) @@ -431,7 +431,7 @@ (let ((a1-54 s2-0)) (let ((v1-120 s2-0)) (let ((a0-46 s3-0)) - (let ((a2-10 (-> self clock seconds-per-frame))) + (let ((a2-10 (seconds-per-frame))) (.mov vf7 a2-10) ) (.lvf vf5 (&-> a0-46 quad)) diff --git a/goal_src/jak2/levels/forest/forest-obs.gc b/goal_src/jak2/levels/forest/forest-obs.gc index 5395e81efa..f17dd5416e 100644 --- a/goal_src/jak2/levels/forest/forest-obs.gc +++ b/goal_src/jak2/levels/forest/forest-obs.gc @@ -101,7 +101,7 @@ This commonly includes things such as: (let ((v1-3 (vector-! (new 'stack-no-clear 'vector) (-> self desired-pos) (-> self root trans)))) (let ((a0-3 (-> self root transv))) (if (not (-> self falling?)) - (vector+float*! a0-3 a0-3 v1-3 (* 3.0 (-> self clock seconds-per-frame))) + (vector+float*! a0-3 a0-3 v1-3 (* 3.0 (seconds-per-frame))) ) ) (vector-float*! (-> self root transv) (-> self root transv) 0.975) @@ -128,7 +128,7 @@ This commonly includes things such as: (fill-cache-integrate-and-collide gp-4 (-> gp-4 transv) a2-7 (meters 0)) ) (when (logtest? (-> gp-4 status) (collide-status touch-surface)) - (let ((f0-9 (fmax 0.0 (+ 1.0 (* -11.999999 (-> self clock seconds-per-frame)))))) + (let ((f0-9 (fmax 0.0 (+ 1.0 (* -11.999999 (seconds-per-frame)))))) (vector-float*! (-> gp-4 transv) (-> gp-4 transv) f0-9) ) ) diff --git a/goal_src/jak2/levels/forest/forest-part.gc b/goal_src/jak2/levels/forest/forest-part.gc index 53121ff4d9..c7571cc6b3 100644 --- a/goal_src/jak2/levels/forest/forest-part.gc +++ b/goal_src/jak2/levels/forest/forest-part.gc @@ -985,30 +985,9 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 2142)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 2143)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-3d*) - (a1-4 (-> *part-id-table* 2144)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-0 quad)) - (t9-3 a0-5 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 2142) s3-0) + (launch-particles (-> *part-id-table* 2143) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2144) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/goal_src/jak2/levels/forest/predator.gc b/goal_src/jak2/levels/forest/predator.gc index 028de361bf..fbba5b6720 100644 --- a/goal_src/jak2/levels/forest/predator.gc +++ b/goal_src/jak2/levels/forest/predator.gc @@ -809,60 +809,58 @@ ) (defmethod predator-method-183 predator ((obj predator)) - (with-pp - (cond - ((< (-> obj hit-points) 2) - (when (!= (-> obj dest-fade) 128.0) - (sound-play "pred-uncloak") - (stop! (-> obj sound)) - (set! (-> obj sound) (the-as ambient-sound 0)) - 0 - ) - (set! (-> obj dest-fade) 128.0) + (cond + ((< (-> obj hit-points) 2) + (when (!= (-> obj dest-fade) 128.0) + (sound-play "pred-uncloak") + (stop! (-> obj sound)) + (set! (-> obj sound) (the-as ambient-sound 0)) + 0 ) - (else - (set! (-> obj dest-fade) 0.0) - ) + (set! (-> obj dest-fade) 128.0) + ) + (else + (set! (-> obj dest-fade) 0.0) ) - (seek! (-> obj fade) (-> obj dest-fade) (* 60.0 (-> pp clock seconds-per-frame))) - (set! (-> obj draw force-fade) (the-as uint (the int (-> obj fade)))) - (cond - ((zero? (-> obj draw force-fade)) - (setup-masks (-> obj draw) 8 0) - (setup-masks (-> obj draw) 0 4) - (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) - ) - ((= (-> obj draw force-fade) 128) - (setup-masks (-> obj draw) 0 8) - (setup-masks (-> obj draw) 4 0) - (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) - ) - (else - (setup-masks (-> obj draw) 8 0) - (setup-masks (-> obj draw) 4 0) - (logior! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) - ) - ) - (if (< 245760.0 (vector-vector-distance (-> obj root trans) (camera-pos))) - (setup-masks (-> obj draw) 0 8) - ) - (when (< (current-time) (the-as time-frame (-> obj shock-effect-end))) - (when (>= (- (current-time) (-> obj shock-effect-time)) (seconds 0.04)) - (set! (-> obj shock-effect-time) (current-time)) - (process-drawable-shock-skel-effect - obj - (-> *lightning-spec-id-table* 18) - lightning-probe-callback - (-> *part-id-table* 166) - 2048.0 - -1 - -1 - ) - ) - ) - 0 - (none) ) + (seek! (-> obj fade) (-> obj dest-fade) (* 60.0 (seconds-per-frame))) + (set! (-> obj draw force-fade) (the-as uint (the int (-> obj fade)))) + (cond + ((zero? (-> obj draw force-fade)) + (setup-masks (-> obj draw) 8 0) + (setup-masks (-> obj draw) 0 4) + (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) + ) + ((= (-> obj draw force-fade) 128) + (setup-masks (-> obj draw) 0 8) + (setup-masks (-> obj draw) 4 0) + (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) + ) + (else + (setup-masks (-> obj draw) 8 0) + (setup-masks (-> obj draw) 4 0) + (logior! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) + ) + ) + (if (< 245760.0 (vector-vector-distance (-> obj root trans) (camera-pos))) + (setup-masks (-> obj draw) 0 8) + ) + (when (< (current-time) (the-as time-frame (-> obj shock-effect-end))) + (when (>= (- (current-time) (-> obj shock-effect-time)) (seconds 0.04)) + (set! (-> obj shock-effect-time) (current-time)) + (process-drawable-shock-skel-effect + obj + (-> *lightning-spec-id-table* 18) + lightning-probe-callback + (-> *part-id-table* 166) + 2048.0 + -1 + -1 + ) + ) + ) + 0 + (none) ) (defstate active (predator) diff --git a/goal_src/jak2/levels/forest/wren.gc b/goal_src/jak2/levels/forest/wren.gc index 83b2ee905a..6dee2447d3 100644 --- a/goal_src/jak2/levels/forest/wren.gc +++ b/goal_src/jak2/levels/forest/wren.gc @@ -76,11 +76,11 @@ (vf3 :class vf) ) (init-vf0-vector) - (seek! (-> self bob-level) (-> self bob-level-seek) (* 12288.0 (-> self clock seconds-per-frame))) + (seek! (-> self bob-level) (-> self bob-level-seek) (* 12288.0 (seconds-per-frame))) (let ((gp-0 (-> self fly-curve (-> self fly-index)))) (get-point-at-percent-along-path! gp-0 (-> self root trans) (-> self path-u) 'interp) - (seek! (-> self path-u) 1.0 (* (-> self path-du) (-> self path-du-mod) (-> self clock seconds-per-frame))) - (seek! (-> self path-du) 0.2 (* 0.1 (-> self clock seconds-per-frame))) + (seek! (-> self path-u) 1.0 (* (-> self path-du) (-> self path-du-mod) (seconds-per-frame))) + (seek! (-> self path-du) 0.2 (* 0.1 (seconds-per-frame))) (let* ((f30-0 (-> self path-u)) (f0-16 (fmin 1.0 (+ 0.125 f30-0))) (s4-0 (displacement-between-points-at-percent-normalized! gp-0 (new 'stack-no-clear 'vector) f0-16)) @@ -109,8 +109,8 @@ ) ) (if (and (-> self next-state) (= (-> self next-state name) 'fly)) - (seek! (-> self bank-angle) f1-8 (* f0-19 (-> self clock seconds-per-frame))) - (seek! (-> self bank-angle) 0.0 (* 8192.0 (-> self clock seconds-per-frame))) + (seek! (-> self bank-angle) f1-8 (* f0-19 (seconds-per-frame))) + (seek! (-> self bank-angle) 0.0 (* 8192.0 (seconds-per-frame))) ) ) ) @@ -181,7 +181,7 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]" (vector-normalize! gp-1 12288.0) (let ((v1-1 (new 'stack-no-clear 'vector))) (.lvf vf1 (&-> gp-1 quad)) - (let ((f0-0 (-> self clock seconds-per-frame))) + (let ((f0-0 (seconds-per-frame))) (.mov at-0 f0-0) ) (.mov vf2 at-0) @@ -332,10 +332,10 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]" ) (until #f (let ((f0-11 (fmax -0.2 (fmin 0.5 (-> self fly-y-rate))))) - (seek! (-> self fly-interp) (lerp-scale 0.0 1.0 f0-11 -0.2 0.5) (-> self clock seconds-per-frame)) + (seek! (-> self fly-interp) (lerp-scale 0.0 1.0 f0-11 -0.2 0.5) (seconds-per-frame)) ) (let ((f30-1 (-> self fly-interp))) - (seek! (-> self path-du-mod) (+ 0.9 (* 0.2 f30-1)) (* 0.5 (-> self clock seconds-per-frame))) + (seek! (-> self path-du-mod) (+ 0.9 (* 0.2 f30-1)) (* 0.5 (seconds-per-frame))) (set! (-> self bob-level-seek) (+ -12288.0 (* 24576.0 f30-1))) (let ((v1-59 (-> self skel root-channel 0))) (let ((f0-23 (- 1.0 f30-1))) @@ -381,7 +381,7 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]" (none) ) :post (behavior () - (seek! (-> self path-du-mod) 0.0 (* 0.5 (-> self clock seconds-per-frame))) + (seek! (-> self path-du-mod) 0.0 (* 0.5 (seconds-per-frame))) (fly-post) (none) ) diff --git a/goal_src/jak2/levels/fortress/dump/fordumpb-obs.gc b/goal_src/jak2/levels/fortress/dump/fordumpb-obs.gc index 3e475c0218..48d1f91a12 100644 --- a/goal_src/jak2/levels/fortress/dump/fordumpb-obs.gc +++ b/goal_src/jak2/levels/fortress/dump/fordumpb-obs.gc @@ -185,7 +185,7 @@ This commonly includes things such as: (none) ) :post (behavior () - (+! (-> self path-pos) (* (-> self path-speed) (-> self clock seconds-per-frame))) + (+! (-> self path-pos) (* (-> self path-speed) (seconds-per-frame))) (let* ((f0-2 (-> self path-pos)) (f30-0 (if (< 0.5 f0-2) (- 1.0 f0-2) diff --git a/goal_src/jak2/levels/fortress/dump/fordumpc-obs.gc b/goal_src/jak2/levels/fortress/dump/fordumpc-obs.gc index ad99c4adc6..24b4cee450 100644 --- a/goal_src/jak2/levels/fortress/dump/fordumpc-obs.gc +++ b/goal_src/jak2/levels/fortress/dump/fordumpc-obs.gc @@ -876,7 +876,7 @@ This commonly includes things such as: *screen-filter* (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) - (* 0.3 (-> self clock seconds-per-frame)) + (* 0.3 (seconds-per-frame)) (bucket-id tex-all-map) ) ) diff --git a/goal_src/jak2/levels/fortress/dump/fort-robotank-turret.gc b/goal_src/jak2/levels/fortress/dump/fort-robotank-turret.gc index f125bc2395..987a335ea1 100644 --- a/goal_src/jak2/levels/fortress/dump/fort-robotank-turret.gc +++ b/goal_src/jak2/levels/fortress/dump/fort-robotank-turret.gc @@ -257,7 +257,7 @@ :code (behavior () (let ((gp-0 (current-time))) (until (>= (- (current-time) gp-0) (seconds 1)) - (seek! (-> self transition) 0.0 (-> self clock seconds-per-frame)) + (seek! (-> self transition) 0.0 (seconds-per-frame)) (set-roboscreen-alpha! (-> self transition)) (suspend) ) @@ -280,7 +280,7 @@ (gp-0 (new 'stack-no-clear 'vector)) (f30-0 4096.0) ) - ;; changed for PC port: stretch effect based on aspect ratio + ;; og:preserve-this changed for PC port: stretch effect based on aspect ratio (let ((f0-4 (* 0.00013563369 (tan (* 0.5 (-> *math-camera* fov))) f30-0))) (set-vector! (-> obj root scale) (* f0-4 (if (-> *pc-settings* use-vis?) 1.0 (-> *pc-settings* aspect-ratio-scale))) f0-4 f0-4 1.0) ) @@ -420,7 +420,7 @@ ) ) 0 - (vector-seek! (-> self sight-jmod twist-max) (-> self sight-scale) (* 6.0 (-> self clock seconds-per-frame))) + (vector-seek! (-> self sight-jmod twist-max) (-> self sight-scale) (* 6.0 (seconds-per-frame))) (ja-post) (none) ) @@ -884,6 +884,7 @@ (if (logtest? (-> self flags) (robotank-turret-flags rotflags-9)) (los-control-method-9 (-> self los) gp-0 (the-as vector #f) 1638.4) ) + ;; og:preserve-this target-look-at-me! macro (target-look-at-me! :trans (the-as vector (-> self root root-prim prim-core)) :message 'attacking) (set! (-> self aim-pos 0 quad) (-> self aim-pos-2 quad)) (set! (-> self aim-pos-2 quad) (-> (get-trans gp-0 0) quad)) @@ -912,7 +913,7 @@ ) (when (logtest? (-> self flags) (robotank-turret-flags rotflags-7)) (let ((f0-6 (lerp-scale 1.0 0.2 f30-0 8192.0 327680.0))) - (seek! (-> self fov-mult) f0-6 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self fov-mult) f0-6 (* 2.0 (seconds-per-frame))) ) (set-setting! 'fov 'rel (-> self fov-mult) 0) (send-event (handle->process (-> self screen)) 'set-fov-mult (-> self fov-mult)) @@ -936,7 +937,7 @@ ) ) ) - (seek! (-> self gun-elev-cam) f0-29 (* f1-12 (-> self clock seconds-per-frame))) + (seek! (-> self gun-elev-cam) f0-29 (* f1-12 (seconds-per-frame))) ) (let* ((f28-2 (quaternion-y-angle (-> self rotate-quat))) (f0-33 (quaternion-y-angle (-> self tank-quat))) @@ -951,7 +952,7 @@ ) ) ) - (seek! (-> self gun-elev) f0-41 (* 2730.6667 (-> self clock seconds-per-frame))) + (seek! (-> self gun-elev) f0-41 (* 2730.6667 (seconds-per-frame))) ) ) ) @@ -1013,7 +1014,7 @@ (quaternion-rotate-y! (-> self rotate-quat) (-> self rotate-quat) - (* (-> self rotate-rate) (-> self clock seconds-per-frame)) + (* (-> self rotate-rate) (seconds-per-frame)) ) (quaternion*! (-> self root quat) (-> self rotate-quat) (-> self tank-quat-vibe-only)) (quaternion-normalize! (-> self root quat)) diff --git a/goal_src/jak2/levels/fortress/dump/fort-robotank.gc b/goal_src/jak2/levels/fortress/dump/fort-robotank.gc index a3b46a5bcf..28ac6b9364 100644 --- a/goal_src/jak2/levels/fortress/dump/fort-robotank.gc +++ b/goal_src/jak2/levels/fortress/dump/fort-robotank.gc @@ -324,7 +324,7 @@ 0 ) (fort-robotank-method-25 self) - (seek! (-> self roller-jmod twist y) (-> self roller-spin-rate) (* 16384.0 (-> self clock seconds-per-frame))) + (seek! (-> self roller-jmod twist y) (-> self roller-spin-rate) (* 16384.0 (seconds-per-frame))) (let ((gp-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 5))) (s4-0 (get-field-spec-by-id (-> *part-id-table* 2474) (sp-field-id spt-num))) (s5-0 (new 'stack-no-clear 'matrix)) @@ -346,7 +346,7 @@ ) (let ((s1-0 (get-field-spec-by-id (-> *part-id-table* 2471) (sp-field-id spt-num))) (f30-0 (vector-length s3-1)) - (f28-0 (* 12288.0 (-> self clock seconds-per-frame))) + (f28-0 (* 12288.0 (seconds-per-frame))) ) (set! (-> s1-0 initial-valuef) (lerp-scale 0.0 0.5 f30-0 0.0 f28-0)) (set! (-> s1-0 random-rangef) (lerp-scale 0.0 1.0 f30-0 0.0 f28-0)) @@ -373,12 +373,12 @@ (let ((v1-65 (-> self path-info data (-> self path-index)))) (cond ((and (logtest? (-> self flags) (robotank-flags roflags-2)) (!= (-> v1-65 u) (-> v1-65 prev-u))) - (seek! (-> self engine-vibe-rate) 3.0 (-> self clock seconds-per-frame)) - (seek! (-> self engine-vibe-amp) 1.0 (-> self clock seconds-per-frame)) + (seek! (-> self engine-vibe-rate) 3.0 (seconds-per-frame)) + (seek! (-> self engine-vibe-amp) 1.0 (seconds-per-frame)) ) (else - (seek! (-> self engine-vibe-rate) 1.0 (-> self clock seconds-per-frame)) - (seek! (-> self engine-vibe-amp) 0.4 (-> self clock seconds-per-frame)) + (seek! (-> self engine-vibe-rate) 1.0 (seconds-per-frame)) + (seek! (-> self engine-vibe-amp) 0.4 (seconds-per-frame)) ) ) ) @@ -912,8 +912,8 @@ ) ) ) - (set! (-> gp-1 u) (fmax 0.0 (fmin 1.0 (+ (-> gp-1 u) (* f28-0 f30-1 (-> self clock seconds-per-frame)))))) - (seek! (-> gp-1 du) (-> gp-1 du-final) (* 0.5 (-> self clock seconds-per-frame) (-> gp-1 du-final))) + (set! (-> gp-1 u) (fmax 0.0 (fmin 1.0 (+ (-> gp-1 u) (* f28-0 f30-1 (seconds-per-frame)))))) + (seek! (-> gp-1 du) (-> gp-1 du-final) (* 0.5 (seconds-per-frame) (-> gp-1 du-final))) (update-vol! (-> self sound) (lerp-scale 0.0 1.0 (* f28-0 f30-1) 0.0 0.03)) (update-vol! (-> self barrel-sound) (lerp-scale 0.0 1.0 (* f28-0 f30-1) 0.0 0.01)) ) diff --git a/goal_src/jak2/levels/fortress/exit/forexita-obs.gc b/goal_src/jak2/levels/fortress/exit/forexita-obs.gc index 1662471f3b..c4aa717c4e 100644 --- a/goal_src/jak2/levels/fortress/exit/forexita-obs.gc +++ b/goal_src/jak2/levels/fortress/exit/forexita-obs.gc @@ -31,6 +31,7 @@ (art-group-get-by-name *level* "skel-fort-lift-plat" (the-as (pointer uint32) #f)) ) +;; og:preserve-this ;; (defmethod base-plat-method-32 fort-lift-plat ((obj fort-lift-plat)) ;; 0 ;; (none) @@ -264,7 +265,7 @@ otherwise, [[plat::34]] :virtual #t :code (the-as (function none :behavior fort-claw) sleep-code) :post (behavior () - (let ((f30-0 (seek (-> self path-u) (-> self path-dest) (* 0.04 (-> self clock seconds-per-frame))))) + (let ((f30-0 (seek (-> self path-u) (-> self path-dest) (* 0.04 (seconds-per-frame))))) (set! (-> self path-u) f30-0) (let ((f0-4 (-> self path-dest))) (when (= f30-0 f0-4) diff --git a/goal_src/jak2/levels/fortress/exit/forexitb-part.gc b/goal_src/jak2/levels/fortress/exit/forexitb-part.gc index effb0662cd..b0b43e1c9f 100644 --- a/goal_src/jak2/levels/fortress/exit/forexitb-part.gc +++ b/goal_src/jak2/levels/fortress/exit/forexitb-part.gc @@ -1226,22 +1226,8 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 2820)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-3d*) - (a1-3 (-> *part-id-table* 2821)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 2820) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2821) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) @@ -1254,30 +1240,9 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 2820)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-3d*) - (a1-3 (-> *part-id-table* 2822)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-2d*) - (a1-4 (-> *part-id-table* 2823)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-0 quad)) - (t9-3 a0-5 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 2820) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2822) s3-0) + (launch-particles (-> *part-id-table* 2823) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/goal_src/jak2/levels/fortress/fort-turret.gc b/goal_src/jak2/levels/fortress/fort-turret.gc index 752ea6d05e..44fde06de4 100644 --- a/goal_src/jak2/levels/fortress/fort-turret.gc +++ b/goal_src/jak2/levels/fortress/fort-turret.gc @@ -326,32 +326,11 @@ (new 'stack-no-clear 'vector) (cond (arg2 - (let ((t9-0 sp-launch-particles-var) - (a0-1 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 3066)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> arg0 quad)) - (t9-0 a0-1 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 3065)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> arg0 quad)) - (t9-1 a0-2 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 3066) arg0) + (launch-particles (-> *part-id-table* 3065) arg0) ) (else - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 3067)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> arg0 quad)) - (t9-2 a0-3 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 3067) arg0) ) ) 0 diff --git a/goal_src/jak2/levels/fortress/prison/prison-obs.gc b/goal_src/jak2/levels/fortress/prison/prison-obs.gc index e4adb8eeee..205e5372ab 100644 --- a/goal_src/jak2/levels/fortress/prison/prison-obs.gc +++ b/goal_src/jak2/levels/fortress/prison/prison-obs.gc @@ -248,7 +248,7 @@ (none) ) :post (behavior () - (seek! (-> self path-u) 1.0 (* (-> self path-du) (-> self clock seconds-per-frame))) + (seek! (-> self path-u) 1.0 (* (-> self path-du) (seconds-per-frame))) (when (>= (-> self path-u) 1.0) (set! (-> self path-u) 0.0) (set! (-> self state-time) (current-time)) @@ -401,10 +401,10 @@ This commonly includes things such as: (until #f (cond ((< (-> self frame) (-> self desired)) - (+! (-> self frame) (* 0.075 (-> self clock seconds-per-frame))) + (+! (-> self frame) (* 0.075 (seconds-per-frame))) ) ((< (-> self desired) (-> self frame)) - (set! (-> self frame) (- (-> self frame) (* 0.075 (-> self clock seconds-per-frame)))) + (set! (-> self frame) (- (-> self frame) (* 0.075 (seconds-per-frame)))) ) ) (set! (-> self frame) (fmax 0.0 (fmin 1.0 (-> self frame)))) diff --git a/goal_src/jak2/levels/fortress/rescue/forresca-obs.gc b/goal_src/jak2/levels/fortress/rescue/forresca-obs.gc index c8d3ee6db6..e54abf9440 100644 --- a/goal_src/jak2/levels/fortress/rescue/forresca-obs.gc +++ b/goal_src/jak2/levels/fortress/rescue/forresca-obs.gc @@ -269,7 +269,7 @@ This commonly includes things such as: (let ((gp-0 #t)) (dotimes (s5-0 5) (let ((s4-0 (-> self l-bolt s5-0))) - (seek! (-> s4-0 pos) 0.0 (* (- 1.14 (-> s4-0 pos)) (-> self clock seconds-per-frame))) + (seek! (-> s4-0 pos) 0.0 (* (- 1.14 (-> s4-0 pos)) (seconds-per-frame))) (set! gp-0 (cond ((or (< 1.0 (-> s4-0 pos)) (>= 0.0 (-> s4-0 pos))) (let ((v1-9 (-> self l-bolt s5-0 bolt)) diff --git a/goal_src/jak2/levels/fortress/rescue/forrescb-obs.gc b/goal_src/jak2/levels/fortress/rescue/forrescb-obs.gc index b3afce6fc6..961a9db87b 100644 --- a/goal_src/jak2/levels/fortress/rescue/forrescb-obs.gc +++ b/goal_src/jak2/levels/fortress/rescue/forrescb-obs.gc @@ -180,7 +180,7 @@ This commonly includes things such as: (set! (-> self root trans quad) (-> v1-7 quad)) ) ) - (+! (-> self path-u) (* (-> self path-du) (-> self clock seconds-per-frame))) + (+! (-> self path-u) (* (-> self path-du) (seconds-per-frame))) (ja-post) (none) ) @@ -216,7 +216,7 @@ This commonly includes things such as: (set! (-> self root trans quad) (-> v1-7 quad)) ) ) - (+! (-> self path-u) (* (-> self path-du) (-> self clock seconds-per-frame))) + (+! (-> self path-u) (* (-> self path-du) (seconds-per-frame))) (let ((s3-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 4))) (s2-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 5))) ) diff --git a/goal_src/jak2/levels/gungame/gun-dummy.gc b/goal_src/jak2/levels/gungame/gun-dummy.gc index 5ee3243214..9b09c89861 100644 --- a/goal_src/jak2/levels/gungame/gun-dummy.gc +++ b/goal_src/jak2/levels/gungame/gun-dummy.gc @@ -2055,8 +2055,8 @@ ret ) (((tpath-command translate)) - (set! (-> obj score) (- (-> obj score) (* (-> obj score-speed) (-> pp clock seconds-per-frame)))) - (set! (-> obj inout-percent) (fmax 0.0 (- (-> obj inout-percent) (* 4.0 (-> pp clock seconds-per-frame))))) + (set! (-> obj score) (- (-> obj score) (* (-> obj score-speed) (seconds-per-frame)))) + (set! (-> obj inout-percent) (fmax 0.0 (- (-> obj inout-percent) (* 4.0 (seconds-per-frame))))) (let ((s2-4 (new 'stack-no-clear 'vector)) (s3-4 (new 'stack-no-clear 'vector)) (f28-2 (lerp-scale 0.0 1.0 f30-0 0.0 (-> curr-path-command 0 time))) @@ -2134,8 +2134,8 @@ ret ) (((tpath-command wait)) - (set! (-> obj score) (- (-> obj score) (* (-> obj score-speed) (-> pp clock seconds-per-frame)))) - (set! (-> obj inout-percent) (fmax 0.0 (- (-> obj inout-percent) (* 4.0 (-> pp clock seconds-per-frame))))) + (set! (-> obj score) (- (-> obj score) (* (-> obj score-speed) (seconds-per-frame)))) + (set! (-> obj inout-percent) (fmax 0.0 (- (-> obj inout-percent) (* 4.0 (seconds-per-frame))))) (get-point-in-path! path (-> obj root trans) (-> obj path-pos) 'interp) (set! (-> obj first-time-command) #f) (when (or (and (= (-> curr-path-command 0 time) -1.0) (< (-> obj hit-points) 0)) @@ -2301,9 +2301,7 @@ (set! (-> self hit-points) -1) ) (+! (-> self root trans y) (-> self y-offset)) - (set! (-> self rot-y-offset) - (- (-> self rot-y-offset) (* 8.0 (-> self clock seconds-per-frame) (-> self rot-y-offset))) - ) + (set! (-> self rot-y-offset) (- (-> self rot-y-offset) (* 8.0 (seconds-per-frame) (-> self rot-y-offset)))) (when (< (-> self rot-y-offset) 182.04445) (when (nonzero? (-> self spin-sound)) (sound-stop (-> self spin-sound)) diff --git a/goal_src/jak2/levels/hideout/hideout-part.gc b/goal_src/jak2/levels/hideout/hideout-part.gc index 61e1f7c576..5ccd079430 100644 --- a/goal_src/jak2/levels/hideout/hideout-part.gc +++ b/goal_src/jak2/levels/hideout/hideout-part.gc @@ -573,22 +573,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 3380)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-2d*) - (a1-4 (-> *part-id-table* 3381)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-3 a0-5 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 3380) gp-0) + (launch-particles (-> *part-id-table* 3381) gp-0) ) ) (none) diff --git a/goal_src/jak2/levels/hiphog/whack.gc b/goal_src/jak2/levels/hiphog/whack.gc index 9b96269aec..02564ebfdb 100644 --- a/goal_src/jak2/levels/hiphog/whack.gc +++ b/goal_src/jak2/levels/hiphog/whack.gc @@ -2032,13 +2032,11 @@ (set! (-> *part-id-table* 3336 init-specs 2 random-rangef) 0.0) (set! (-> *part-id-table* 3336 init-specs 3 initial-valuef) (- 921.6 (* 614.4 (the float (/ s4-1 5))))) (set! (-> *part-id-table* 3336 init-specs 3 random-rangef) 0.0) - (sp-launch-particles-var - *sp-particle-system-3d* + (launch-particles + :system *sp-particle-system-3d* (-> *part-id-table* 3336) (-> (the-as process-drawable s5-1) node-list data 12 bone transform) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 + :origin-is-matrix #t ) ) ) @@ -2762,7 +2760,8 @@ ;; WARN: Return type mismatch object vs none. (defbehavior whack-a-metal-init whack-a-metal ((arg0 entity-actor)) - (stack-size-set! (-> self main-thread) 512) ;; added + ;; og:preserve-this added + (stack-size-set! (-> self main-thread) 512) (set! (-> self entity) arg0) (set! (-> self level) (level-get *level* 'hiphog)) (set! (-> self root) (new 'process 'trsqv)) diff --git a/goal_src/jak2/levels/intro/intro-obs.gc b/goal_src/jak2/levels/intro/intro-obs.gc index 9628008add..2ab4dee717 100644 --- a/goal_src/jak2/levels/intro/intro-obs.gc +++ b/goal_src/jak2/levels/intro/intro-obs.gc @@ -87,7 +87,7 @@ (none) ) :post (behavior () - (seek! (-> self path-u) 1.0 (* (-> self path-du) (-> self clock seconds-per-frame))) + (seek! (-> self path-u) 1.0 (* (-> self path-du) (seconds-per-frame))) (let ((s3-0 (intro-flamer-method-22 self)) (s4-0 (new 'stack-no-clear 'vector)) (s5-0 (new 'stack-no-clear 'quaternion)) @@ -115,11 +115,8 @@ (f0-15 (vector-dot (vector-cross! (new 'stack-no-clear 'vector) s3-1 v1-10) *up-vector*)) (f0-16 (* 49152.0 f0-15)) ) - (set! (-> self z-rot) (deg-seek - (-> self z-rot) - (fmax -15473.777 (fmin 15473.777 f0-16)) - (* 21845.334 (-> self clock seconds-per-frame)) - ) + (set! (-> self z-rot) + (deg-seek (-> self z-rot) (fmax -15473.777 (fmin 15473.777 f0-16)) (* 21845.334 (seconds-per-frame))) ) ) ) @@ -127,8 +124,8 @@ (let ((a2-5 (vector-rotate-z! (new 'stack-no-clear 'vector) *up-vector* (-> self z-rot)))) (forward-up->quaternion s5-0 s4-0 a2-5) ) - (quaternion-slerp! (-> self root quat) (-> self root quat) s5-0 (* 8.0 (-> self clock seconds-per-frame))) - (seek! (-> self flit-factor) 1.0 (* 8.0 (-> self clock seconds-per-frame))) + (quaternion-slerp! (-> self root quat) (-> self root quat) s5-0 (* 8.0 (seconds-per-frame))) + (seek! (-> self flit-factor) 1.0 (* 8.0 (seconds-per-frame))) (let* ((v1-25 (-> self flit-prev-offset)) (a1-10 (-> self flit-next-offset)) (a0-14 (vector-! (new 'stack-no-clear 'vector) a1-10 v1-25)) @@ -240,6 +237,7 @@ This commonly includes things such as: (the-as skeleton-group (art-group-get-by-name *level* "skel-intro-flamer" (the-as (pointer uint32) #f))) (the-as pair 0) ) + ;; og:preserve-this (#unless PC_PORT (set! (-> self draw force-lod) 2)) (set! (-> self id) arg0) diff --git a/goal_src/jak2/levels/intro/intro-scenes.gc b/goal_src/jak2/levels/intro/intro-scenes.gc index 45a801e823..603fd6993a 100644 --- a/goal_src/jak2/levels/intro/intro-scenes.gc +++ b/goal_src/jak2/levels/intro/intro-scenes.gc @@ -791,22 +791,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 vector 0 x) (-> arg2 vector 0 y) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 5341)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 5342)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 5341) gp-0) + (launch-particles (-> *part-id-table* 5342) gp-0) ) ) (none) @@ -1373,14 +1359,7 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg2 vector 0 y) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 5368)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 5368) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) @@ -2179,7 +2158,7 @@ *screen-filter* (new 'static 'vector :w 128.0) (new 'static 'vector :w 128.0) - (-> self clock seconds-per-frame) + (seconds-per-frame) (bucket-id screen-filter) ) (update-mood-weather! *mood-control* 0.25 0.5 0.0 0.0) @@ -2214,6 +2193,7 @@ (0 (apply ,(lambda () (case (scf-get-territory) + ;; og:preserve-this constants ((GAME_TERRITORY_SCEE) (talker-spawn-func (-> *talker-speech* 119) *entity-pool* (target-pos 0) (the-as region #f)) ) @@ -2289,7 +2269,7 @@ ) ) (if (not (paused?)) - (+! f30-0 (-> self clock seconds-per-frame)) + (+! f30-0 (seconds-per-frame)) ) (suspend) ) @@ -2311,7 +2291,7 @@ *screen-filter* (new 'static 'vector :w 128.0) (new 'static 'vector) - (-> self clock seconds-per-frame) + (seconds-per-frame) (bucket-id screen-filter) ) (none) @@ -2340,6 +2320,7 @@ (set! (-> v1-8 3) 128) ) (case (scf-get-territory) + ;; og:preserve-this constant ((GAME_TERRITORY_SCEE) (set-vector! (-> gp-0 pos) 256 170 #xffffff 0) (set! (-> gp-0 tex) (lookup-texture-by-id (new 'static 'texture-id :index #xa :page #xdbc))) @@ -2367,6 +2348,7 @@ ) ) ) + ;; og:preserve-this constant ((GAME_TERRITORY_SCEI) (set-vector! (-> gp-0 pos) 256 188 #xffffff 0) (set! (-> gp-0 tex) (lookup-texture-by-id (new 'static 'texture-id :index #x7 :page #xdbc))) @@ -2416,7 +2398,7 @@ ) ) (if (not (paused?)) - (+! f30-0 (-> self clock seconds-per-frame)) + (+! f30-0 (seconds-per-frame)) ) (suspend) ) @@ -3119,7 +3101,7 @@ *screen-filter* (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) - (* 0.2 (-> self clock seconds-per-frame)) + (* 0.2 (seconds-per-frame)) (bucket-id screen-filter) ) (set-setting! 'allow-blackout #f 0.0 0) @@ -3489,7 +3471,7 @@ *screen-filter* (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) - (* 0.2 (-> self clock seconds-per-frame)) + (* 0.2 (seconds-per-frame)) (bucket-id screen-filter) ) (update-mood-weather! *mood-control* 0.25 0.0 0.0 0.0) @@ -3633,17 +3615,15 @@ (592 (apply ,(lambda () - (with-pp - (set-setting! 'allow-blackout #f 0.0 0) - (setup - *screen-filter* - (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) - (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) - (* 2.0 (-> pp clock seconds-per-frame)) - (bucket-id screen-filter) - ) - (none) + (set-setting! 'allow-blackout #f 0.0 0) + (setup + *screen-filter* + (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) + (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) + (* 2.0 (seconds-per-frame)) + (bucket-id screen-filter) ) + (none) ) ) ) @@ -3871,30 +3851,28 @@ ) (apply ,(lambda () - (with-pp - (setup - *screen-filter* - (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) - (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) - (-> pp clock seconds-per-frame) - (bucket-id screen-filter) - ) - (update-mood-weather! *mood-control* 1.0 0.5 0.0 0.0) - (update-mood-weather! *mood-control* 0.2 0.5 80.0 80.0) - (set-time-for-random-weather! *mood-control* 180000.0 180000.0) - (let ((gp-0 (level-get *level* 'introcst))) - (when gp-0 - (clear-mood-context (-> gp-0 mood-context)) - (if #f - ((the-as (function mood-context none) #f) (-> gp-0 mood-context)) - ) - (set! (-> gp-0 mood-func) update-mood-ctywide) - (set! (-> gp-0 info sky) #t) - ) - ) - (set-filter-color! 1.0 1.0 1.0) - (none) + (setup + *screen-filter* + (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) + (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) + (seconds-per-frame) + (bucket-id screen-filter) ) + (update-mood-weather! *mood-control* 1.0 0.5 0.0 0.0) + (update-mood-weather! *mood-control* 0.2 0.5 80.0 80.0) + (set-time-for-random-weather! *mood-control* 180000.0 180000.0) + (let ((gp-0 (level-get *level* 'introcst))) + (when gp-0 + (clear-mood-context (-> gp-0 mood-context)) + (if #f + ((the-as (function mood-context none) #f) (-> gp-0 mood-context)) + ) + (set! (-> gp-0 mood-func) update-mood-ctywide) + (set! (-> gp-0 info sky) #t) + ) + ) + (set-filter-color! 1.0 1.0 1.0) + (none) ) ) (want-force-vis 'ctyindb #t) @@ -4006,7 +3984,7 @@ *screen-filter* (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) (new 'static 'vector :x 255.0 :y 128.0) - (* 0.025 (-> self clock seconds-per-frame)) + (* 0.025 (seconds-per-frame)) (bucket-id screen-filter) ) ) @@ -4075,7 +4053,7 @@ *screen-filter* (new 'static 'vector :w 128.0) (new 'static 'vector :w 128.0) - (* 128.0 (-> self clock seconds-per-frame)) + (* 128.0 (seconds-per-frame)) (bucket-id screen-filter) ) (none) @@ -4332,16 +4310,9 @@ (when (and (>= f30-0 150.0) (>= 400.0 f30-0)) (let ((s4-1 3)) (while (< s4-1 gp-1) - (when (not (and (>= s4-1 7) (>= 12 s4-1))) - (let ((t9-5 sp-launch-particles-var) - (a0-6 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 5390)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> self node-list data s4-1 bone transform trans quad)) - (t9-5 a0-6 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) + (if (not (and (>= s4-1 7) (>= 12 s4-1))) + (launch-particles (-> *part-id-table* 5390) (-> self node-list data s4-1 bone transform trans)) ) - ) (+! s4-1 s5-1) ) ) diff --git a/goal_src/jak2/levels/mountain/canyon/canyon-scenes.gc b/goal_src/jak2/levels/mountain/canyon/canyon-scenes.gc index ecfd7d0c7e..8805254031 100644 --- a/goal_src/jak2/levels/mountain/canyon/canyon-scenes.gc +++ b/goal_src/jak2/levels/mountain/canyon/canyon-scenes.gc @@ -1138,22 +1138,8 @@ (set! (-> *part-id-table* 1665 init-specs 4 initial-valuef) (vector-length displacement)) (draw-beam (-> *part-id-table* 1665) point-a displacement #f #t) ) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 1668)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> point-a quad)) - (t9-1 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 1669)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> point-b quad)) - (t9-2 a0-4 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1668) point-a) + (launch-particles (-> *part-id-table* 1669) point-b) (none) ) @@ -1163,22 +1149,8 @@ (set! (-> *part-id-table* 1666 init-specs 4 initial-valuef) (vector-length displacement)) (draw-beam (-> *part-id-table* 1666) point-a displacement #f #t) ) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 1668)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> point-a quad)) - (t9-1 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 1669)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> point-b quad)) - (t9-2 a0-4 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1668) point-a) + (launch-particles (-> *part-id-table* 1669) point-b) (none) ) @@ -1188,22 +1160,8 @@ (set! (-> *part-id-table* 1667 init-specs 4 initial-valuef) (vector-length displacement)) (draw-beam (-> *part-id-table* 1667) point-a displacement #f #t) ) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 1668)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> point-a quad)) - (t9-1 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 1669)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> point-b quad)) - (t9-2 a0-4 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1668) point-a) + (launch-particles (-> *part-id-table* 1669) point-b) (none) ) diff --git a/goal_src/jak2/levels/mountain/mountain-obs.gc b/goal_src/jak2/levels/mountain/mountain-obs.gc index 90018d4dfe..a3e4c249ed 100644 --- a/goal_src/jak2/levels/mountain/mountain-obs.gc +++ b/goal_src/jak2/levels/mountain/mountain-obs.gc @@ -366,13 +366,13 @@ (set! (-> self draw color-mult quad) (-> self color quad)) (cond ((>= (- (current-time) (-> self state-time)) (seconds 0.5)) - (+! (-> self speed-anim) (* -0.5 (-> self clock seconds-per-frame) (-> self time-anim))) - (+! (-> self speed-anim) (* -6.0 (-> self clock seconds-per-frame) (-> self speed-anim))) + (+! (-> self speed-anim) (* -0.5 (seconds-per-frame) (-> self time-anim))) + (+! (-> self speed-anim) (* -6.0 (seconds-per-frame) (-> self speed-anim))) (+! (-> self time-anim) (-> self speed-anim)) ) (else (set! (-> self draw color-mult quad) (-> self color quad)) - (set! (-> self speed-anim) (- (-> self speed-anim) (* 2.0 (-> self clock seconds-per-frame)))) + (set! (-> self speed-anim) (- (-> self speed-anim) (* 2.0 (seconds-per-frame)))) (+! (-> self time-anim) (-> self speed-anim)) (set! (-> self active) (the-as uint 3)) ) @@ -744,7 +744,7 @@ ) ((= event-type 'hint) (when (>= (-> self hint-count) 0.0) - (+! (-> self hint-count) (-> self clock seconds-per-frame)) + (+! (-> self hint-count) (seconds-per-frame)) (if (< 6.0 (-> self hint-count)) (talker-spawn-func (-> *talker-speech* 61) *entity-pool* (target-pos 0) (the-as region #f)) ) @@ -889,8 +889,8 @@ :post (behavior () (rider-trans) (if (= (-> self active) 1) - (set! (-> self color x) (fmin 1.0 (+ (-> self color x) (* 2.0 (-> self clock seconds-per-frame))))) - (set! (-> self color x) (fmax 0.5 (- (-> self color x) (* 2.0 (-> self clock seconds-per-frame))))) + (set! (-> self color x) (fmin 1.0 (+ (-> self color x) (* 2.0 (seconds-per-frame))))) + (set! (-> self color x) (fmax 0.5 (- (-> self color x) (* 2.0 (seconds-per-frame))))) ) (set! (-> self color y) (-> self color x)) (set! (-> self color z) (-> self color x)) @@ -974,12 +974,12 @@ (set! (-> self draw color-mult quad) (-> self color quad)) (cond ((-> self punch-anim) - (+! (-> self speed-anim) (* -4.0 (-> self clock seconds-per-frame) (-> self time-anim))) - (+! (-> self speed-anim) (* -16.0 (-> self clock seconds-per-frame) (-> self speed-anim))) + (+! (-> self speed-anim) (* -4.0 (seconds-per-frame) (-> self time-anim))) + (+! (-> self speed-anim) (* -16.0 (seconds-per-frame) (-> self speed-anim))) ) (else - (+! (-> self speed-anim) (* -3.0 (-> self clock seconds-per-frame) (-> self time-anim))) - (+! (-> self speed-anim) (* -20.0 (-> self clock seconds-per-frame) (-> self speed-anim))) + (+! (-> self speed-anim) (* -3.0 (seconds-per-frame) (-> self time-anim))) + (+! (-> self speed-anim) (* -20.0 (seconds-per-frame) (-> self speed-anim))) ) ) (+! (-> self time-anim) (-> self speed-anim)) @@ -1038,7 +1038,7 @@ ) :trans (behavior () (set! (-> self draw color-mult quad) (-> self color quad)) - (set! (-> self speed-anim) (- (-> self speed-anim) (* 0.05 (-> self clock seconds-per-frame)))) + (set! (-> self speed-anim) (- (-> self speed-anim) (* 0.05 (seconds-per-frame)))) (+! (-> self time-anim) (-> self speed-anim)) (set! (-> self active) (the-as uint 3)) (dotimes (v1-5 6) @@ -2319,8 +2319,8 @@ This commonly includes things such as: (local-vars (sv-16 vector-array) (sv-20 vector) (sv-48 float) (sv-52 symbol)) (transform-post) (if (= (-> *setting-control* user-current music) 'mountain) - (seek! (-> self volume) 0.6 (* 0.2 (-> self clock seconds-per-frame))) - (seek! (-> self volume) 1.0 (* 0.5 (-> self clock seconds-per-frame))) + (seek! (-> self volume) 0.6 (* 0.2 (seconds-per-frame))) + (seek! (-> self volume) 1.0 (* 0.5 (seconds-per-frame))) ) (sound-play-by-name (static-sound-name "mtn-aval-loop") @@ -2652,7 +2652,7 @@ This commonly includes things such as: ) :code (the-as (function none :behavior mtn-plat-return) sleep-code) :post (behavior () - (seek! (-> self path-pos) (-> self dest-pos) (* (-> self path-speed) (-> self clock seconds-per-frame))) + (seek! (-> self path-pos) (-> self dest-pos) (* (-> self path-speed) (seconds-per-frame))) (get-point-at-percent-along-path! (-> self path) (-> self basetrans) @@ -2782,7 +2782,7 @@ This commonly includes things such as: ) :code (the-as (function none :behavior mtn-plat-gap) sleep-code) :post (behavior () - (seek! (-> self path-pos) (-> self dest-pos) (* (-> self path-speed) (-> self clock seconds-per-frame))) + (seek! (-> self path-pos) (-> self dest-pos) (* (-> self path-speed) (seconds-per-frame))) (get-point-at-percent-along-path! (-> self path) (-> self basetrans) @@ -3238,14 +3238,7 @@ This commonly includes things such as: (while (< 0.0 f28-0) (set! (-> self basetrans y) (- f30-0 f28-0)) (plat-trans) - (set! f28-0 (seek-ease - f28-0 - 0.0 - (* 40960.0 (-> self clock seconds-per-frame)) - 2048.0 - (* 4096.0 (-> self clock seconds-per-frame)) - ) - ) + (set! f28-0 (seek-ease f28-0 0.0 (* 40960.0 (seconds-per-frame)) 2048.0 (* 4096.0 (seconds-per-frame)))) (suspend) ) ) diff --git a/goal_src/jak2/levels/mountain/mountain-obs2.gc b/goal_src/jak2/levels/mountain/mountain-obs2.gc index c0828eccfe..be2dab1176 100644 --- a/goal_src/jak2/levels/mountain/mountain-obs2.gc +++ b/goal_src/jak2/levels/mountain/mountain-obs2.gc @@ -237,7 +237,7 @@ For example for an elevator pre-compute the distance between the first and last ) (('hint) (when (>= (-> self hint-count) 0.0) - (+! (-> self hint-count) (-> self clock seconds-per-frame)) + (+! (-> self hint-count) (seconds-per-frame)) (when (< (rand-vu-float-range 6.0 10.0) (-> self hint-count)) (talker-spawn-func (-> *talker-speech* 56) *entity-pool* (target-pos 0) (the-as region #f)) (set! (-> self hint-count) 0.0) @@ -296,10 +296,8 @@ For example for an elevator pre-compute the distance between the first and last ) ) ) - (+! (-> self angle-flip-vel) - (* -0.5 (-> self clock seconds-per-frame) (- (-> self angle-flip) (-> self dest-angle))) - ) - (+! (-> self angle-flip-vel) (* -6.0 (-> self clock seconds-per-frame) (-> self angle-flip-vel))) + (+! (-> self angle-flip-vel) (* -0.5 (seconds-per-frame) (- (-> self angle-flip) (-> self dest-angle)))) + (+! (-> self angle-flip-vel) (* -6.0 (seconds-per-frame) (-> self angle-flip-vel))) (+! (-> self angle-flip) (-> self angle-flip-vel)) (quaternion-vector-angle! (-> self root quat) (-> self axe-flip) (* 182.04445 (-> self angle-flip))) (when (and (>= (- (current-time) (-> self state-time)) (the int (+ -300.0 (-> self time-flip)))) @@ -321,7 +319,7 @@ For example for an elevator pre-compute the distance between the first and last ) (vector-normalize! s5-2 1.0) (quaternion-vector-angle! gp-2 s5-2 1820.4445) - (quaternion-pseudo-seek (-> self root quat) (-> self root quat) gp-2 (-> self clock seconds-per-frame)) + (quaternion-pseudo-seek (-> self root quat) (-> self root quat) gp-2 (seconds-per-frame)) ) ) (quaternion-normalize! (-> self root quat)) diff --git a/goal_src/jak2/levels/mountain/mountain-part.gc b/goal_src/jak2/levels/mountain/mountain-part.gc index 95bd0296d3..adfb29a45a 100644 --- a/goal_src/jak2/levels/mountain/mountain-part.gc +++ b/goal_src/jak2/levels/mountain/mountain-part.gc @@ -1890,14 +1890,7 @@ (let ((vec (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! vec (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((func sp-launch-particles-var) - (sys *sp-particle-system-3d*) - (launcher (-> *part-id-table* 1591)) - (matrix *launch-matrix*) - ) - (set! (-> matrix trans quad) (-> vec quad)) - (func sys launcher matrix (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 1591) vec) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/goal_src/jak2/levels/mountain/rhino.gc b/goal_src/jak2/levels/mountain/rhino.gc index a97ef7b47c..2fe91eccdf 100644 --- a/goal_src/jak2/levels/mountain/rhino.gc +++ b/goal_src/jak2/levels/mountain/rhino.gc @@ -1389,7 +1389,7 @@ :frame-num 0.0 ) (until (ja-done? 0) - (set! (-> self skid-speed) (fmax 0.0 (- (-> self skid-speed) (* 32768.0 (-> self clock seconds-per-frame))))) + (set! (-> self skid-speed) (fmax 0.0 (- (-> self skid-speed) (* 32768.0 (seconds-per-frame))))) (suspend) (ja :num! (seek!)) ) @@ -1426,13 +1426,13 @@ ) ) (until (ja-done? 0) - (set! (-> self skid-speed) (fmax 0.0 (- (-> self skid-speed) (* 32768.0 (-> self clock seconds-per-frame))))) + (set! (-> self skid-speed) (fmax 0.0 (- (-> self skid-speed) (* 32768.0 (seconds-per-frame))))) (let ((v1-45 (-> self nav))) (set! (-> v1-45 target-speed) (-> self skid-speed)) ) 0 (if (and (>= (ja-frame-num 0) 0.0) (>= 15.0 (ja-frame-num 0))) - (+! (-> self angle) (* (-> self angle-speed) (-> self clock seconds-per-frame))) + (+! (-> self angle) (* (-> self angle-speed) (seconds-per-frame))) ) (let ((a0-20 (-> self nav state)) (v1-54 (-> self dest)) diff --git a/goal_src/jak2/levels/nest/boss/nestb-scenes.gc b/goal_src/jak2/levels/nest/boss/nestb-scenes.gc index 4720ad016f..5d61e18e03 100644 --- a/goal_src/jak2/levels/nest/boss/nestb-scenes.gc +++ b/goal_src/jak2/levels/nest/boss/nestb-scenes.gc @@ -412,14 +412,7 @@ (set! (-> *part-id-table* 621 init-specs 4 initial-valuef) f28-0) ) (vector-normalize! s5-1 1.0) - (let ((t9-4 sp-launch-particles-var) - (a0-8 *sp-particle-system-2d*) - (a1-9 (-> *part-id-table* 622)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-2 quad)) - (t9-4 a0-8 a1-9 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 622) s3-2) ) (let ((s4-1 (new 'stack-no-clear 'matrix)) (f26-0 (* 0.000020345053 f30-0)) @@ -430,14 +423,7 @@ (set! (-> s4-1 trans quad) (-> gp-0 quad)) (set! (-> *part-id-table* 623 init-specs 3 initial-valuef) (* f26-0 f30-1)) (set! (-> *part-id-table* 623 init-specs 5 initial-valuef) (* f26-0 f28-1)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 623) - s4-1 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 623) s4-1 :origin-is-matrix #t) (set! (-> *part-id-table* 623 init-specs 3 initial-valuef) f30-1) (set! (-> *part-id-table* 623 init-specs 5 initial-valuef) f28-1) ) @@ -1751,8 +1737,8 @@ This commonly includes things such as: (set-time-for-random-weather! *mood-control* 0.0 0.0) ) (set! *nav-network* (the-as nav-network 0)) + ;; og:preserve-this for nest revisit (#when PC_PORT - ;; for nest revisit (kill-by-name "blocking-plane-nestb" *active-pool*) ) 0 @@ -1761,8 +1747,8 @@ This commonly includes things such as: (defun nestb-activate ((arg0 level)) (nav-network-method-10 *nav-network* arg0 *nestb-adjacency*) + ;; og:preserve-this for nest revisit (#when PC_PORT - ;; for nest revisit (when (task-node-closed? (game-task-node nest-boss-resolution)) (script-eval '(begin (kill "metalkor-1") diff --git a/goal_src/jak2/levels/nest/flying-spider.gc b/goal_src/jak2/levels/nest/flying-spider.gc index 5cd03a1322..203dc64533 100644 --- a/goal_src/jak2/levels/nest/flying-spider.gc +++ b/goal_src/jak2/levels/nest/flying-spider.gc @@ -223,13 +223,8 @@ ) :post (behavior () (get-point-at-percent-along-path! (-> self path) (-> self root trans) (-> self path-u) 'interp) - (set! (-> self path-u) (seek-ease - (-> self path-u) - 1.0 - (* (-> self path-du) (-> self clock seconds-per-frame)) - 0.2 - (* 0.04 (-> self clock seconds-per-frame)) - ) + (set! (-> self path-u) + (seek-ease (-> self path-u) 1.0 (* (-> self path-du) (seconds-per-frame)) 0.2 (* 0.04 (seconds-per-frame))) ) (let ((f0-7 (-> self path-u))) (set-vector! (-> self root scale) f0-7 f0-7 f0-7 0.0) @@ -274,7 +269,7 @@ :frame-num 0.0 ) (until (ja-done? 0) - (quaternion-slerp! (-> self root quat) (-> self root quat) gp-0 (* 2.0 (-> self clock seconds-per-frame))) + (quaternion-slerp! (-> self root quat) (-> self root quat) gp-0 (* 2.0 (seconds-per-frame))) (suspend) (ja :num! (seek!)) ) @@ -721,35 +716,33 @@ ) (defmethod flying-spider-method-182 flying-spider ((obj flying-spider) (arg0 vector)) - (with-pp - (cond - ((= (-> obj root gspot-pos y) -40959590.0) - (set! (-> arg0 y) 0.0) - (vector-normalize! arg0 1.0) - (quaternion-set! (-> obj root quat) 0.0 (-> arg0 x) 0.0 (+ 1.0 (-> arg0 z))) - (quaternion-normalize! (-> obj root quat)) - ) - (else - (let ((s4-0 (new 'stack-no-clear 'vector))) - (set! (-> s4-0 quad) (-> *up-vector* quad)) - (let ((s3-0 (new 'stack-no-clear 'quaternion))) - (quaternion-from-two-vectors-max-angle! s3-0 s4-0 (-> obj gspot-normal) 4551.1113) - (vector-orient-by-quat! s4-0 s4-0 s3-0) - ) - (let ((s3-1 (-> obj my-up-vector))) - (new 'stack-no-clear 'vector) - (vector-deg-seek s3-1 s3-1 s4-0 (* 910.2222 (-> pp clock seconds-per-frame))) - (vector-normalize! s3-1 1.0) - (set! (-> arg0 y) 0.0) - (vector-normalize! arg0 1.0) - (forward-up->quaternion (-> obj root quat) arg0 s3-1) - ) + (cond + ((= (-> obj root gspot-pos y) -40959590.0) + (set! (-> arg0 y) 0.0) + (vector-normalize! arg0 1.0) + (quaternion-set! (-> obj root quat) 0.0 (-> arg0 x) 0.0 (+ 1.0 (-> arg0 z))) + (quaternion-normalize! (-> obj root quat)) + ) + (else + (let ((s4-0 (new 'stack-no-clear 'vector))) + (set! (-> s4-0 quad) (-> *up-vector* quad)) + (let ((s3-0 (new 'stack-no-clear 'quaternion))) + (quaternion-from-two-vectors-max-angle! s3-0 s4-0 (-> obj gspot-normal) 4551.1113) + (vector-orient-by-quat! s4-0 s4-0 s3-0) + ) + (let ((s3-1 (-> obj my-up-vector))) + (new 'stack-no-clear 'vector) + (vector-deg-seek s3-1 s3-1 s4-0 (* 910.2222 (seconds-per-frame))) + (vector-normalize! s3-1 1.0) + (set! (-> arg0 y) 0.0) + (vector-normalize! arg0 1.0) + (forward-up->quaternion (-> obj root quat) arg0 s3-1) ) ) ) - 0 - (none) ) + 0 + (none) ) (defmethod nav-enemy-method-142 flying-spider ((obj flying-spider) (arg0 nav-control)) diff --git a/goal_src/jak2/levels/nest/mammoth.gc b/goal_src/jak2/levels/nest/mammoth.gc index e3e44bde2c..f096652e48 100644 --- a/goal_src/jak2/levels/nest/mammoth.gc +++ b/goal_src/jak2/levels/nest/mammoth.gc @@ -202,7 +202,7 @@ 1.0 1.0 ) - (+! (-> self root transv y) (* (-> self enemy-info movement-gravity) (-> self clock seconds-per-frame))) + (+! (-> self root transv y) (* (-> self enemy-info movement-gravity) (seconds-per-frame))) (let ((a2-1 (new 'stack-no-clear 'move-above-ground-params))) (let ((v1-9 (-> self enemy-info))) (set! (-> a2-1 gnd-collide-with) (the-as collide-spec (-> self gnd-collide))) @@ -226,7 +226,7 @@ (vector-normalize! s5-1 1.0) (quaternion-set! gp-1 0.0 (-> s5-1 x) 0.0 (+ 1.0 (-> s5-1 z))) (quaternion-normalize! gp-1) - (quaternion-slerp! (-> self root quat) (-> self root quat) gp-1 (* 0.3 (-> self clock seconds-per-frame))) + (quaternion-slerp! (-> self root quat) (-> self root quat) gp-1 (* 0.3 (seconds-per-frame))) ) (nav-enemy-simple-post) (none) @@ -852,122 +852,118 @@ ;; WARN: Return type mismatch symbol vs pat-surface. (defmethod enemy-method-125 mammoth ((obj mammoth) (arg0 collide-query) (arg1 collide-spec) (arg2 float) (arg3 float) (arg4 float)) - (with-pp - (the-as - pat-surface - (when (find-ground (-> obj root) arg0 arg1 arg2 arg3 arg4) - (set! (-> obj root ground-pat) (-> arg0 best-other-tri pat)) - (let ((s3-0 (new 'stack-no-clear 'collide-query))) - (let ((s2-1 (vector-! (new 'stack-no-clear 'vector) (-> obj root gspot-pos) (-> obj root trans)))) - (vector-normalize! s2-1 1.0) - (vector+float*! (-> s3-0 start-pos) (-> obj root gspot-pos) s2-1 -4096.0) - (vector-float*! (-> s3-0 move-dist) s2-1 8192.0) - ) - (let ((v1-9 s3-0)) - (set! (-> v1-9 radius) 8192.0) - (set! (-> v1-9 collide-with) arg1) - (set! (-> v1-9 ignore-process0) obj) - (set! (-> v1-9 ignore-process1) #f) - (set! (-> v1-9 ignore-pat) (-> obj root pat-ignore-mask)) - (set! (-> v1-9 action-mask) (collide-action solid)) - ) - (fill-using-line-sphere *collide-cache* s3-0) + (the-as + pat-surface + (when (find-ground (-> obj root) arg0 arg1 arg2 arg3 arg4) + (set! (-> obj root ground-pat) (-> arg0 best-other-tri pat)) + (let ((s3-0 (new 'stack-no-clear 'collide-query))) + (let ((s2-1 (vector-! (new 'stack-no-clear 'vector) (-> obj root gspot-pos) (-> obj root trans)))) + (vector-normalize! s2-1 1.0) + (vector+float*! (-> s3-0 start-pos) (-> obj root gspot-pos) s2-1 -4096.0) + (vector-float*! (-> s3-0 move-dist) s2-1 8192.0) ) - (let ((s4-1 (new 'stack-no-clear 'vector))) - (vector-reset! s4-1) - (dotimes (s3-1 (-> *collide-cache* num-tris)) - (let* ((v1-15 (-> *collide-cache* tris s3-1)) - (s1-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-15 vertex 1) (the-as vector (-> v1-15 vertex)))) - (s0-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-15 vertex 2) (the-as vector (-> v1-15 vertex)))) - (s2-2 (new 'stack-no-clear 'vector)) - ) - (vector-normalize! s1-1 1.0) - (vector-normalize! s0-1 1.0) - (vector-cross! s2-2 s1-1 s0-1) - (if (< (cos 10922.667) (vector-dot s2-2 *y-vector*)) - (vector+! s4-1 s4-1 s2-2) - ) - ) - ) - (vector-normalize-copy! (-> obj gspot-normal) s4-1 1.0) + (let ((v1-9 s3-0)) + (set! (-> v1-9 radius) 8192.0) + (set! (-> v1-9 collide-with) arg1) + (set! (-> v1-9 ignore-process0) obj) + (set! (-> v1-9 ignore-process1) #f) + (set! (-> v1-9 ignore-pat) (-> obj root pat-ignore-mask)) + (set! (-> v1-9 action-mask) (collide-action solid)) ) - (let ((f0-4 (-> obj root gspot-pos y))) - (if (= (-> obj y-level) -40959590.0) - (set! (-> obj y-level) f0-4) - (seek! (-> obj y-level) f0-4 (* 8192.0 (-> pp clock seconds-per-frame))) - ) - ) - (set! (-> obj root gspot-pos y) (-> obj y-level)) - (set! (-> arg0 best-other-tri intersect y) (-> obj y-level)) - #t + (fill-using-line-sphere *collide-cache* s3-0) ) + (let ((s4-1 (new 'stack-no-clear 'vector))) + (vector-reset! s4-1) + (dotimes (s3-1 (-> *collide-cache* num-tris)) + (let* ((v1-15 (-> *collide-cache* tris s3-1)) + (s1-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-15 vertex 1) (the-as vector (-> v1-15 vertex)))) + (s0-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-15 vertex 2) (the-as vector (-> v1-15 vertex)))) + (s2-2 (new 'stack-no-clear 'vector)) + ) + (vector-normalize! s1-1 1.0) + (vector-normalize! s0-1 1.0) + (vector-cross! s2-2 s1-1 s0-1) + (if (< (cos 10922.667) (vector-dot s2-2 *y-vector*)) + (vector+! s4-1 s4-1 s2-2) + ) + ) + ) + (vector-normalize-copy! (-> obj gspot-normal) s4-1 1.0) + ) + (let ((f0-4 (-> obj root gspot-pos y))) + (if (= (-> obj y-level) -40959590.0) + (set! (-> obj y-level) f0-4) + (seek! (-> obj y-level) f0-4 (* 8192.0 (seconds-per-frame))) + ) + ) + (set! (-> obj root gspot-pos y) (-> obj y-level)) + (set! (-> arg0 best-other-tri intersect y) (-> obj y-level)) + #t ) ) ) (defmethod mammoth-method-183 mammoth ((obj mammoth)) - (with-pp - (cond - ((= (-> obj root gspot-pos y) -40959590.0) - (quaternion-copy! (-> obj tilt-quat) *unity-quaternion*) - ) - (else - (let ((s1-0 (-> obj root trans)) - (s5-0 (new 'stack-no-clear 'vector)) - ) - (set! (-> s5-0 quad) (-> obj gspot-normal quad)) - (let ((s4-0 (new 'stack-no-clear 'vector))) - (set! (-> s4-0 quad) (-> obj gspot-normal quad)) - (let ((s3-0 (new 'stack-no-clear 'vector))) - (set! (-> s3-0 quad) (-> obj gspot-normal quad)) - (let ((s2-0 (new 'stack-no-clear 'vector))) - (set! (-> s2-0 quad) (-> obj gspot-normal quad)) - (let ((s0-0 (lambda ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) - (let ((gp-1 (vector-! (new 'stack-no-clear 'vector) arg2 arg1)) - (s4-1 (vector-! (new 'stack-no-clear 'vector) arg3 arg1)) - ) - (vector-normalize! gp-1 1.0) - (vector-normalize! s4-1 1.0) - (vector-cross! arg0 s4-1 gp-1) - ) + (cond + ((= (-> obj root gspot-pos y) -40959590.0) + (quaternion-copy! (-> obj tilt-quat) *unity-quaternion*) + ) + (else + (let ((s1-0 (-> obj root trans)) + (s5-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> s5-0 quad) (-> obj gspot-normal quad)) + (let ((s4-0 (new 'stack-no-clear 'vector))) + (set! (-> s4-0 quad) (-> obj gspot-normal quad)) + (let ((s3-0 (new 'stack-no-clear 'vector))) + (set! (-> s3-0 quad) (-> obj gspot-normal quad)) + (let ((s2-0 (new 'stack-no-clear 'vector))) + (set! (-> s2-0 quad) (-> obj gspot-normal quad)) + (let ((s0-0 (lambda ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + (let ((gp-1 (vector-! (new 'stack-no-clear 'vector) arg2 arg1)) + (s4-1 (vector-! (new 'stack-no-clear 'vector) arg3 arg1)) + ) + (vector-normalize! gp-1 1.0) + (vector-normalize! s4-1 1.0) + (vector-cross! arg0 s4-1 gp-1) ) ) - ) - (if (and (logtest? (-> obj foot-flags) 1) (logtest? (-> obj foot-flags) 2)) - (s0-0 s5-0 s1-0 (the-as vector (-> obj foot-pos)) (-> obj foot-pos 1)) - ) - (if (and (logtest? (-> obj foot-flags) 2) (logtest? (-> obj foot-flags) 4)) - (s0-0 s4-0 s1-0 (-> obj foot-pos 1) (-> obj foot-pos 2)) - ) - (if (and (logtest? (-> obj foot-flags) 4) (logtest? (-> obj foot-flags) 8)) - (s0-0 s4-0 s1-0 (-> obj foot-pos 2) (-> obj foot-pos 3)) - ) - (if (and (logtest? (-> obj foot-flags) 8) (logtest? (-> obj foot-flags) 1)) - (s0-0 s4-0 s1-0 (-> obj foot-pos 3) (the-as vector (-> obj foot-pos))) - ) - ) - (vector+! s5-0 s5-0 s4-0) - (vector+! s5-0 s5-0 s3-0) - (vector+! s5-0 s5-0 s2-0) + ) + ) + (if (and (logtest? (-> obj foot-flags) 1) (logtest? (-> obj foot-flags) 2)) + (s0-0 s5-0 s1-0 (the-as vector (-> obj foot-pos)) (-> obj foot-pos 1)) + ) + (if (and (logtest? (-> obj foot-flags) 2) (logtest? (-> obj foot-flags) 4)) + (s0-0 s4-0 s1-0 (-> obj foot-pos 1) (-> obj foot-pos 2)) + ) + (if (and (logtest? (-> obj foot-flags) 4) (logtest? (-> obj foot-flags) 8)) + (s0-0 s4-0 s1-0 (-> obj foot-pos 2) (-> obj foot-pos 3)) + ) + (if (and (logtest? (-> obj foot-flags) 8) (logtest? (-> obj foot-flags) 1)) + (s0-0 s4-0 s1-0 (-> obj foot-pos 3) (the-as vector (-> obj foot-pos))) + ) ) + (vector+! s5-0 s5-0 s4-0) + (vector+! s5-0 s5-0 s3-0) + (vector+! s5-0 s5-0 s2-0) ) ) - (vector-normalize! s5-0 1.0) - (let ((s4-1 (new 'stack-no-clear 'quaternion))) - (let ((s0-1 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)))) - (set! (-> s0-1 y) 0.0) - (vector-xz-normalize! s0-1 1.0) - (vector-rotate-y! s5-0 s5-0 (- (vector-y-angle s0-1))) - ) - (quaternion-from-two-vectors-max-angle! s4-1 *up-vector* s5-0 4551.1113) - (quaternion-slerp! (-> obj tilt-quat) (-> obj tilt-quat) s4-1 (* 0.5 (-> pp clock seconds-per-frame))) + ) + (vector-normalize! s5-0 1.0) + (let ((s4-1 (new 'stack-no-clear 'quaternion))) + (let ((s0-1 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)))) + (set! (-> s0-1 y) 0.0) + (vector-xz-normalize! s0-1 1.0) + (vector-rotate-y! s5-0 s5-0 (- (vector-y-angle s0-1))) ) + (quaternion-from-two-vectors-max-angle! s4-1 *up-vector* s5-0 4551.1113) + (quaternion-slerp! (-> obj tilt-quat) (-> obj tilt-quat) s4-1 (* 0.5 (seconds-per-frame))) ) ) ) - 0 - (none) ) + 0 + (none) ) (defun mammoth-joint-mod-tilt ((arg0 cspace) (arg1 transformq)) @@ -1024,115 +1020,113 @@ ;; WARN: Return type mismatch none vs object. (defun mammoth-leg-ik-callback ((arg0 joint-mod-ik) (arg1 matrix) (arg2 matrix) (arg3 vector)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (let ((s5-0 (new 'stack-no-clear 'vector))) - (set! (-> s5-0 quad) (-> arg3 quad)) - (let ((f30-0 (- (-> arg3 y) (-> arg0 process root trans y)))) - (if (< 6144.0 f30-0) - (set! f30-0 6144.0) - ) - (if (< f30-0 -6144.0) - (set! f30-0 -6144.0) - ) - (let ((s2-0 (-> arg0 user-position))) - (let ((s3-0 (-> arg0 user-position))) - (let ((v1-14 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> arg0 process root quat)))) - (let ((a0-2 f30-0)) - (.mov vf7 a0-2) - ) - (.lvf vf5 (&-> v1-14 quad)) - ) - (.lvf vf4 (&-> s3-0 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> s2-0 quad) vf6) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (new 'stack-no-clear 'vector))) + (set! (-> s5-0 quad) (-> arg3 quad)) + (let ((f30-0 (- (-> arg3 y) (-> arg0 process root trans y)))) + (if (< 6144.0 f30-0) + (set! f30-0 6144.0) ) - ) - (let ((f0-4 (- (-> arg3 y) (-> arg0 user-position y)))) - (seek! (-> arg0 user-float) f0-4 (* 40960.0 (-> pp clock seconds-per-frame))) - ) - (let* ((f0-8 (-> arg0 user-float)) - (f30-1 (lerp-scale 1.0 0.0 f0-8 0.0 12288.0)) - (s3-1 (new 'stack-no-clear 'vector)) - ) - (let ((v1-17 s5-0)) - (let ((a0-5 (-> arg0 user-normal))) - (let ((a1-5 8192.0)) - (.mov vf7 a1-5) + (if (< f30-0 -6144.0) + (set! f30-0 -6144.0) + ) + (let ((s2-0 (-> arg0 user-position))) + (let ((s3-0 (-> arg0 user-position))) + (let ((v1-14 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> arg0 process root quat)))) + (let ((a0-2 f30-0)) + (.mov vf7 a0-2) ) - (.lvf vf5 (&-> a0-5 quad)) + (.lvf vf5 (&-> v1-14 quad)) ) - (.lvf vf4 (&-> v1-17 quad)) + (.lvf vf4 (&-> s3-0 quad)) ) (.add.x.vf vf6 vf0 vf0 :mask #b1000) (.mul.x.vf acc vf5 vf7 :mask #b111) (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> s3-1 quad) vf6) - (vector-float*! (new 'stack-no-clear 'vector) (-> arg0 user-normal) -16384.0) - (let ((s4-1 (new 'stack-no-clear 'vector))) - 0.0 - (let ((f0-12 (intersect-ray-plane s3-1 (-> arg0 user-normal) (-> arg0 user-position) *up-vector*)) - (a0-8 s4-1) - ) - (let ((v1-20 (-> arg0 user-normal))) - (let ((a1-8 f0-12)) - (.mov vf7 a1-8) - ) - (.lvf vf5 (&-> v1-20 quad)) - ) - (.lvf vf4 (&-> s3-1 quad)) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a0-8 quad) vf6) + (.svf (&-> s2-0 quad) vf6) + ) + ) + (let ((f0-4 (- (-> arg3 y) (-> arg0 user-position y)))) + (seek! (-> arg0 user-float) f0-4 (* 40960.0 (seconds-per-frame))) + ) + (let* ((f0-8 (-> arg0 user-float)) + (f30-1 (lerp-scale 1.0 0.0 f0-8 0.0 12288.0)) + (s3-1 (new 'stack-no-clear 'vector)) + ) + (let ((v1-17 s5-0)) + (let ((a0-5 (-> arg0 user-normal))) + (let ((a1-5 8192.0)) + (.mov vf7 a1-5) ) - (let ((a1-9 s4-1)) - (let ((v1-21 s4-1)) - (let ((a0-9 (-> arg0 user-normal))) - (let ((a2-7 - (- (vector-dot (-> arg0 user-normal) (vector-! (new 'stack-no-clear 'vector) s4-1 (-> arg0 user-position)))) - ) + (.lvf vf5 (&-> a0-5 quad)) + ) + (.lvf vf4 (&-> v1-17 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> s3-1 quad) vf6) + (vector-float*! (new 'stack-no-clear 'vector) (-> arg0 user-normal) -16384.0) + (let ((s4-1 (new 'stack-no-clear 'vector))) + 0.0 + (let ((f0-12 (intersect-ray-plane s3-1 (-> arg0 user-normal) (-> arg0 user-position) *up-vector*)) + (a0-8 s4-1) + ) + (let ((v1-20 (-> arg0 user-normal))) + (let ((a1-8 f0-12)) + (.mov vf7 a1-8) + ) + (.lvf vf5 (&-> v1-20 quad)) + ) + (.lvf vf4 (&-> s3-1 quad)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a0-8 quad) vf6) + ) + (let ((a1-9 s4-1)) + (let ((v1-21 s4-1)) + (let ((a0-9 (-> arg0 user-normal))) + (let ((a2-7 + (- (vector-dot (-> arg0 user-normal) (vector-! (new 'stack-no-clear 'vector) s4-1 (-> arg0 user-position)))) ) - (.mov vf7 a2-7) - ) - (.lvf vf5 (&-> a0-9 quad)) + ) + (.mov vf7 a2-7) ) - (.lvf vf4 (&-> v1-21 quad)) + (.lvf vf5 (&-> a0-9 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-9 quad) vf6) + (.lvf vf4 (&-> v1-21 quad)) ) - (let ((a1-10 s5-0)) - (let ((v1-22 s5-0)) - (let ((a0-11 (vector-! (new 'stack-no-clear 'vector) s4-1 s5-0))) - (let ((a2-10 (fmin 1.0 (* (-> arg0 user-blend) f30-1)))) - (.mov vf7 a2-10) - ) - (.lvf vf5 (&-> a0-11 quad)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-9 quad) vf6) + ) + (let ((a1-10 s5-0)) + (let ((v1-22 s5-0)) + (let ((a0-11 (vector-! (new 'stack-no-clear 'vector) s4-1 s5-0))) + (let ((a2-10 (fmin 1.0 (* (-> arg0 user-blend) f30-1)))) + (.mov vf7 a2-10) ) - (.lvf vf4 (&-> v1-22 quad)) + (.lvf vf5 (&-> a0-11 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-10 quad) vf6) + (.lvf vf4 (&-> v1-22 quad)) ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-10 quad) vf6) ) ) - (the-as object (handle-copy! arg0 s5-0)) ) + (the-as object (handle-copy! arg0 s5-0)) ) ) ) @@ -1206,7 +1200,7 @@ (set! (-> gp-0 ignore-process1) #f) (fill-using-bounding-box *collide-cache* gp-0) (let ((f0-11 (lerp-scale 1.0 0.0 (- (-> s0-0 y) (-> s5-0 gspot-pos y)) 2048.0 12288.0))) - (seek! (-> s3-0 user-blend) f0-11 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> s3-0 user-blend) f0-11 (* 4.0 (seconds-per-frame))) ) (let ((a1-9 (-> gp-0 start-pos))) (let ((v1-14 s0-0)) @@ -1277,125 +1271,123 @@ ) (defmethod mammoth-method-184 mammoth ((obj mammoth)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (dotimes (s5-0 4) - (-> obj joint-ik s5-0 shoulder-matrix-no-ik) - (let ((a0-1 (-> obj joint-ik s5-0 elbow-matrix-no-ik)) - (s3-0 (-> *mammoth-ik-setup* s5-0)) - (v1-8 (new 'stack-no-clear 'vector)) - (s1-0 (new 'stack-no-clear 'vector)) - ) - (set! (-> s1-0 quad) (-> *y-vector* quad)) - (new 'stack-no-clear 'vector) - (let ((s4-0 (new 'stack-no-clear 'vector))) - (let ((a2-0 v1-8)) - (let ((a1-4 (-> a0-1 trans))) - (let ((a0-2 (-> a0-1 vector 1))) - (let ((a3-0 (-> s3-0 hand-dist))) - (.mov vf7 a3-0) - ) - (.lvf vf5 (&-> a0-2 quad)) - ) - (.lvf vf4 (&-> a1-4 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a2-0 quad) vf6) - ) - (set! (-> s4-0 quad) (-> v1-8 quad)) - (let ((s2-0 (new 'stack-no-clear 'collide-query)) - (f30-0 (- (- (-> s4-0 y) (-> s3-0 ground-dist)) (-> obj root trans y))) - ) - (when #t - (let ((a1-5 (-> s2-0 bbox)) - (v1-13 s4-0) - (a0-4 (new 'stack-no-clear 'vector)) - ) - (set! (-> a0-4 x) 16384.0) - (set! (-> a0-4 y) 16384.0) - (set! (-> a0-4 z) 16384.0) - (set! (-> a0-4 w) 1.0) - (vector-! (the-as vector a1-5) v1-13 a0-4) - ) - (let ((a1-7 (-> s2-0 bbox max)) - (v1-14 s4-0) - (a0-5 (new 'stack-no-clear 'vector)) - ) - (set! (-> a0-5 x) 16384.0) - (set! (-> a0-5 y) 16384.0) - (set! (-> a0-5 z) 16384.0) - (set! (-> a0-5 w) 1.0) - (vector+! a1-7 v1-14 a0-5) - ) - (set! (-> s2-0 collide-with) (collide-spec backgnd)) - (set! (-> s2-0 ignore-process0) #f) - (set! (-> s2-0 ignore-process1) #f) - (set! (-> s2-0 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (fill-using-bounding-box *collide-cache* s2-0) - (let ((a1-10 (-> s2-0 start-pos))) - (let ((v1-19 s4-0)) - (let ((a0-7 s1-0)) - (let ((a2-10 24576.0)) - (.mov vf7 a2-10) - ) - (.lvf vf5 (&-> a0-7 quad)) - ) - (.lvf vf4 (&-> v1-19 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-10 quad) vf6) - ) - (vector-float*! (-> s2-0 move-dist) s1-0 -49152.0) - (let ((v1-22 s2-0)) - (set! (-> v1-22 radius) (-> s3-0 ground-dist)) - (set! (-> v1-22 collide-with) (collide-spec backgnd)) - (set! (-> v1-22 ignore-process0) #f) - (set! (-> v1-22 ignore-process1) #f) - (set! (-> v1-22 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (set! (-> v1-22 action-mask) (collide-action solid)) - ) - (let ((f0-14 (probe-using-line-sphere *collide-cache* s2-0))) - (when (>= f0-14 0.0) - (let ((v1-26 (new 'stack-no-clear 'vector))) - (let ((a0-13 (-> s2-0 start-pos))) - (let ((a1-12 (-> s2-0 move-dist))) - (let ((a2-11 f0-14)) - (.mov vf7 a2-11) - ) - (.lvf vf5 (&-> a1-12 quad)) - ) - (.lvf vf4 (&-> a0-13 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> v1-26 quad) vf6) - (seek! (-> obj ik-handle-y s5-0) (-> v1-26 y) (* 16384.0 (-> pp clock seconds-per-frame))) - ) - ) - ) - (set! (-> s4-0 y) (+ (-> obj ik-handle-y s5-0) f30-0)) - ) - (set! (-> obj heel-lerp s5-0) (lerp-scale 0.0 1.0 f30-0 0.0 3072.0)) - ) - (handle-copy! (-> obj joint-ik s5-0) s4-0) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (dotimes (s5-0 4) + (-> obj joint-ik s5-0 shoulder-matrix-no-ik) + (let ((a0-1 (-> obj joint-ik s5-0 elbow-matrix-no-ik)) + (s3-0 (-> *mammoth-ik-setup* s5-0)) + (v1-8 (new 'stack-no-clear 'vector)) + (s1-0 (new 'stack-no-clear 'vector)) ) + (set! (-> s1-0 quad) (-> *y-vector* quad)) + (new 'stack-no-clear 'vector) + (let ((s4-0 (new 'stack-no-clear 'vector))) + (let ((a2-0 v1-8)) + (let ((a1-4 (-> a0-1 trans))) + (let ((a0-2 (-> a0-1 vector 1))) + (let ((a3-0 (-> s3-0 hand-dist))) + (.mov vf7 a3-0) + ) + (.lvf vf5 (&-> a0-2 quad)) + ) + (.lvf vf4 (&-> a1-4 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a2-0 quad) vf6) + ) + (set! (-> s4-0 quad) (-> v1-8 quad)) + (let ((s2-0 (new 'stack-no-clear 'collide-query)) + (f30-0 (- (- (-> s4-0 y) (-> s3-0 ground-dist)) (-> obj root trans y))) + ) + (when #t + (let ((a1-5 (-> s2-0 bbox)) + (v1-13 s4-0) + (a0-4 (new 'stack-no-clear 'vector)) + ) + (set! (-> a0-4 x) 16384.0) + (set! (-> a0-4 y) 16384.0) + (set! (-> a0-4 z) 16384.0) + (set! (-> a0-4 w) 1.0) + (vector-! (the-as vector a1-5) v1-13 a0-4) + ) + (let ((a1-7 (-> s2-0 bbox max)) + (v1-14 s4-0) + (a0-5 (new 'stack-no-clear 'vector)) + ) + (set! (-> a0-5 x) 16384.0) + (set! (-> a0-5 y) 16384.0) + (set! (-> a0-5 z) 16384.0) + (set! (-> a0-5 w) 1.0) + (vector+! a1-7 v1-14 a0-5) + ) + (set! (-> s2-0 collide-with) (collide-spec backgnd)) + (set! (-> s2-0 ignore-process0) #f) + (set! (-> s2-0 ignore-process1) #f) + (set! (-> s2-0 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (fill-using-bounding-box *collide-cache* s2-0) + (let ((a1-10 (-> s2-0 start-pos))) + (let ((v1-19 s4-0)) + (let ((a0-7 s1-0)) + (let ((a2-10 24576.0)) + (.mov vf7 a2-10) + ) + (.lvf vf5 (&-> a0-7 quad)) + ) + (.lvf vf4 (&-> v1-19 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-10 quad) vf6) + ) + (vector-float*! (-> s2-0 move-dist) s1-0 -49152.0) + (let ((v1-22 s2-0)) + (set! (-> v1-22 radius) (-> s3-0 ground-dist)) + (set! (-> v1-22 collide-with) (collide-spec backgnd)) + (set! (-> v1-22 ignore-process0) #f) + (set! (-> v1-22 ignore-process1) #f) + (set! (-> v1-22 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (set! (-> v1-22 action-mask) (collide-action solid)) + ) + (let ((f0-14 (probe-using-line-sphere *collide-cache* s2-0))) + (when (>= f0-14 0.0) + (let ((v1-26 (new 'stack-no-clear 'vector))) + (let ((a0-13 (-> s2-0 start-pos))) + (let ((a1-12 (-> s2-0 move-dist))) + (let ((a2-11 f0-14)) + (.mov vf7 a2-11) + ) + (.lvf vf5 (&-> a1-12 quad)) + ) + (.lvf vf4 (&-> a0-13 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> v1-26 quad) vf6) + (seek! (-> obj ik-handle-y s5-0) (-> v1-26 y) (* 16384.0 (seconds-per-frame))) + ) + ) + ) + (set! (-> s4-0 y) (+ (-> obj ik-handle-y s5-0) f30-0)) + ) + (set! (-> obj heel-lerp s5-0) (lerp-scale 0.0 1.0 f30-0 0.0 3072.0)) + ) + (handle-copy! (-> obj joint-ik s5-0) s4-0) ) ) - 0 - (none) ) + 0 + (none) ) ) diff --git a/goal_src/jak2/levels/nest/mantis.gc b/goal_src/jak2/levels/nest/mantis.gc index d4b324ac43..82e1370ece 100644 --- a/goal_src/jak2/levels/nest/mantis.gc +++ b/goal_src/jak2/levels/nest/mantis.gc @@ -645,7 +645,7 @@ #f (until #f (label cfg-9) - (if (or (and (>= (fabs (* 4096.0 (-> self clock seconds-per-frame))) (-> self root transv y)) + (if (or (and (>= (fabs (* 4096.0 (seconds-per-frame))) (-> self root transv y)) (>= (-> self base-height) (-> self root trans y)) ) (logtest? (-> self root status) (collide-status on-ground)) @@ -1481,34 +1481,32 @@ ) (defmethod mantis-method-193 mantis ((obj mantis) (arg0 vector)) - (with-pp - (cond - ((= (-> obj root gspot-pos y) -40959590.0) - (set! (-> arg0 y) 0.0) - (vector-normalize! arg0 1.0) - (quaternion-set! (-> obj root quat) 0.0 (-> arg0 x) 0.0 (+ 1.0 (-> arg0 z))) - (quaternion-normalize! (-> obj root quat)) - ) - (else - (let ((s4-0 (new 'stack-no-clear 'vector))) - (set! (-> s4-0 quad) (-> *up-vector* quad)) - (let ((s3-0 (new 'stack-no-clear 'quaternion))) - (quaternion-from-two-vectors-max-angle! s3-0 s4-0 (-> obj gspot-normal) 10922.667) - (vector-orient-by-quat! s4-0 s4-0 s3-0) - ) - (let ((s3-1 (-> obj my-up-vector))) - (vector-deg-seek s3-1 s3-1 s4-0 (* 8192.0 (-> pp clock seconds-per-frame))) - (vector-normalize! s3-1 1.0) - (set! (-> arg0 y) 0.0) - (vector-normalize! arg0 1.0) - (forward-up-nopitch->quaternion (-> obj root quat) arg0 s3-1) - ) + (cond + ((= (-> obj root gspot-pos y) -40959590.0) + (set! (-> arg0 y) 0.0) + (vector-normalize! arg0 1.0) + (quaternion-set! (-> obj root quat) 0.0 (-> arg0 x) 0.0 (+ 1.0 (-> arg0 z))) + (quaternion-normalize! (-> obj root quat)) + ) + (else + (let ((s4-0 (new 'stack-no-clear 'vector))) + (set! (-> s4-0 quad) (-> *up-vector* quad)) + (let ((s3-0 (new 'stack-no-clear 'quaternion))) + (quaternion-from-two-vectors-max-angle! s3-0 s4-0 (-> obj gspot-normal) 10922.667) + (vector-orient-by-quat! s4-0 s4-0 s3-0) + ) + (let ((s3-1 (-> obj my-up-vector))) + (vector-deg-seek s3-1 s3-1 s4-0 (* 8192.0 (seconds-per-frame))) + (vector-normalize! s3-1 1.0) + (set! (-> arg0 y) 0.0) + (vector-normalize! arg0 1.0) + (forward-up-nopitch->quaternion (-> obj root quat) arg0 s3-1) ) ) ) - 0 - (none) ) + 0 + (none) ) (defmethod nav-enemy-method-142 mantis ((obj mantis) (arg0 nav-control)) diff --git a/goal_src/jak2/levels/nest/nest-obs.gc b/goal_src/jak2/levels/nest/nest-obs.gc index 2a17536aea..432a9a6c75 100644 --- a/goal_src/jak2/levels/nest/nest-obs.gc +++ b/goal_src/jak2/levels/nest/nest-obs.gc @@ -86,23 +86,23 @@ (set! (-> self y-rot-rate) 0.0) (logclear! (-> self mask) (process-mask actor-pause)) (while (< 0.0 (-> self y-delta)) - (seek! (-> self y-rot-rate) 500.0 (* 1000.0 (-> self clock seconds-per-frame))) + (seek! (-> self y-rot-rate) 500.0 (* 1000.0 (seconds-per-frame))) (quaternion-rotate-y! (-> self root quat) (-> self root quat) - (* 182.04445 (-> self clock seconds-per-frame) (-> self y-rot-rate)) + (* 182.04445 (seconds-per-frame) (-> self y-rot-rate)) ) - (seek! (-> self y-delta) 0.0 (* 4096.0 (-> self clock seconds-per-frame) (* 0.006 (-> self y-rot-rate)))) + (seek! (-> self y-delta) 0.0 (* 4096.0 (seconds-per-frame) (* 0.006 (-> self y-rot-rate)))) (set! (-> self root trans y) (+ (-> self y-start) (-> self y-delta))) (suspend) ) (let ((gp-0 (current-time))) (until (>= (- (current-time) gp-0) (seconds 1)) - (seek! (-> self y-rot-rate) 0.0 (* 4000.0 (-> self clock seconds-per-frame))) + (seek! (-> self y-rot-rate) 0.0 (* 4000.0 (seconds-per-frame))) (quaternion-rotate-y! (-> self root quat) (-> self root quat) - (* 182.04445 (-> self clock seconds-per-frame) (-> self y-rot-rate)) + (* 182.04445 (seconds-per-frame) (-> self y-rot-rate)) ) (suspend) ) @@ -221,7 +221,7 @@ This commonly includes things such as: ) ) (while (< (-> self y-offset) 16384.0) - (seek! (-> self y-offset) 16384.0 (* 8192.0 (-> self clock seconds-per-frame))) + (seek! (-> self y-offset) 16384.0 (* 8192.0 (seconds-per-frame))) (set! (-> self root trans y) (+ (-> self y-level) (-> self y-offset))) (suspend) ) diff --git a/goal_src/jak2/levels/nest/nest-scenes.gc b/goal_src/jak2/levels/nest/nest-scenes.gc index 66acd4a48a..097c5a73b6 100644 --- a/goal_src/jak2/levels/nest/nest-scenes.gc +++ b/goal_src/jak2/levels/nest/nest-scenes.gc @@ -824,7 +824,7 @@ *screen-filter* (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) - (* 128.0 (-> self clock seconds-per-frame)) + (* 128.0 (seconds-per-frame)) (bucket-id screen-filter) ) ) @@ -910,7 +910,7 @@ *screen-filter* (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) (new 'static 'vector :x 255.0 :y 128.0) - (-> self clock seconds-per-frame) + (seconds-per-frame) (bucket-id screen-filter) ) ) diff --git a/goal_src/jak2/levels/palace/boss/squid-setup.gc b/goal_src/jak2/levels/palace/boss/squid-setup.gc index 8060906339..6bb179c057 100644 --- a/goal_src/jak2/levels/palace/boss/squid-setup.gc +++ b/goal_src/jak2/levels/palace/boss/squid-setup.gc @@ -2872,22 +2872,8 @@ This commonly includes things such as: (set! (-> *part-id-table* 4857 init-specs 10 initial-valuef) 0.0) (draw-beam (-> *part-id-table* 4857) a1-0 s5-1 #f #t) (vector-normalize! s5-1 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-8 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 4858)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s4-1 quad)) - (t9-2 a0-8 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-9 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 4859)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s4-1 quad)) - (t9-3 a0-9 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4858) s4-1) + (launch-particles (-> *part-id-table* 4859) s4-1) ) (let ((s4-2 (new 'stack-no-clear 'matrix)) (f26-0 (* 0.000012207031 f30-0)) @@ -2898,14 +2884,7 @@ This commonly includes things such as: (set! (-> s4-2 trans quad) (-> gp-0 quad)) (set! (-> *part-id-table* 4860 init-specs 3 initial-valuef) (* f26-0 f30-1)) (set! (-> *part-id-table* 4860 init-specs 4 initial-valuef) (* f26-0 f28-0)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 4860) - s4-2 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 4860) s4-2 :origin-is-matrix #t) (set! (-> *part-id-table* 4860 init-specs 3 initial-valuef) f30-1) (set! (-> *part-id-table* 4860 init-specs 4 initial-valuef) f28-0) ) diff --git a/goal_src/jak2/levels/palace/cable/palcab-obs.gc b/goal_src/jak2/levels/palace/cable/palcab-obs.gc index 21f45e9555..2c6a94e61d 100644 --- a/goal_src/jak2/levels/palace/cable/palcab-obs.gc +++ b/goal_src/jak2/levels/palace/cable/palcab-obs.gc @@ -144,7 +144,7 @@ (init-vf0-vector) (let ((v1-0 (-> self root)) (f30-0 4369.067) - (f28-0 (* (-> self rotate-speed) (-> self clock seconds-per-frame))) + (f28-0 (* (-> self rotate-speed) (seconds-per-frame))) (gp-0 (new 'stack-no-clear 'vector)) ) (set! (-> gp-0 x) 1.0) @@ -572,22 +572,8 @@ This commonly includes things such as: (set! (-> *part-id-table* 606 init-specs 10 initial-valuef) f26-0) ) (vector-normalize! s5-1 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-8 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 607)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s4-1 quad)) - (t9-2 a0-8 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-9 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 608)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s4-1 quad)) - (t9-3 a0-9 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 607) s4-1) + (launch-particles (-> *part-id-table* 608) s4-1) ) (let ((s4-2 (new 'stack-no-clear 'matrix)) (f22-0 (* 0.000027126736 f30-0)) @@ -602,14 +588,7 @@ This commonly includes things such as: (set! (-> *part-id-table* 609 init-specs 4 initial-valuef) (* f22-0 f28-1)) (set! (-> *part-id-table* 609 init-specs 1 initial-valuef) 1.0) (set! (-> *part-id-table* 609 init-specs 1 random-rangef) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 609) - s4-2 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 609) s4-2 :origin-is-matrix #t) (set! (-> *part-id-table* 609 init-specs 3 initial-valuef) f30-1) (set! (-> *part-id-table* 609 init-specs 4 initial-valuef) f28-1) (set! (-> *part-id-table* 609 init-specs 1 initial-valuef) f26-1) @@ -828,12 +807,8 @@ This commonly includes things such as: ) :code (the-as (function none :behavior pal-rot-gun) sleep-code) :post (behavior () - (seek! (-> self spin-rate) (-> self spin-rate-final) (* 3640.889 (-> self clock seconds-per-frame))) - (quaternion-rotate-z! - (-> self root quat) - (-> self root quat) - (* (-> self spin-rate) (-> self clock seconds-per-frame)) - ) + (seek! (-> self spin-rate) (-> self spin-rate-final) (* 3640.889 (seconds-per-frame))) + (quaternion-rotate-z! (-> self root quat) (-> self root quat) (* (-> self spin-rate) (seconds-per-frame))) (let ((f30-0 1.0)) (when (>= (- (current-time) (-> self fire-timer)) (seconds 0.05)) (let ((gp-0 (new 'stack-no-clear 'matrix))) @@ -904,12 +879,8 @@ This commonly includes things such as: ) :code (the-as (function none :behavior pal-rot-gun) sleep-code) :post (behavior () - (seek! (-> self spin-rate) 0.0 (* 3640.889 (-> self clock seconds-per-frame))) - (quaternion-rotate-z! - (-> self root quat) - (-> self root quat) - (* (-> self spin-rate) (-> self clock seconds-per-frame)) - ) + (seek! (-> self spin-rate) 0.0 (* 3640.889 (seconds-per-frame))) + (quaternion-rotate-z! (-> self root quat) (-> self root quat) (* (-> self spin-rate) (seconds-per-frame))) (let ((f30-1 (+ 32768.0 (the float (sar (shl (the int (quaternion-z-angle (-> self root quat))) 48) 48))))) (let ((f0-10 (-> self prev-z-rot))) (if (or (and (< f0-10 32768.0) (< 32768.0 f30-1)) (< f30-1 f0-10)) diff --git a/goal_src/jak2/levels/palace/pal-obs.gc b/goal_src/jak2/levels/palace/pal-obs.gc index bc77588753..8a5d35156e 100644 --- a/goal_src/jak2/levels/palace/pal-obs.gc +++ b/goal_src/jak2/levels/palace/pal-obs.gc @@ -192,7 +192,8 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) ;; added + ;; og:preserve-this added + (stack-size-set! (-> obj main-thread) 1024) (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((v1-2 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0)))) @@ -497,8 +498,8 @@ This commonly includes things such as: (none) ) :trans (behavior () - (+! (-> self speed-y) (* -163840.0 (-> self clock seconds-per-frame))) - (+! (-> self root trans y) (* (-> self speed-y) (-> self clock seconds-per-frame))) + (+! (-> self speed-y) (* -163840.0 (seconds-per-frame))) + (+! (-> self root trans y) (* (-> self speed-y) (seconds-per-frame))) (when (< (-> self root trans y) 1441792.0) (when (not (-> self hit-sound-played?)) (sound-play "grind-ring-hit") diff --git a/goal_src/jak2/levels/palace/roof/palboss-scenes.gc b/goal_src/jak2/levels/palace/roof/palboss-scenes.gc index ec55c78f02..2e514073cf 100644 --- a/goal_src/jak2/levels/palace/roof/palboss-scenes.gc +++ b/goal_src/jak2/levels/palace/roof/palboss-scenes.gc @@ -575,22 +575,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 vector 0 x) (-> arg2 vector 0 y) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 4806)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 4807)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4806) gp-0) + (launch-particles (-> *part-id-table* 4807) gp-0) ) (none) ) diff --git a/goal_src/jak2/levels/palace/roof/palroof-part.gc b/goal_src/jak2/levels/palace/roof/palroof-part.gc index 6fb8a222ba..84d83c1e66 100644 --- a/goal_src/jak2/levels/palace/roof/palroof-part.gc +++ b/goal_src/jak2/levels/palace/roof/palroof-part.gc @@ -192,22 +192,8 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 4758)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-3d*) - (a1-3 (-> *part-id-table* 4759)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4758) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 4759) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/goal_src/jak2/levels/palace/throne/metalkor-texture.gc b/goal_src/jak2/levels/palace/throne/metalkor-texture.gc index b3626d21dd..8737c9a431 100644 --- a/goal_src/jak2/levels/palace/throne/metalkor-texture.gc +++ b/goal_src/jak2/levels/palace/throne/metalkor-texture.gc @@ -138,77 +138,75 @@ ) (defun metkor-texture-anim-func () - (with-pp - (let ((gp-0 *metkor-texture-anim-array*)) - (when (not (paused?)) - (let ((s5-0 (-> gp-0 array-data 0 data 0))) - (cond - ((= (-> s5-0 extra x) 0.0) - (cond - ((>= 0.0 (-> s5-0 extra y)) - (set! (-> s5-0 extra y) (rand-vu-float-range 150.0 300.0)) - (set! (-> s5-0 extra z) (-> s5-0 extra y)) - (set! (-> s5-0 extra w) (rand-vu-float-range 0.1 0.5)) - (set! (-> s5-0 extra x) 1.0) - ) - (else - (set! (-> s5-0 extra y) (- (-> s5-0 extra y) (* 300.0 (-> pp clock seconds-per-frame)))) - ) + (let ((gp-0 *metkor-texture-anim-array*)) + (when (not (paused?)) + (let ((s5-0 (-> gp-0 array-data 0 data 0))) + (cond + ((= (-> s5-0 extra x) 0.0) + (cond + ((>= 0.0 (-> s5-0 extra y)) + (set! (-> s5-0 extra y) (rand-vu-float-range 150.0 300.0)) + (set! (-> s5-0 extra z) (-> s5-0 extra y)) + (set! (-> s5-0 extra w) (rand-vu-float-range 0.1 0.5)) + (set! (-> s5-0 extra x) 1.0) + ) + (else + (set! (-> s5-0 extra y) (- (-> s5-0 extra y) (* 300.0 (seconds-per-frame)))) ) ) - ((= (-> s5-0 extra x) 1.0) - (cond - ((>= 0.0 (-> s5-0 extra y)) - (set! (-> s5-0 extra y) (rand-vu-float-range 300.0 600.0)) - (set! (-> s5-0 extra x) 0.0) - ) - (else - (let ((f0-16 (+ 0.1 (* (-> s5-0 extra w) (sin (* 32768.0 (/ (-> s5-0 extra y) (-> s5-0 extra z)))))))) - (set-vector! (-> s5-0 start-color) (* 0.5 f0-16) (* 0.7 f0-16) f0-16 1.0) - (set-vector! (-> s5-0 end-color) (* 0.5 f0-16) (* 0.7 f0-16) f0-16 1.0) - ) - (set! (-> s5-0 extra y) (- (-> s5-0 extra y) (* 300.0 (-> pp clock seconds-per-frame)))) + ) + ((= (-> s5-0 extra x) 1.0) + (cond + ((>= 0.0 (-> s5-0 extra y)) + (set! (-> s5-0 extra y) (rand-vu-float-range 300.0 600.0)) + (set! (-> s5-0 extra x) 0.0) + ) + (else + (let ((f0-16 (+ 0.1 (* (-> s5-0 extra w) (sin (* 32768.0 (/ (-> s5-0 extra y) (-> s5-0 extra z)))))))) + (set-vector! (-> s5-0 start-color) (* 0.5 f0-16) (* 0.7 f0-16) f0-16 1.0) + (set-vector! (-> s5-0 end-color) (* 0.5 f0-16) (* 0.7 f0-16) f0-16 1.0) ) + (set! (-> s5-0 extra y) (- (-> s5-0 extra y) (* 300.0 (seconds-per-frame)))) ) ) - ) + ) ) - (let ((gp-1 (-> gp-0 array-data 0 data 1))) - (cond - ((= (-> gp-1 extra x) 0.0) - (cond - ((>= 0.0 (-> gp-1 extra y)) - (set! (-> gp-1 extra y) (rand-vu-float-range 75.0 150.0)) - (set! (-> gp-1 extra z) (-> gp-1 extra y)) - (set! (-> gp-1 extra x) 1.0) - ) - (else - (set! (-> gp-1 start-st-offset y) 0.0) - (set! (-> gp-1 end-st-offset y) 0.0) - (set! (-> gp-1 extra y) (- (-> gp-1 extra y) (* 300.0 (-> pp clock seconds-per-frame)))) - ) + ) + (let ((gp-1 (-> gp-0 array-data 0 data 1))) + (cond + ((= (-> gp-1 extra x) 0.0) + (cond + ((>= 0.0 (-> gp-1 extra y)) + (set! (-> gp-1 extra y) (rand-vu-float-range 75.0 150.0)) + (set! (-> gp-1 extra z) (-> gp-1 extra y)) + (set! (-> gp-1 extra x) 1.0) + ) + (else + (set! (-> gp-1 start-st-offset y) 0.0) + (set! (-> gp-1 end-st-offset y) 0.0) + (set! (-> gp-1 extra y) (- (-> gp-1 extra y) (* 300.0 (seconds-per-frame)))) ) ) - ((= (-> gp-1 extra x) 1.0) - (cond - ((>= 0.0 (-> gp-1 extra y)) - (set! (-> gp-1 extra y) (rand-vu-float-range 300.0 600.0)) - (set! (-> gp-1 extra x) 0.0) - ) - (else - (let ((f0-34 (- 1.0 (/ (-> gp-1 extra y) (-> gp-1 extra z))))) - (set! (-> gp-1 start-st-offset y) f0-34) - (set! (-> gp-1 end-st-offset y) f0-34) - ) - (set! (-> gp-1 extra y) (- (-> gp-1 extra y) (* 300.0 (-> pp clock seconds-per-frame)))) + ) + ((= (-> gp-1 extra x) 1.0) + (cond + ((>= 0.0 (-> gp-1 extra y)) + (set! (-> gp-1 extra y) (rand-vu-float-range 300.0 600.0)) + (set! (-> gp-1 extra x) 0.0) + ) + (else + (let ((f0-34 (- 1.0 (/ (-> gp-1 extra y) (-> gp-1 extra z))))) + (set! (-> gp-1 start-st-offset y) f0-34) + (set! (-> gp-1 end-st-offset y) f0-34) ) + (set! (-> gp-1 extra y) (- (-> gp-1 extra y) (* 300.0 (seconds-per-frame)))) ) ) - ) + ) ) ) ) - 0 - (none) ) + 0 + (none) ) diff --git a/goal_src/jak2/levels/palace/throne/palace-scenes.gc b/goal_src/jak2/levels/palace/throne/palace-scenes.gc index a11de1e5fe..8db99d5c36 100644 --- a/goal_src/jak2/levels/palace/throne/palace-scenes.gc +++ b/goal_src/jak2/levels/palace/throne/palace-scenes.gc @@ -250,23 +250,9 @@ This commonly includes things such as: (set! (-> s5-0 trans quad) (-> s4-0 quad)) (set! (-> *part-id-table* 4934 init-specs 22 initial-valuef) (vector-y-angle (-> s5-0 vector 1))) (set! (-> *part-id-table* 4934 init-specs 21 initial-valuef) (- 16384.0 (vector-x-angle (-> s5-0 vector 1)))) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 4934) - s5-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 4934) s5-0 :origin-is-matrix #t) (set! (-> *part-id-table* 64 init-specs 10 initial-valuef) (-> arg1 omega)) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 64) - s5-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 64) s5-0 :origin-is-matrix #t) ) ) (none) diff --git a/goal_src/jak2/levels/ruins/mechtest-obs.gc b/goal_src/jak2/levels/ruins/mechtest-obs.gc index e4e7a05af6..844f5f2b00 100644 --- a/goal_src/jak2/levels/ruins/mechtest-obs.gc +++ b/goal_src/jak2/levels/ruins/mechtest-obs.gc @@ -164,7 +164,7 @@ (s3-0 (new 'stack-no-clear 'vector)) ) (.lvf vf1 (&-> (-> s4-0 transv) quad)) - (let ((f0-0 (-> self clock seconds-per-frame))) + (let ((f0-0 (seconds-per-frame))) (.mov at-0 f0-0) ) (.mov vf2 at-0) diff --git a/goal_src/jak2/levels/ruins/rapid-gunner.gc b/goal_src/jak2/levels/ruins/rapid-gunner.gc index eab9560960..d8007d79f9 100644 --- a/goal_src/jak2/levels/ruins/rapid-gunner.gc +++ b/goal_src/jak2/levels/ruins/rapid-gunner.gc @@ -733,7 +733,7 @@ (none) ) :trans (behavior () - (seek! (-> self joint-blend) 0.95 (-> self clock seconds-per-frame)) + (seek! (-> self joint-blend) 0.95 (seconds-per-frame)) (let ((gp-0 (handle->process (-> self focus handle)))) (if (not gp-0) (go-virtual hostile) @@ -1038,7 +1038,7 @@ (none) ) :trans (behavior () - (seek! (-> self joint-blend) 0.0 (-> self clock seconds-per-frame)) + (seek! (-> self joint-blend) 0.0 (seconds-per-frame)) (when (enemy-method-96 self 6371.5557 #t) (rapid-gunner-method-185 self (-> self target-next-pos) 24.0) (when (skip-check-los? (-> self los) 30) diff --git a/goal_src/jak2/levels/ruins/ruins-part.gc b/goal_src/jak2/levels/ruins/ruins-part.gc index 6fe523db31..ac85e4a2af 100644 --- a/goal_src/jak2/levels/ruins/ruins-part.gc +++ b/goal_src/jak2/levels/ruins/ruins-part.gc @@ -147,30 +147,9 @@ (let ((vec (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! vec (-> arg2 vector 0 x) f30-0 (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 1255)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> vec quad)) - (t9-1 a0-2 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 1256)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> vec quad)) - (t9-2 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 1257)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> vec quad)) - (t9-3 a0-4 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1255) vec) + (launch-particles (-> *part-id-table* 1256) vec) + (launch-particles (-> *part-id-table* 1257) vec) ) ) ) @@ -1127,14 +1106,7 @@ TODO - check argument types / what birds?" (let ((vec (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! vec (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-3d*) - (a1-2 (-> *part-id-table* 1291)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> vec quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 1291) vec) ) ) (sparticle-motion-blur arg0 arg1 arg2) diff --git a/goal_src/jak2/levels/ruins/ruins-scenes.gc b/goal_src/jak2/levels/ruins/ruins-scenes.gc index 7cb7dff22c..926cff18a8 100644 --- a/goal_src/jak2/levels/ruins/ruins-scenes.gc +++ b/goal_src/jak2/levels/ruins/ruins-scenes.gc @@ -116,21 +116,7 @@ "Generates simple sparks (2D particles) at the location specified. This is used in the cutscene. @param position The position to render the sparks at TODO - first arg type?" - (let ((launch-func sp-launch-particles-var) - (2d-sys *sp-particle-system-2d*) - (sp-launcher (-> *part-id-table* 1247)) - (matrix *launch-matrix*) - ) - (set! (-> matrix trans quad) (-> position quad)) - (launch-func - 2d-sys - sp-launcher - matrix - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - ) + (launch-particles (-> *part-id-table* 1247) position) 0 (none) ) diff --git a/goal_src/jak2/levels/sewer/escort/grim.gc b/goal_src/jak2/levels/sewer/escort/grim.gc index 14906180cd..63a54728ae 100644 --- a/goal_src/jak2/levels/sewer/escort/grim.gc +++ b/goal_src/jak2/levels/sewer/escort/grim.gc @@ -100,7 +100,7 @@ (ruffian-method-245 obj) (let ((f30-0 (-> obj nav state speed))) (let ((f0-1 (lerp-scale 0.0 1.0 f30-0 12288.0 40960.0))) - (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (-> pp clock seconds-per-frame))) + (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (seconds-per-frame))) ) (let ((f28-0 (-> obj travel-anim-interp)) (v1-9 (if (> (-> obj skel active-channels) 0) diff --git a/goal_src/jak2/levels/sewer/escort/jinx.gc b/goal_src/jak2/levels/sewer/escort/jinx.gc index 3e47be2e7e..68fecdf273 100644 --- a/goal_src/jak2/levels/sewer/escort/jinx.gc +++ b/goal_src/jak2/levels/sewer/escort/jinx.gc @@ -383,7 +383,7 @@ (ruffian-method-245 obj) (let ((f30-0 (-> obj nav state speed))) (let ((f0-1 (lerp-scale 0.0 1.0 f30-0 12288.0 40960.0))) - (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (-> pp clock seconds-per-frame))) + (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (seconds-per-frame))) ) (let ((f28-0 (-> obj travel-anim-interp)) (v1-9 (if (> (-> obj skel active-channels) 0) diff --git a/goal_src/jak2/levels/sewer/escort/mog.gc b/goal_src/jak2/levels/sewer/escort/mog.gc index e0da0c6678..d99b1a960d 100644 --- a/goal_src/jak2/levels/sewer/escort/mog.gc +++ b/goal_src/jak2/levels/sewer/escort/mog.gc @@ -293,7 +293,7 @@ (ruffian-method-245 obj) (let ((f30-0 (-> obj nav state speed))) (let ((f0-1 (lerp-scale 0.0 1.0 f30-0 12288.0 40960.0))) - (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (-> pp clock seconds-per-frame))) + (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (seconds-per-frame))) ) (let ((f28-0 (-> obj travel-anim-interp)) (v1-9 (if (> (-> obj skel active-channels) 0) diff --git a/goal_src/jak2/levels/sewer/hosehead-fake.gc b/goal_src/jak2/levels/sewer/hosehead-fake.gc index 36d82e2b12..26e971c245 100644 --- a/goal_src/jak2/levels/sewer/hosehead-fake.gc +++ b/goal_src/jak2/levels/sewer/hosehead-fake.gc @@ -277,12 +277,7 @@ :virtual #t :event hosehead-fake-event-handler :trans (behavior () - (vector-seek-3d-smooth! - (-> self root trans) - (-> self walk-dest) - (* 24576.0 (-> self clock seconds-per-frame)) - 0.8 - ) + (vector-seek-3d-smooth! (-> self root trans) (-> self walk-dest) (* 24576.0 (seconds-per-frame)) 0.8) (let ((f0-2 409.6)) (if (>= (* f0-2 f0-2) (vector-vector-distance-squared (-> self root trans) (-> self walk-dest))) (go-virtual idle) diff --git a/goal_src/jak2/levels/sewer/hosehead.gc b/goal_src/jak2/levels/sewer/hosehead.gc index e8aa13e60c..998ca6f295 100644 --- a/goal_src/jak2/levels/sewer/hosehead.gc +++ b/goal_src/jak2/levels/sewer/hosehead.gc @@ -683,7 +683,7 @@ (s5-0 (new 'stack-no-clear 'vector)) (s4-0 (new 'stack-no-clear 'vector)) ) - (seek! (-> obj lazer-length) 327680.0 (* 327680.0 (-> pp clock seconds-per-frame))) + (seek! (-> obj lazer-length) 327680.0 (* 327680.0 (seconds-per-frame))) (vector-normalize-copy! s5-0 (-> s2-0 vector 1) (-> obj lazer-length)) (matrix->trans s2-0 s4-0) (set! (-> obj lazer-dist) @@ -740,22 +740,8 @@ ) (set! (-> *part-id-table* 1455 init-specs 4 initial-valuef) (vector-length s5-0)) (draw-beam (-> *part-id-table* 1455) s4-0 s5-0 #f #t) - (let ((t9-10 sp-launch-particles-var) - (a0-25 *sp-particle-system-2d*) - (a1-12 (-> *part-id-table* 1456)) - (a2-9 *launch-matrix*) - ) - (set! (-> a2-9 trans quad) (-> s4-0 quad)) - (t9-10 a0-25 a1-12 a2-9 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-11 sp-launch-particles-var) - (a0-26 *sp-particle-system-2d*) - (a1-13 (-> *part-id-table* 1457)) - (a2-10 *launch-matrix*) - ) - (set! (-> a2-10 trans quad) (-> (vector+! (new 'stack-no-clear 'vector) s5-0 s4-0) quad)) - (t9-11 a0-26 a1-13 a2-10 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1456) s4-0) + (launch-particles (-> *part-id-table* 1457) (vector+! (new 'stack-no-clear 'vector) s5-0 s4-0)) ) ) (let ((s5-1 sound-play-by-spec) @@ -828,120 +814,118 @@ ;; WARN: Return type mismatch vector vs none. (defmethod hosehead-method-186 hosehead ((obj hosehead)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (let ((s3-0 (new 'stack-no-clear 'collide-query)) - (gp-0 (new 'stack-no-clear 'vector)) - (s5-0 (new 'stack-no-clear 'vector)) - ) - (let ((s2-0 gp-0)) - (let ((s1-0 (-> obj root trans))) - (let ((v1-2 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)))) - (let ((a0-3 8192.0)) - (.mov vf7 a0-3) - ) - (.lvf vf5 (&-> v1-2 quad)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((s3-0 (new 'stack-no-clear 'collide-query)) + (gp-0 (new 'stack-no-clear 'vector)) + (s5-0 (new 'stack-no-clear 'vector)) + ) + (let ((s2-0 gp-0)) + (let ((s1-0 (-> obj root trans))) + (let ((v1-2 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)))) + (let ((a0-3 8192.0)) + (.mov vf7 a0-3) ) - (.lvf vf4 (&-> s1-0 quad)) + (.lvf vf5 (&-> v1-2 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> s2-0 quad) vf6) + (.lvf vf4 (&-> s1-0 quad)) ) - (set! (-> s5-0 quad) (-> gp-0 quad)) - (+! (-> gp-0 y) -8192.0) - (+! (-> s5-0 y) 8192.0) - (set! (-> s3-0 start-pos quad) (-> gp-0 quad)) - (vector-float*! - (-> s3-0 move-dist) - (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)) - -16384.0 - ) - (let ((v1-9 s3-0)) - (set! (-> v1-9 radius) 40.96) - (set! (-> v1-9 collide-with) (collide-spec backgnd)) - (set! (-> v1-9 ignore-process0) #f) - (set! (-> v1-9 ignore-process1) #f) - (set! (-> v1-9 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (set! (-> v1-9 action-mask) (collide-action solid)) - ) - (let ((f0-7 (fill-and-probe-using-line-sphere *collide-cache* s3-0))) - (when (>= f0-7 0.0) - (let ((a1-4 gp-0)) - (let ((v1-12 gp-0)) - (let ((a0-15 (-> s3-0 move-dist))) - (let ((a2-0 f0-7)) - (.mov vf7 a2-0) - ) - (.lvf vf5 (&-> a0-15 quad)) - ) - (.lvf vf4 (&-> v1-12 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-4 quad) vf6) - ) - ) - ) - (set! (-> s3-0 start-pos quad) (-> s5-0 quad)) - (vector-float*! - (-> s3-0 move-dist) - (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)) - -16384.0 - ) - (let ((v1-16 s3-0)) - (set! (-> v1-16 radius) 40.96) - (set! (-> v1-16 collide-with) (collide-spec backgnd)) - (set! (-> v1-16 ignore-process0) #f) - (set! (-> v1-16 ignore-process1) #f) - (set! (-> v1-16 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (set! (-> v1-16 action-mask) (collide-action solid)) - ) - (let ((f0-10 (fill-and-probe-using-line-sphere *collide-cache* s3-0))) - (when (>= f0-10 0.0) - (let ((a0-26 s5-0)) - (let ((v1-19 s5-0)) - (let ((a1-7 (-> s3-0 move-dist))) - (let ((a2-1 f0-10)) - (.mov vf7 a2-1) - ) - (.lvf vf5 (&-> a1-7 quad)) - ) - (.lvf vf4 (&-> v1-19 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a0-26 quad) vf6) - ) - ) - ) - (let ((s2-6 (vector-! (new 'stack-no-clear 'vector) gp-0 s5-0)) - (s1-1 (vector-x-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) - (s3-1 (new 'stack-no-clear 'quaternion)) - ) - (let ((s0-0 (new 'stack-no-clear 'matrix))) - (vector-normalize! s2-6 1.0) - (quaternion-vector-angle! s3-1 s1-1 -16384.0) - (quaternion->matrix s0-0 s3-1) - (vector-rotate*! s2-6 s2-6 s0-0) - ) - (quaternion-look-at! s3-1 s2-6 *up-vector*) - (quaternion-pseudo-seek (-> obj root quat) (-> obj root quat) s3-1 (-> pp clock seconds-per-frame)) - ) - (vector-average! (-> obj root trans) gp-0 s5-0) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> s2-0 quad) vf6) ) - (none) + (set! (-> s5-0 quad) (-> gp-0 quad)) + (+! (-> gp-0 y) -8192.0) + (+! (-> s5-0 y) 8192.0) + (set! (-> s3-0 start-pos quad) (-> gp-0 quad)) + (vector-float*! + (-> s3-0 move-dist) + (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)) + -16384.0 + ) + (let ((v1-9 s3-0)) + (set! (-> v1-9 radius) 40.96) + (set! (-> v1-9 collide-with) (collide-spec backgnd)) + (set! (-> v1-9 ignore-process0) #f) + (set! (-> v1-9 ignore-process1) #f) + (set! (-> v1-9 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (set! (-> v1-9 action-mask) (collide-action solid)) + ) + (let ((f0-7 (fill-and-probe-using-line-sphere *collide-cache* s3-0))) + (when (>= f0-7 0.0) + (let ((a1-4 gp-0)) + (let ((v1-12 gp-0)) + (let ((a0-15 (-> s3-0 move-dist))) + (let ((a2-0 f0-7)) + (.mov vf7 a2-0) + ) + (.lvf vf5 (&-> a0-15 quad)) + ) + (.lvf vf4 (&-> v1-12 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-4 quad) vf6) + ) + ) + ) + (set! (-> s3-0 start-pos quad) (-> s5-0 quad)) + (vector-float*! + (-> s3-0 move-dist) + (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)) + -16384.0 + ) + (let ((v1-16 s3-0)) + (set! (-> v1-16 radius) 40.96) + (set! (-> v1-16 collide-with) (collide-spec backgnd)) + (set! (-> v1-16 ignore-process0) #f) + (set! (-> v1-16 ignore-process1) #f) + (set! (-> v1-16 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (set! (-> v1-16 action-mask) (collide-action solid)) + ) + (let ((f0-10 (fill-and-probe-using-line-sphere *collide-cache* s3-0))) + (when (>= f0-10 0.0) + (let ((a0-26 s5-0)) + (let ((v1-19 s5-0)) + (let ((a1-7 (-> s3-0 move-dist))) + (let ((a2-1 f0-10)) + (.mov vf7 a2-1) + ) + (.lvf vf5 (&-> a1-7 quad)) + ) + (.lvf vf4 (&-> v1-19 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a0-26 quad) vf6) + ) + ) + ) + (let ((s2-6 (vector-! (new 'stack-no-clear 'vector) gp-0 s5-0)) + (s1-1 (vector-x-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) + (s3-1 (new 'stack-no-clear 'quaternion)) + ) + (let ((s0-0 (new 'stack-no-clear 'matrix))) + (vector-normalize! s2-6 1.0) + (quaternion-vector-angle! s3-1 s1-1 -16384.0) + (quaternion->matrix s0-0 s3-1) + (vector-rotate*! s2-6 s2-6 s0-0) + ) + (quaternion-look-at! s3-1 s2-6 *up-vector*) + (quaternion-pseudo-seek (-> obj root quat) (-> obj root quat) s3-1 (seconds-per-frame)) + ) + (vector-average! (-> obj root trans) gp-0 s5-0) ) + (none) ) ) @@ -1659,7 +1643,7 @@ :frame-num 0.0 ) (until (ja-done? 0) - (set! (-> self root trans y) (- (-> self root trans y) (* 36864.0 (-> self clock seconds-per-frame)))) + (set! (-> self root trans y) (- (-> self root trans y) (* 36864.0 (seconds-per-frame)))) (hosehead-method-186 self) (suspend) (ja :num! (seek! max 1.5)) @@ -1826,7 +1810,7 @@ (goto cfg-13) ) (suspend) - (+! (-> self head-angle) (* (-> self head-angle-inc) (-> self clock seconds-per-frame))) + (+! (-> self head-angle) (* (-> self head-angle-inc) (seconds-per-frame))) ) ) #f @@ -2065,58 +2049,44 @@ (defmethod hosehead-method-187 hosehead ((obj hosehead) (arg0 vector)) (local-vars (sv-128 vector)) - (with-pp - (set! sv-128 (new 'stack-no-clear 'vector)) - (let ((s3-0 (new 'stack-no-clear 'vector)) - (s1-0 (new 'stack-no-clear 'vector)) - (s0-0 (new 'stack-no-clear 'vector)) - (s4-0 (new 'stack-no-clear 'vector)) - (s5-0 (new 'stack-no-clear 'vector)) - ) - (let ((a0-1 (-> obj node-list data 9 bone transform))) - (matrix->trans a0-1 s1-0) - ) - (vector-z-quaternion! s0-0 (-> obj root quat)) - (vector-! sv-128 arg0 s1-0) - (vector-normalize! sv-128 1.0) - (rot-zxy-from-vector! s4-0 s0-0) - (rot-zxy-from-vector! s3-0 sv-128) - (set! (-> s5-0 x) (fmax -1820.4445 (fmin 1820.4445 (deg- (-> s3-0 x) (-> s4-0 x))))) - (set! (-> s5-0 y) (fmax -3640.889 (fmin 3640.889 (deg- (-> s3-0 y) (-> s4-0 y))))) - (set! (-> s5-0 z) 0.0) - (if (not (logtest? (enemy-flag dislike-combo) (-> obj enemy-flags))) - (set! (-> s5-0 y) (- (-> s5-0 y))) - ) - (+! (-> s5-0 y) (-> obj head-angle)) - (let ((s4-1 (new 'stack-no-clear 'quaternion))) - (quaternion-zxy! s4-1 s5-0) - (quaternion-pseudo-seek - (-> obj head-joint-mod quat) - (-> obj head-joint-mod quat) - s4-1 - (-> pp clock seconds-per-frame) - ) + (set! sv-128 (new 'stack-no-clear 'vector)) + (let ((s3-0 (new 'stack-no-clear 'vector)) + (s1-0 (new 'stack-no-clear 'vector)) + (s0-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + (s5-0 (new 'stack-no-clear 'vector)) ) + (let ((a0-1 (-> obj node-list data 9 bone transform))) + (matrix->trans a0-1 s1-0) + ) + (vector-z-quaternion! s0-0 (-> obj root quat)) + (vector-! sv-128 arg0 s1-0) + (vector-normalize! sv-128 1.0) + (rot-zxy-from-vector! s4-0 s0-0) + (rot-zxy-from-vector! s3-0 sv-128) + (set! (-> s5-0 x) (fmax -1820.4445 (fmin 1820.4445 (deg- (-> s3-0 x) (-> s4-0 x))))) + (set! (-> s5-0 y) (fmax -3640.889 (fmin 3640.889 (deg- (-> s3-0 y) (-> s4-0 y))))) + (set! (-> s5-0 z) 0.0) + (if (not (logtest? (enemy-flag dislike-combo) (-> obj enemy-flags))) + (set! (-> s5-0 y) (- (-> s5-0 y))) + ) + (+! (-> s5-0 y) (-> obj head-angle)) + (let ((s4-1 (new 'stack-no-clear 'quaternion))) + (quaternion-zxy! s4-1 s5-0) + (quaternion-pseudo-seek (-> obj head-joint-mod quat) (-> obj head-joint-mod quat) s4-1 (seconds-per-frame)) ) - 0 - (none) ) + 0 + (none) ) ;; WARN: Return type mismatch quaternion vs none. (defmethod hosehead-method-188 hosehead ((obj hosehead)) - (with-pp - (let ((gp-0 (new 'stack-no-clear 'quaternion))) - (quaternion-identity! gp-0) - (quaternion-pseudo-seek - (-> obj head-joint-mod quat) - (-> obj head-joint-mod quat) - gp-0 - (-> pp clock seconds-per-frame) - ) - ) - (none) + (let ((gp-0 (new 'stack-no-clear 'quaternion))) + (quaternion-identity! gp-0) + (quaternion-pseudo-seek (-> obj head-joint-mod quat) (-> obj head-joint-mod quat) gp-0 (seconds-per-frame)) ) + (none) ) (defmethod track-target! hosehead ((obj hosehead)) diff --git a/goal_src/jak2/levels/sewer/sewer-obs.gc b/goal_src/jak2/levels/sewer/sewer-obs.gc index 27e2ad1a10..b0049a96b6 100644 --- a/goal_src/jak2/levels/sewer/sewer-obs.gc +++ b/goal_src/jak2/levels/sewer/sewer-obs.gc @@ -296,11 +296,11 @@ This commonly includes things such as: ((zero? (-> self switch-state)) (cond ((>= 3.0 (-> self anim-time)) - (+! (-> self anim-time) (* 6.0 (-> self clock seconds-per-frame))) + (+! (-> self anim-time) (* 6.0 (seconds-per-frame))) (set! (-> self anim-time) (fmin 3.0 (-> self anim-time))) ) (else - (+! (-> self anim-time) (* 6.0 (-> self clock seconds-per-frame))) + (+! (-> self anim-time) (* 6.0 (seconds-per-frame))) (if (< 6.0 (-> self anim-time)) (set! (-> self anim-time) 0.0) ) @@ -308,7 +308,7 @@ This commonly includes things such as: ) ) (else - (+! (-> self anim-time) (* 6.0 (-> self clock seconds-per-frame))) + (+! (-> self anim-time) (* 6.0 (seconds-per-frame))) (set! (-> self anim-time) (fmin 6.0 (-> self anim-time))) ) ) @@ -910,14 +910,7 @@ This commonly includes things such as: (none) ) :post (behavior () - (let ((t9-0 sp-launch-particles-var) - (a0-0 *sp-particle-system-2d*) - (a1-0 (-> *part-id-table* 1442)) - (a2-0 *launch-matrix*) - ) - (set! (-> a2-0 trans quad) (-> self root trans quad)) - (t9-0 a0-0 a1-0 a2-0 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1442) (-> self root trans)) (ja-post) (none) ) @@ -1050,6 +1043,7 @@ This commonly includes things such as: ) (defmethod sew-light-control-method-16 sew-light-control ((a0-0 sew-light-control) (a1-0 object) (a2-0 vector) (a3-0 float)) + ;; og:preserve-this (format 0 "SEWER - FIX ME!~%") #f ) @@ -1172,9 +1166,8 @@ This commonly includes things such as: (none) ) +;; og:preserve-this added to fix missing skill (#when PC_PORT -;; added to fix missing skill - ;; serves as a template (define *skill-sewesc-from-sewer* (new 'static 'entity-perm :task (game-task complete) diff --git a/goal_src/jak2/levels/sewer/sewer-obs2.gc b/goal_src/jak2/levels/sewer/sewer-obs2.gc index dc64433795..092a09dc30 100644 --- a/goal_src/jak2/levels/sewer/sewer-obs2.gc +++ b/goal_src/jak2/levels/sewer/sewer-obs2.gc @@ -296,15 +296,15 @@ For example for an elevator pre-compute the distance between the first and last ) :code (the-as (function none :behavior sew-valve) sleep-code) :post (behavior () - (seek! (-> self spin-rate) 0.0 (* 81920.0 (-> self clock seconds-per-frame))) - (+! (-> self spin) (* (-> self spin-rate) (-> self clock seconds-per-frame))) + (seek! (-> self spin-rate) 0.0 (* 81920.0 (seconds-per-frame))) + (+! (-> self spin) (* (-> self spin-rate) (seconds-per-frame))) (quaternion-axis-angle! (-> self joint rotation) 0.0 0.0 1.0 (-> self spin)) (let* ((f0-8 (- (get-base-height *ocean-map-sewer*) (-> self water-height))) (f30-0 f0-8) (f28-0 (seek-ease f0-8 0.0 - (* (lerp 21299.2 8192.0 (* 0.000005086263 (-> self spin-rate))) (-> self clock seconds-per-frame)) + (* (lerp 21299.2 8192.0 (* 0.000005086263 (-> self spin-rate))) (seconds-per-frame)) 12288.0 2.0 ) @@ -1188,7 +1188,7 @@ This commonly includes things such as: :trans (behavior () (let ((f0-0 (-> self deadly-radius))) (when (>= f0-0 0.0) - (set! (-> self deadly-radius) (seek f0-0 409600.0 (* 368640.0 (-> self clock seconds-per-frame)))) + (set! (-> self deadly-radius) (seek f0-0 409600.0 (* 368640.0 (seconds-per-frame)))) (attack-target! self) ) ) @@ -1663,7 +1663,7 @@ This commonly includes things such as: (logclear! (-> (the-as sew-grill actor-proc) draw status) (draw-control-status no-draw)) ) ) - ;; pc port note : fix bug where the spool anim never gets aborted + ;; og:preserve-this fix bug where the spool anim never gets aborted (#when PC_PORT (ja-abort-spooled-anim (-> self anim) (the-as art-joint-anim #f) -1)) (none) diff --git a/goal_src/jak2/levels/sewer/sewer-part.gc b/goal_src/jak2/levels/sewer/sewer-part.gc index ab115fb12e..dbd506f024 100644 --- a/goal_src/jak2/levels/sewer/sewer-part.gc +++ b/goal_src/jak2/levels/sewer/sewer-part.gc @@ -218,22 +218,8 @@ ) ) ) - (let ((t9-8 sp-launch-particles-var) - (a0-11 *sp-particle-system-2d*) - (a1-6 (-> *part-id-table* 1444)) - (a2-4 *launch-matrix*) - ) - (set! (-> a2-4 trans quad) (-> gp-0 quad)) - (t9-8 a0-11 a1-6 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-9 sp-launch-particles-var) - (a0-12 *sp-particle-system-3d*) - (a1-7 (-> *part-id-table* 1445)) - (a2-5 *launch-matrix*) - ) - (set! (-> a2-5 trans quad) (-> gp-0 quad)) - (t9-9 a0-12 a1-7 a2-5 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1444) gp-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 1445) gp-0) ) ) ) @@ -378,22 +364,8 @@ ) ) ) - (let ((t9-8 sp-launch-particles-var) - (a0-11 *sp-particle-system-2d*) - (a1-6 (-> *part-id-table* 1444)) - (a2-4 *launch-matrix*) - ) - (set! (-> a2-4 trans quad) (-> gp-0 quad)) - (t9-8 a0-11 a1-6 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-9 sp-launch-particles-var) - (a0-12 *sp-particle-system-3d*) - (a1-7 (-> *part-id-table* 1445)) - (a2-5 *launch-matrix*) - ) - (set! (-> a2-5 trans quad) (-> gp-0 quad)) - (t9-9 a0-12 a1-7 a2-5 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1444) gp-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 1445) gp-0) ) ) ) diff --git a/goal_src/jak2/levels/stadium/stadium-obs.gc b/goal_src/jak2/levels/stadium/stadium-obs.gc index ccee02e3d1..6e9840aa85 100644 --- a/goal_src/jak2/levels/stadium/stadium-obs.gc +++ b/goal_src/jak2/levels/stadium/stadium-obs.gc @@ -410,7 +410,7 @@ This commonly includes things such as: ) (('hold) (set! (-> self escort-force (-> arg3 param 0) y) - (seek (-> self escort-force (-> arg3 param 0) y) 1.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek (-> self escort-force (-> arg3 param 0) y) 1.0 (* 2.0 (seconds-per-frame))) ) ) (else @@ -464,16 +464,15 @@ This commonly includes things such as: (target-pos 0) (let ((s4-0 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> gp-0 quat))) (f30-0 0.0) - (s3-0 - (lambda ((arg0 rift-rider) (arg1 vector) (arg2 vector) (arg3 vector)) - (let ((f0-1 (vector-dot (vector-! (new 'stack-no-clear 'vector) arg2 arg1) arg3))) - (if (< f0-1 0.0) - (- f0-1) - 0.0 + (s3-0 (lambda ((arg0 rift-rider) (arg1 vector) (arg2 vector) (arg3 vector)) + (let ((f0-1 (vector-dot (vector-! (new 'stack-no-clear 'vector) arg2 arg1) arg3))) + (if (< f0-1 0.0) + (- f0-1) + 0.0 + ) ) + ) ) - ) - ) ) (let ((s0-0 (new 'stack-no-clear 'vector)) (v1-13 0) @@ -515,21 +514,16 @@ This commonly includes things such as: (let ((s1-1 s3-0) (s0-2 self) ) - (+! f30-0 - (s1-1 - s0-2 - (the-as vector (send-event self 'get-position 'right (new 'stack-no-clear 'vector))) - (the-as vector s2-0) - s4-0 - ) + (+! f30-0 (s1-1 + s0-2 + (the-as vector (send-event self 'get-position 'right (new 'stack-no-clear 'vector))) + (the-as vector s2-0) + s4-0 + ) ) ) ) - (seek! - (-> self speed) - (fmin 12288.0 (+ 2048.0 (vector-length s5-0))) - (* 4096.0 (-> self clock seconds-per-frame)) - ) + (seek! (-> self speed) (fmin 12288.0 (+ 2048.0 (vector-length s5-0))) (* 4096.0 (seconds-per-frame))) (set! (-> self speed) (* (-> self speed) (lerp-scale 1.0 0.0 f30-0 24576.0 49152.0))) (let ((f30-1 (-> self speed)) (s2-1 lerp-scale) @@ -547,7 +541,7 @@ This commonly includes things such as: ) ) (vector-normalize! s5-0 (-> self speed)) - (vector-seek! (-> gp-0 transv) s5-0 (* 4096.0 (-> self clock seconds-per-frame))) + (vector-seek! (-> gp-0 transv) s5-0 (* 4096.0 (seconds-per-frame))) ) ) (vector-v++! (-> gp-0 trans) (-> gp-0 transv)) @@ -561,7 +555,7 @@ This commonly includes things such as: (set! (-> a2-14 ignore-process1) #f) (set! (-> a2-14 ignore-pat) (-> v1-43 pat-ignore-mask)) (set! (-> a2-14 action-mask) (collide-action solid)) - (fill-cache-for-shape v1-43 (* (vector-length (-> v1-43 transv)) (-> self clock seconds-per-frame)) a2-14) + (fill-cache-for-shape v1-43 (* (vector-length (-> v1-43 transv)) (seconds-per-frame)) a2-14) ) (rigid-body-object-method-37 self) (pusher-post) @@ -695,7 +689,7 @@ This commonly includes things such as: ) :trans (behavior () (dotimes (gp-0 2) - (seek! (-> self escort-force gp-0 y) 0.0 (* 0.3 (-> self clock seconds-per-frame))) + (seek! (-> self escort-force gp-0 y) 0.0 (* 0.3 (seconds-per-frame))) ) (let ((f30-0 (get-furthest-point-on-path (-> self path) (-> self root trans)))) (if (< 8.0 f30-0) @@ -741,7 +735,7 @@ This commonly includes things such as: (sound-group sfx) (-> self root trans) ) - (seek! (-> self hover-volume) 1.0 (-> self clock seconds-per-frame)) + (seek! (-> self hover-volume) 1.0 (seconds-per-frame)) (spawn (-> self part) (-> self root trans)) (rift-rider-travel-post) (none) @@ -817,7 +811,7 @@ This commonly includes things such as: ) :code (the-as (function none :behavior rift-rider) sleep-code) :post (behavior () - (seek! (-> self height) 4096.0 (* 6144.0 (-> self clock seconds-per-frame))) + (seek! (-> self height) 4096.0 (* 6144.0 (seconds-per-frame))) (get-point-in-path! (-> self path) (-> self dest-pos) (-> self path-pos) 'interp) (+! (-> self dest-pos y) (-> self height)) (set! (-> self path-pos) (fmin @@ -831,13 +825,9 @@ This commonly includes things such as: (let ((s5-0 (new 'stack-no-clear 'vector))) (+! (-> v1-10 y) (-> self height)) (vector-! s5-0 v1-10 (-> gp-0 trans)) - (seek! - (-> self speed) - (fmin 12288.0 (+ -2048.0 (vector-length s5-0))) - (* 4096.0 (-> self clock seconds-per-frame)) - ) + (seek! (-> self speed) (fmin 12288.0 (+ -2048.0 (vector-length s5-0))) (* 4096.0 (seconds-per-frame))) (vector-normalize! s5-0 (-> self speed)) - (vector-seek! (-> gp-0 transv) s5-0 (* 4096.0 (-> self clock seconds-per-frame))) + (vector-seek! (-> gp-0 transv) s5-0 (* 4096.0 (seconds-per-frame))) ) ) (vector-v++! (-> gp-0 trans) (-> gp-0 transv)) @@ -852,7 +842,7 @@ This commonly includes things such as: (-> gp-0 quat) (-> gp-0 quat) (-> (the-as process-drawable v1-19) root quat) - (* 0.5 (-> self clock seconds-per-frame)) + (* 0.5 (seconds-per-frame)) ) ) ) @@ -913,7 +903,7 @@ This commonly includes things such as: ) :post (behavior () (dotimes (gp-0 2) - (seek! (-> self escort-force gp-0 y) 0.0 (* 1.6 (-> self clock seconds-per-frame))) + (seek! (-> self escort-force gp-0 y) 0.0 (* 1.6 (seconds-per-frame))) ) (let ((v1-8 (-> self root)) (a2-1 (new 'stack-no-clear 'collide-query)) @@ -923,7 +913,7 @@ This commonly includes things such as: (set! (-> a2-1 ignore-process1) #f) (set! (-> a2-1 ignore-pat) (-> v1-8 pat-ignore-mask)) (set! (-> a2-1 action-mask) (collide-action solid)) - (fill-cache-for-shape v1-8 (* (vector-length (-> v1-8 transv)) (-> self clock seconds-per-frame)) a2-1) + (fill-cache-for-shape v1-8 (* (vector-length (-> v1-8 transv)) (seconds-per-frame)) a2-1) ) (rigid-body-object-method-37 self) (pusher-post) @@ -1156,7 +1146,8 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 560) ;; added + ;; og:preserve-this added + (stack-size-set! (-> obj main-thread) 560) (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) @@ -1693,7 +1684,7 @@ This commonly includes things such as: ) :post (behavior () (when (not (-> self enable-move?)) - (seek! (-> self speed) 2048.0 (* 12288.0 (-> self clock seconds-per-frame))) + (seek! (-> self speed) 2048.0 (* 12288.0 (seconds-per-frame))) (let ((v1-4 (-> self nav))) (set! (-> v1-4 target-speed) (-> self speed)) ) @@ -1764,13 +1755,9 @@ This commonly includes things such as: (vector-normalize! s4-0 1.0) (quaternion-set! s5-0 0.0 (-> s4-0 x) 0.0 (+ 1.0 (-> s4-0 z))) (quaternion-normalize! s5-0) - (quaternion-slerp! (-> self root quat) (-> self root quat) s5-0 (* 8.0 (-> self clock seconds-per-frame))) - ) - (seek! - (-> self observed-speed) - (vector-length (-> gp-2 transv)) - (* 81920.0 (-> self clock seconds-per-frame)) + (quaternion-slerp! (-> self root quat) (-> self root quat) s5-0 (* 8.0 (seconds-per-frame))) ) + (seek! (-> self observed-speed) (vector-length (-> gp-2 transv)) (* 81920.0 (seconds-per-frame))) ) (spawn-energy) (stad-samos-post) @@ -1901,7 +1888,7 @@ This commonly includes things such as: (fill-cache-integrate-and-collide gp-1 (-> gp-1 transv) a2-1 (meters 0)) ) (when (logtest? (-> gp-1 status) (collide-status touch-surface)) - (let ((f0-1 (fmax 0.0 (+ 1.0 (* -11.999999 (-> self clock seconds-per-frame)))))) + (let ((f0-1 (fmax 0.0 (+ 1.0 (* -11.999999 (seconds-per-frame)))))) (vector-float*! (-> gp-1 transv) (-> gp-1 transv) f0-1) ) ) @@ -2074,7 +2061,8 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) #x180) ;; added + ;; og:preserve-this added + (stack-size-set! (-> obj main-thread) #x180) (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) cshape-reaction-default) @@ -2338,8 +2326,8 @@ This commonly includes things such as: :code (the-as (function none :behavior stadium-barrier) sleep-code) :post (behavior () (if (!= (-> self flashf) 0.0) - (seek! (-> self flashf) 0.0 (* 8.0 (-> self clock seconds-per-frame))) - (seek! (-> self colorf) 0.0 (* 1.5 (-> self clock seconds-per-frame))) + (seek! (-> self flashf) 0.0 (* 8.0 (seconds-per-frame))) + (seek! (-> self colorf) 0.0 (* 1.5 (seconds-per-frame))) ) (let ((a0-2 (new 'stack-no-clear 'vector)) (gp-0 (new 'stack-no-clear 'vector)) @@ -3241,7 +3229,7 @@ This commonly includes things such as: ) ) -;; jp patch +;; og:preserve-this jp patch (set-subtask-hook! *game-info* (game-task-node city-defend-stadium-introduction) diff --git a/goal_src/jak2/levels/stadium/stadium-part.gc b/goal_src/jak2/levels/stadium/stadium-part.gc index 8c7072edff..816cbc397b 100644 --- a/goal_src/jak2/levels/stadium/stadium-part.gc +++ b/goal_src/jak2/levels/stadium/stadium-part.gc @@ -598,30 +598,9 @@ (let ((vec (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! vec (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 3938)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> vec quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 3939)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> vec quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-3d*) - (a1-4 (-> *part-id-table* 3940)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> vec quad)) - (t9-3 a0-5 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 3938) vec) + (launch-particles (-> *part-id-table* 3939) vec) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 3940) vec) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/goal_src/jak2/levels/stadium/stadium-race-obs.gc b/goal_src/jak2/levels/stadium/stadium-race-obs.gc index 88f2b81e2e..81d8525bc6 100644 --- a/goal_src/jak2/levels/stadium/stadium-race-obs.gc +++ b/goal_src/jak2/levels/stadium/stadium-race-obs.gc @@ -45,7 +45,7 @@ :post (behavior () (cond ((!= (-> self tt) (-> self tt-target)) - (seek! (-> self tt) (-> self tt-target) (-> self clock seconds-per-frame)) + (seek! (-> self tt) (-> self tt-target) (seconds-per-frame)) (ja :num-func num-func-identity :frame-num (ja-aframe (-> self tt) 0)) (transform-post) ) diff --git a/goal_src/jak2/levels/strip/chaincrate.gc b/goal_src/jak2/levels/strip/chaincrate.gc index 544ba5db7a..dede5b7ec4 100644 --- a/goal_src/jak2/levels/strip/chaincrate.gc +++ b/goal_src/jak2/levels/strip/chaincrate.gc @@ -138,7 +138,7 @@ (go-virtual die-fast) ) (rider-trans) - (let ((f30-0 (fmin 1.0 (+ (-> self path-u) (* (-> self path-speed) (-> self clock seconds-per-frame)))))) + (let ((f30-0 (fmin 1.0 (+ (-> self path-u) (* (-> self path-speed) (seconds-per-frame)))))) (set! (-> self path-u) f30-0) (strip-chain-crate-slave-method-22 self) (let ((a0-1 (* (-> self guide-num) 2)) diff --git a/goal_src/jak2/levels/strip/strip-drop.gc b/goal_src/jak2/levels/strip/strip-drop.gc index da1babc44b..842a5bdbc7 100644 --- a/goal_src/jak2/levels/strip/strip-drop.gc +++ b/goal_src/jak2/levels/strip/strip-drop.gc @@ -157,14 +157,7 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 1117)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1117) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) @@ -176,22 +169,8 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-3d*) - (a1-2 (-> *part-id-table* 1114)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 1116)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 1114) s3-0) + (launch-particles (-> *part-id-table* 1116) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/goal_src/jak2/levels/strip/strip-obs.gc b/goal_src/jak2/levels/strip/strip-obs.gc index 45dcdc80ee..b50743e489 100644 --- a/goal_src/jak2/levels/strip/strip-obs.gc +++ b/goal_src/jak2/levels/strip/strip-obs.gc @@ -240,11 +240,7 @@ This commonly includes things such as: ) ) ) - (quaternion-rotate-local-x! - (-> self root quat) - (-> self root quat) - (* (-> self spin) (-> self clock seconds-per-frame)) - ) + (quaternion-rotate-local-x! (-> self root quat) (-> self root quat) (* (-> self spin) (seconds-per-frame))) (strip-trans) (none) ) diff --git a/goal_src/jak2/levels/strip/strip-part.gc b/goal_src/jak2/levels/strip/strip-part.gc index a6ae0a5684..ef1dc3d17f 100644 --- a/goal_src/jak2/levels/strip/strip-part.gc +++ b/goal_src/jak2/levels/strip/strip-part.gc @@ -392,30 +392,9 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 980)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 981)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-4 (-> *part-id-table* 982)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-3 a0-4 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 980) gp-0) + (launch-particles (-> *part-id-table* 981) gp-0) + (launch-particles (-> *part-id-table* 982) gp-0) ) ) (none) @@ -1466,30 +1445,9 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 vector 0 x) f30-0 (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 1031)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 1032)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 1033)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-3 a0-4 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1031) gp-0) + (launch-particles (-> *part-id-table* 1032) gp-0) + (launch-particles (-> *part-id-table* 1033) gp-0) ) ) ) diff --git a/goal_src/jak2/levels/title/title-obs.gc b/goal_src/jak2/levels/title/title-obs.gc index 0aee72a06e..fa55a46c49 100644 --- a/goal_src/jak2/levels/title/title-obs.gc +++ b/goal_src/jak2/levels/title/title-obs.gc @@ -153,6 +153,7 @@ ,(lambda ((arg0 process-drawable) (arg1 vector) (arg2 cspace)) (logior! (-> arg0 draw global-effect) (draw-control-global-effect title-light)) (case (scf-get-territory) + ;; og:preserve-this constant ((GAME_TERRITORY_SCEE) (case (-> *setting-control* user-current language) (((language-enum spanish)) @@ -580,32 +581,30 @@ ) (defun title-progress ((arg0 symbol)) - (with-pp - (setup - *screen-filter* - (new 'static 'vector :w 128.0) - (new 'static 'vector :w 128.0) - (-> pp clock seconds-per-frame) - (bucket-id screen-filter) - ) - (set-setting! 'allow-progress #t 0.0 0) - (apply-settings *setting-control*) - (activate-progress *dproc* arg0) - (set-setting! 'allow-progress #f 0.0 0) - (dotimes (gp-1 5) - (suspend) - ) - (disable *screen-filter*) - (remove-setting! 'allow-error) - (while (-> *blit-displays-work* menu-mode) - (suspend) - ) - (set-setting! 'allow-error #f 0.0 0) - (apply-settings *setting-control*) - (set-blackout-frames (seconds 0.2)) - 0 - (none) + (setup + *screen-filter* + (new 'static 'vector :w 128.0) + (new 'static 'vector :w 128.0) + (seconds-per-frame) + (bucket-id screen-filter) ) + (set-setting! 'allow-progress #t 0.0 0) + (apply-settings *setting-control*) + (activate-progress *dproc* arg0) + (set-setting! 'allow-progress #f 0.0 0) + (dotimes (gp-1 5) + (suspend) + ) + (disable *screen-filter*) + (remove-setting! 'allow-error) + (while (-> *blit-displays-work* menu-mode) + (suspend) + ) + (set-setting! 'allow-error #f 0.0 0) + (apply-settings *setting-control*) + (set-blackout-frames (seconds 0.2)) + 0 + (none) ) (defstate startup (title-control) @@ -817,7 +816,7 @@ :enter (-> (method-of-type title-control startup) enter) :exit (-> (method-of-type title-control startup) exit) :code (behavior () - (title-fade-out (* 3.0 (-> self clock seconds-per-frame))) + (title-fade-out (* 3.0 (seconds-per-frame))) (title-progress 'title) (sleep-code) (none) @@ -1319,6 +1318,7 @@ ) ) +;; og:preserve-this constant (when (= (scf-get-territory) GAME_TERRITORY_SCEE) (let ((v1-82 (get-field-spec-by-id (-> *part-id-table* 5469) (sp-field-id spt-userdata)))) (if v1-82 @@ -1342,6 +1342,7 @@ ) ) +;; og:preserve-this constant (when (= (scf-get-territory) GAME_TERRITORY_SCEI) (let ((v1-89 (get-field-spec-by-id (-> *part-id-table* 5469) (sp-field-id spt-userdata)))) (if v1-89 @@ -1365,6 +1366,7 @@ ) ) +;; og:preserve-this constant (when (= (scf-get-territory) GAME_TERRITORY_SCEK) (let ((v1-96 (get-field-spec-by-id (-> *part-id-table* 5469) (sp-field-id spt-userdata)))) (if v1-96 diff --git a/goal_src/jak2/levels/tomb/target-indax.gc b/goal_src/jak2/levels/tomb/target-indax.gc index ecf7ac159f..06d8ed903c 100644 --- a/goal_src/jak2/levels/tomb/target-indax.gc +++ b/goal_src/jak2/levels/tomb/target-indax.gc @@ -704,13 +704,13 @@ ((>= (- (current-time) gp-0) (seconds 2.5)) ) ((>= (- (current-time) gp-0) (seconds 1)) - (set! f28-0 (seek f28-0 1.0 (* 2.0 (-> self clock seconds-per-frame)))) + (set! f28-0 (seek f28-0 1.0 (* 2.0 (seconds-per-frame)))) ) (else - (set! f28-0 (seek f28-0 0.0 (* 2.0 (-> self clock seconds-per-frame)))) + (set! f28-0 (seek f28-0 0.0 (* 2.0 (seconds-per-frame)))) ) ) - (set! f30-0 (seek f30-0 f26-1 (* 4.0 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 f26-1 (* 4.0 (seconds-per-frame)))) ) (let ((v1-94 (-> self skel root-channel 1))) (set! (-> v1-94 frame-interp 1) f28-0) @@ -777,7 +777,7 @@ ) (let ((f0-3 (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ -10240.0 (-> self control ctrl-xz-vel))))))) (if (< (-> self control unknown-float35) f0-3) - (seek! (-> self control unknown-float35) f0-3 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> self control unknown-float35) f0-3 (* 4.0 (seconds-per-frame))) ) ) (none) @@ -807,7 +807,7 @@ ) (ja-no-eval :group! (-> self draw art-group data 419) :num! (loop!) :frame-num 0.0) (until #f - (seek! (-> self control unknown-float35) 0.0 (* 10.0 (-> self clock seconds-per-frame))) + (seek! (-> self control unknown-float35) 0.0 (* 10.0 (seconds-per-frame))) (suspend) (ja-blend-eval) (ja :num! (loop!)) @@ -1220,7 +1220,7 @@ (go target-indax-falling #f) ) ((< (the-as float f26-0) 0.0) - (set! f26-0 (seek (the-as float f26-0) -0.04096 (* 491520.0 (-> self clock seconds-per-frame)))) + (set! f26-0 (seek (the-as float f26-0) -0.04096 (* 491520.0 (seconds-per-frame)))) (set-forward-vel (the-as float f26-0)) ) ((and (nonzero? (-> self control unknown-time-frame18)) diff --git a/goal_src/jak2/levels/tomb/tomb-beetle.gc b/goal_src/jak2/levels/tomb/tomb-beetle.gc index 093a694143..223b2db169 100644 --- a/goal_src/jak2/levels/tomb/tomb-beetle.gc +++ b/goal_src/jak2/levels/tomb/tomb-beetle.gc @@ -655,13 +655,13 @@ (init-vf0-vector) (when (-> self flying?) (let ((gp-0 (-> self root))) - (+! (-> self speed) (* (-> self fly-away-acc) (-> self clock seconds-per-frame))) + (+! (-> self speed) (* (-> self fly-away-acc) (seconds-per-frame))) (let ((s5-0 (new 'stack-no-clear 'vector))) (vector-normalize-copy! s5-0 (-> self fly-away-dir) (-> self speed)) (vector-v++! (the-as vector (-> self fly-info)) s5-0) ) - (+! (-> self fly-away-ry) (* (-> self fly-away-ry-speed) (-> self clock seconds-per-frame))) - (+! (-> self fly-away-radius) (* 20480.0 (-> self clock seconds-per-frame))) + (+! (-> self fly-away-ry) (* (-> self fly-away-ry-speed) (seconds-per-frame))) + (+! (-> self fly-away-radius) (* 20480.0 (seconds-per-frame))) (let ((s5-1 (new 'stack-no-clear 'vector))) (set-vector! s5-1 (sin (-> self fly-away-ry)) 0.0 (cos (-> self fly-away-ry)) 1.0) (vector-normalize! s5-1 (-> self fly-away-radius)) @@ -684,7 +684,7 @@ (-> self root quat) (-> self root quat) (-> self fly-info 1 dst-quat) - (* 12.0 (-> self clock seconds-per-frame)) + (* 12.0 (seconds-per-frame)) ) ) (tomb-beetle-method-185 self) @@ -943,14 +943,14 @@ (let* ((gp-0 (-> self fly-info (-> self dest-index))) (f30-0 (vector-vector-distance (-> self root trans) (-> gp-0 dst))) ) - (seek! (-> self speed) (* 4.0 f30-0) (* 409600.0 (-> self clock seconds-per-frame))) + (seek! (-> self speed) (* 4.0 f30-0) (* 409600.0 (seconds-per-frame))) (let ((s5-1 (vector-! (new 'stack-no-clear 'vector) (-> gp-0 dst) (-> self root trans)))) (vector-normalize! s5-1 (-> self speed)) - (vector-seek! (-> self root transv) s5-1 (* (-> self speed) (-> self clock seconds-per-frame))) + (vector-seek! (-> self root transv) s5-1 (* (-> self speed) (seconds-per-frame))) ) (let ((v1-13 (new 'stack-no-clear 'vector))) (.lvf vf1 (&-> (-> self root transv) quad)) - (let ((f0-9 (-> self clock seconds-per-frame))) + (let ((f0-9 (seconds-per-frame))) (.mov at-0 f0-9) ) (.mov vf2 at-0) diff --git a/goal_src/jak2/levels/tomb/tomb-obs.gc b/goal_src/jak2/levels/tomb/tomb-obs.gc index a976109284..a178bcf8a0 100644 --- a/goal_src/jak2/levels/tomb/tomb-obs.gc +++ b/goal_src/jak2/levels/tomb/tomb-obs.gc @@ -1169,7 +1169,8 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) ;; added + ;; og:preserve-this added + (stack-size-set! (-> obj main-thread) 1024) (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) @@ -1273,7 +1274,8 @@ This commonly includes things such as: - collision information - loading the skeleton group / bones - sounds" - (stack-size-set! (-> obj main-thread) 1024) ;; added + ;; og:preserve-this added + (stack-size-set! (-> obj main-thread) 1024) (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player)))) (set! (-> s5-0 penetrated-by) (penetrate)) (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 3) 0))) @@ -1492,7 +1494,7 @@ This commonly includes things such as: :code (the-as (function none :behavior tomb-plat-return) sleep-code) :post (behavior () (sound-play "tomb-plat-ret" :id (-> self sound-id) :position (-> self root trans)) - (seek! (-> self path-pos) 1.0 (* 2.0 (-> self clock seconds-per-frame) (-> self path-speed))) + (seek! (-> self path-pos) 1.0 (* 2.0 (seconds-per-frame) (-> self path-speed))) (let ((f30-0 (-> self path-pos))) (get-point-at-percent-along-path! (-> self intro-path) @@ -1575,7 +1577,7 @@ This commonly includes things such as: :code (the-as (function none :behavior tomb-plat-return) sleep-code) :post (behavior () (sound-play "tomb-plat-ret" :id (-> self sound-id) :position (-> self root trans)) - (seek! (-> self path-pos) (-> self dest-pos) (* (-> self path-speed) (-> self clock seconds-per-frame))) + (seek! (-> self path-pos) (-> self dest-pos) (* (-> self path-speed) (seconds-per-frame))) (get-point-at-percent-along-path! (-> self path) (-> self basetrans) @@ -1774,22 +1776,8 @@ This commonly includes things such as: (set! (-> *part-id-table* 3159 init-specs 4 initial-valuef) (vector-length a2-1)) (draw-beam (-> *part-id-table* 3159) arg0 a2-1 #f #t) ) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 3160)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> arg0 quad)) - (t9-1 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 3161)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> arg1 quad)) - (t9-2 a0-4 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 3160) arg0) + (launch-particles (-> *part-id-table* 3161) arg1) (none) ) @@ -1888,7 +1876,7 @@ This commonly includes things such as: (sound-play "tomb-lasr-loop" :id (-> self sound-id) :position s3-1) ) (suspend) - ;; WORKAROUND for GOAL bug - vf0 is clobbered on suspend. + ;; og:preserve-this WORKAROUND for GOAL bug - vf0 is clobbered on suspend. (init-vf0-vector) ) ) @@ -1972,7 +1960,7 @@ This commonly includes things such as: (s2-0 s1-0 sv-112) ) (suspend) - ;; WORKAROUND for GOAL bug - vf0 is clobbered on suspend. + ;; og:preserve-this WORKAROUND for GOAL bug - vf0 is clobbered on suspend. (init-vf0-vector) ) ) diff --git a/goal_src/jak2/levels/tomb/tomb-water.gc b/goal_src/jak2/levels/tomb/tomb-water.gc index 1689f6499d..b11ff0c64d 100644 --- a/goal_src/jak2/levels/tomb/tomb-water.gc +++ b/goal_src/jak2/levels/tomb/tomb-water.gc @@ -598,7 +598,7 @@ This commonly includes things such as: ) (when (>= (- (current-time) (-> self state-time)) (seconds 4)) (if (and *target* (focus-test? *target* grabbed) - ;; pc port note : added this check to make the beetle button not break everything!! + ;; og:preserve-this added this check to make the beetle button not break everything!! (< (vector-vector-xz-distance (-> *target* control trans) (-> self root trans)) (meters 10))) (process-release? *target*) ) @@ -1127,7 +1127,7 @@ This commonly includes things such as: (defbehavior tomb-simon-block-post tomb-simon-block () (when (!= (-> self basetrans y) (-> self base-height)) - (seek! (-> self basetrans y) (-> self base-height) (* (-> self move-rate) (-> self clock seconds-per-frame))) + (seek! (-> self basetrans y) (-> self base-height) (* (-> self move-rate) (seconds-per-frame))) (when (and (< (- (-> self base-height) (-> self basetrans y)) 21504.0) (not (logtest? (-> self flags) (simon-block-flags sbf5))) ) @@ -1135,7 +1135,7 @@ This commonly includes things such as: (logior! (-> self flags) (simon-block-flags sbf5)) ) (if (< (- (-> self base-height) (-> self basetrans y)) 81920.0) - (seek! (-> self move-rate) 0.0 (* 81920.0 (-> self clock seconds-per-frame))) + (seek! (-> self move-rate) 0.0 (* 81920.0 (seconds-per-frame))) ) (when (< (+ -409.6 (-> self base-height)) (-> self basetrans y)) (sound-play "simon-hit") @@ -1496,9 +1496,7 @@ This commonly includes things such as: (none) ) :post (behavior () - (set! (-> self root transv y) - (- (-> self root transv y) (* (-> self move-rate) (-> self clock seconds-per-frame))) - ) + (set! (-> self root transv y) (- (-> self root transv y) (* (-> self move-rate) (seconds-per-frame)))) (+! (-> self root trans y) (-> self root transv y)) (transform-post) (none) @@ -2345,7 +2343,7 @@ This commonly includes things such as: ) (cond ((< 0.0 (-> self volume)) - (seek! (-> self volume) 0.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self volume) 0.0 (* 2.0 (seconds-per-frame))) (update-vol! (-> self sound) (-> self volume)) (update! (-> self sound)) ) @@ -2403,7 +2401,7 @@ This commonly includes things such as: ) ) ) - (seek! (-> self volume) 1.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self volume) 1.0 (* 2.0 (seconds-per-frame))) (cond ((logtest? gp-0 8) (set! gp-0 0) @@ -2450,7 +2448,7 @@ This commonly includes things such as: (set! s5-2 #t) (set-tombc-electricity-scale! 0.0) ) - (seek! (-> self volume) 0.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self volume) 0.0 (* 2.0 (seconds-per-frame))) (suspend) ) ) diff --git a/goal_src/jak2/levels/tomb/widow-part.gc b/goal_src/jak2/levels/tomb/widow-part.gc index c63339fc93..ce6abc80fb 100644 --- a/goal_src/jak2/levels/tomb/widow-part.gc +++ b/goal_src/jak2/levels/tomb/widow-part.gc @@ -2200,7 +2200,7 @@ (set! (-> arg1 user-float) (+ -204800.0 (-> arg2 launchrot y))) ) ) - ;; TODO - fix! + ;; og:preserve-this TODO - fix! ;; (.lvf vf30 (+ s4-0 480)) ) ) @@ -2215,22 +2215,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 3273)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 3274)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 3273) gp-0) + (launch-particles (-> *part-id-table* 3274) gp-0) ) ) (none) @@ -2363,22 +2349,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 launchrot x) (-> arg2 launchrot y) (-> arg2 launchrot z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 3280)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 3281)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 3280) gp-0) + (launch-particles (-> *part-id-table* 3281) gp-0) ) (none) ) diff --git a/goal_src/jak2/levels/under/centipede.gc b/goal_src/jak2/levels/under/centipede.gc index 9027d776a8..cdad4d48d0 100644 --- a/goal_src/jak2/levels/under/centipede.gc +++ b/goal_src/jak2/levels/under/centipede.gc @@ -214,105 +214,103 @@ ;; WARN: Return type mismatch float vs none. (defmethod centipede-method-187 centipede ((obj centipede)) - (with-pp - (let ((centipede-cam (-> obj cam))) - (let ((cam-dir (new 'stack-no-clear 'vector))) - (set! (-> cam-dir quad) (-> centipede-cam dir quad)) - (vector-z-quaternion! (-> centipede-cam dir) (-> obj root quat)) - (set! (-> centipede-cam dir y) 0.0) - (vector-normalize! (-> centipede-cam dir) 1.0) - (set! (-> centipede-cam trans quad) (-> obj root trans quad)) - (set! (-> centipede-cam trans y) (+ 32768.0 - (* (+ (* 2048.0 (cos (* 218.45334 (the float (mod (current-time) 300))))) - (* 614.4 (cos (* 68.91272 (the float (mod (current-time) 951))))) - ) - (-> obj bobbing-intensity) - ) - (-> centipede-cam trans y) - ) - ) - (if (= (-> obj id) 1) - (set! (-> centipede-cam dir y) -0.574) - (set! (-> centipede-cam dir y) -0.474) + (let ((centipede-cam (-> obj cam))) + (let ((cam-dir (new 'stack-no-clear 'vector))) + (set! (-> cam-dir quad) (-> centipede-cam dir quad)) + (vector-z-quaternion! (-> centipede-cam dir) (-> obj root quat)) + (set! (-> centipede-cam dir y) 0.0) + (vector-normalize! (-> centipede-cam dir) 1.0) + (set! (-> centipede-cam trans quad) (-> obj root trans quad)) + (set! (-> centipede-cam trans y) (+ 32768.0 + (* (+ (* 2048.0 (cos (* 218.45334 (the float (mod (current-time) 300))))) + (* 614.4 (cos (* 68.91272 (the float (mod (current-time) 951))))) + ) + (-> obj bobbing-intensity) + ) + (-> centipede-cam trans y) + ) ) - (vector-normalize! (-> centipede-cam dir) 1.0) - (let ((proc (handle->process (-> obj focus handle))) - (s3-0 #f) - ) - (when (and proc (not (and (-> obj next-state) (let ((v1-27 (-> obj next-state name))) - (or (= v1-27 'attack) (= v1-27 'attack-failed)) - ) - ) - ) - ) - (let ((s2-0 (new 'stack-no-clear 'vector))) - (vector-! s2-0 (get-trans (the-as process-focusable proc) 0) (-> obj root trans)) - (vector-normalize! s2-0 1.0) - (when (>= (vector-dot s2-0 (-> centipede-cam dir)) 0.342) - (let ((f0-23 (fmax - 0.0 - (fmin 8192.0 (atan (-> s2-0 y) (sqrtf (+ (* (-> s2-0 x) (-> s2-0 x)) (* (-> s2-0 z) (-> s2-0 z)))))) - ) + (if (= (-> obj id) 1) + (set! (-> centipede-cam dir y) -0.574) + (set! (-> centipede-cam dir y) -0.474) + ) + (vector-normalize! (-> centipede-cam dir) 1.0) + (let ((proc (handle->process (-> obj focus handle))) + (s3-0 #f) + ) + (when (and proc (not (and (-> obj next-state) (let ((v1-27 (-> obj next-state name))) + (or (= v1-27 'attack) (= v1-27 'attack-failed)) + ) + ) ) - ) - (seek! (-> centipede-cam track-focus-tilt) f0-23 (* 65536.0 (-> pp clock seconds-per-frame))) - ) - (set! s3-0 #t) + ) + (let ((s2-0 (new 'stack-no-clear 'vector))) + (vector-! s2-0 (get-trans (the-as process-focusable proc) 0) (-> obj root trans)) + (vector-normalize! s2-0 1.0) + (when (>= (vector-dot s2-0 (-> centipede-cam dir)) 0.342) + (let ((f0-23 (fmax + 0.0 + (fmin 8192.0 (atan (-> s2-0 y) (sqrtf (+ (* (-> s2-0 x) (-> s2-0 x)) (* (-> s2-0 z) (-> s2-0 z)))))) + ) + ) + ) + (seek! (-> centipede-cam track-focus-tilt) f0-23 (* 65536.0 (seconds-per-frame))) ) + (set! s3-0 #t) ) ) - (if (not s3-0) - (seek! (-> centipede-cam track-focus-tilt) 0.0 (* 65536.0 (-> pp clock seconds-per-frame))) - ) ) - (let ((s4-1 (new 'stack-no-clear 'vector)) - (s3-1 (new 'stack-no-clear 'quaternion)) - (s2-1 (new 'stack-no-clear 'matrix)) - ) - (vector-rotate90-around-y! s4-1 (-> centipede-cam dir)) - (set! (-> s4-1 y) 0.0) - (vector-normalize! s4-1 1.0) - (quaternion-vector-angle! s3-1 s4-1 (-> centipede-cam track-focus-tilt)) - (quaternion->matrix s2-1 s3-1) - (vector-matrix*! (-> centipede-cam dir) (-> centipede-cam dir) s2-1) - ) - (cond - ((-> centipede-cam init?) - (set! (-> centipede-cam init?) #f) - ) - (else - (let ((s3-2 (new 'stack-no-clear 'matrix)) - (s4-2 (new 'stack-no-clear 'vector)) - ) - (matrix-from-two-vectors-max-angle! s3-2 (-> centipede-cam dir) cam-dir 8192.0) - (vector-matrix*! s4-2 (-> centipede-cam dir) s3-2) - (matrix-from-two-vectors-smooth! s3-2 s4-2 (-> centipede-cam dir) 65536.0 150) - (vector-matrix*! (-> centipede-cam dir) s4-2 s3-2) - ) + (if (not s3-0) + (seek! (-> centipede-cam track-focus-tilt) 0.0 (* 65536.0 (seconds-per-frame))) + ) + ) + (let ((s4-1 (new 'stack-no-clear 'vector)) + (s3-1 (new 'stack-no-clear 'quaternion)) + (s2-1 (new 'stack-no-clear 'matrix)) + ) + (vector-rotate90-around-y! s4-1 (-> centipede-cam dir)) + (set! (-> s4-1 y) 0.0) + (vector-normalize! s4-1 1.0) + (quaternion-vector-angle! s3-1 s4-1 (-> centipede-cam track-focus-tilt)) + (quaternion->matrix s2-1 s3-1) + (vector-matrix*! (-> centipede-cam dir) (-> centipede-cam dir) s2-1) + ) + (cond + ((-> centipede-cam init?) + (set! (-> centipede-cam init?) #f) + ) + (else + (let ((s3-2 (new 'stack-no-clear 'matrix)) + (s4-2 (new 'stack-no-clear 'vector)) + ) + (matrix-from-two-vectors-max-angle! s3-2 (-> centipede-cam dir) cam-dir 8192.0) + (vector-matrix*! s4-2 (-> centipede-cam dir) s3-2) + (matrix-from-two-vectors-smooth! s3-2 s4-2 (-> centipede-cam dir) 65536.0 150) + (vector-matrix*! (-> centipede-cam dir) s4-2 s3-2) ) ) ) - (let ((v1-47 *camera*)) - (when v1-47 - (let ((v1-48 (-> v1-47 slave))) - (when v1-48 - (set! (-> v1-48 0 saved-pt quad) (-> centipede-cam trans quad)) - (let ((s5-1 (-> v1-48 0 tracking))) - (vector-cross! (the-as vector (-> s5-1 inv-mat)) *up-vector* (-> centipede-cam dir)) - (vector-normalize! (the-as vector (-> s5-1 inv-mat)) 1.0) - (vector-cross! (-> s5-1 inv-mat vector 1) (-> centipede-cam dir) (the-as vector (-> s5-1 inv-mat))) - (set! (-> s5-1 inv-mat vector 2 quad) (-> centipede-cam dir quad)) - (set! (-> s5-1 inv-mat vector 0 w) 0.0) - (set! (-> s5-1 inv-mat vector 1 w) 0.0) - (set! (-> s5-1 inv-mat vector 2 w) 0.0) - ) + ) + (let ((v1-47 *camera*)) + (when v1-47 + (let ((v1-48 (-> v1-47 slave))) + (when v1-48 + (set! (-> v1-48 0 saved-pt quad) (-> centipede-cam trans quad)) + (let ((s5-1 (-> v1-48 0 tracking))) + (vector-cross! (the-as vector (-> s5-1 inv-mat)) *up-vector* (-> centipede-cam dir)) + (vector-normalize! (the-as vector (-> s5-1 inv-mat)) 1.0) + (vector-cross! (-> s5-1 inv-mat vector 1) (-> centipede-cam dir) (the-as vector (-> s5-1 inv-mat))) + (set! (-> s5-1 inv-mat vector 2 quad) (-> centipede-cam dir quad)) + (set! (-> s5-1 inv-mat vector 0 w) 0.0) + (set! (-> s5-1 inv-mat vector 1 w) 0.0) + (set! (-> s5-1 inv-mat vector 2 w) 0.0) ) ) ) ) ) - (none) ) + (none) ) (defmethod centipede-method-188 centipede ((obj centipede)) @@ -446,69 +444,67 @@ ;; WARN: Return type mismatch quaternion vs none. (defmethod nav-enemy-method-142 centipede ((obj centipede) (arg0 nav-control)) - (with-pp - (let ((t9-0 (method-of-type nav-enemy nav-enemy-method-142))) - (t9-0 obj arg0) - ) - (let ((s5-0 (new 'stack-no-clear 'vector))) - (vector-z-quaternion! s5-0 (-> obj root quat)) - (vector-normalize! s5-0 1.0) - (let ((s3-0 (handle->process (-> obj focus handle))) - (s4-0 #f) - ) - (cond - (s3-0 - (let ((s2-0 (-> obj focus-pos-hist-count))) - (countdown (v1-7 (min 14 s2-0)) - (set! (-> obj focus-pos-hist (+ v1-7 1) quad) (-> obj focus-pos-hist v1-7 quad)) - ) - (set! (-> obj focus-pos-hist 0 quad) (-> (get-trans (the-as process-focusable s3-0) 0) quad)) - (if (< s2-0 15) - (set! (-> obj focus-pos-hist-count) (+ s2-0 1)) - ) + (let ((t9-0 (method-of-type nav-enemy nav-enemy-method-142))) + (t9-0 obj arg0) + ) + (let ((s5-0 (new 'stack-no-clear 'vector))) + (vector-z-quaternion! s5-0 (-> obj root quat)) + (vector-normalize! s5-0 1.0) + (let ((s3-0 (handle->process (-> obj focus handle))) + (s4-0 #f) + ) + (cond + (s3-0 + (let ((s2-0 (-> obj focus-pos-hist-count))) + (countdown (v1-7 (min 14 s2-0)) + (set! (-> obj focus-pos-hist (+ v1-7 1) quad) (-> obj focus-pos-hist v1-7 quad)) ) - ) - (else - (set! (-> obj focus-pos-hist-count) 0) - 0 + (set! (-> obj focus-pos-hist 0 quad) (-> (get-trans (the-as process-focusable s3-0) 0) quad)) + (if (< s2-0 15) + (set! (-> obj focus-pos-hist-count) (+ s2-0 1)) + ) ) ) - (when s3-0 - (let ((s3-1 (new 'stack-no-clear 'vector))) - (vector-! s3-1 (-> obj focus-pos-hist (+ (-> obj focus-pos-hist-count) -1)) (-> obj root trans)) - (vector-normalize! s3-1 1.0) - (when (>= (vector-dot s3-1 s5-0) 0.342) - (let ((f0-9 - (fmax - 0.0 - (fmin 8192.0 (atan (-> s3-1 y) (sqrtf (+ (* (-> s3-1 x) (-> s3-1 x)) (* (-> s3-1 z) (-> s3-1 z)))))) - ) + (else + (set! (-> obj focus-pos-hist-count) 0) + 0 + ) + ) + (when s3-0 + (let ((s3-1 (new 'stack-no-clear 'vector))) + (vector-! s3-1 (-> obj focus-pos-hist (+ (-> obj focus-pos-hist-count) -1)) (-> obj root trans)) + (vector-normalize! s3-1 1.0) + (when (>= (vector-dot s3-1 s5-0) 0.342) + (let ((f0-9 + (fmax + 0.0 + (fmin 8192.0 (atan (-> s3-1 y) (sqrtf (+ (* (-> s3-1 x) (-> s3-1 x)) (* (-> s3-1 z) (-> s3-1 z)))))) ) ) - (set! (-> obj track-focus-tilt) - (seek-with-smooth (-> obj track-focus-tilt) f0-9 (* 5461.3335 (-> pp clock seconds-per-frame)) 0.25 1.0) - ) - ) - (set! s4-0 #t) + ) + (set! (-> obj track-focus-tilt) + (seek-with-smooth (-> obj track-focus-tilt) f0-9 (* 5461.3335 (seconds-per-frame)) 0.25 1.0) + ) ) + (set! s4-0 #t) ) ) - (if (not s4-0) - (set! (-> obj track-focus-tilt) - (seek-with-smooth (-> obj track-focus-tilt) 0.0 (* 5461.3335 (-> pp clock seconds-per-frame)) 0.25 1.0) - ) - ) - ) - (let ((s3-2 (new 'stack-no-clear 'vector)) - (s4-1 (new 'stack-no-clear 'quaternion)) - ) - (vector-rotate90-around-y! s3-2 s5-0) - (quaternion-vector-angle! s4-1 s3-2 (+ 4551.1113 (-> obj track-focus-tilt))) - (quaternion*! (-> obj root quat) s4-1 (-> obj root quat)) ) + (if (not s4-0) + (set! (-> obj track-focus-tilt) + (seek-with-smooth (-> obj track-focus-tilt) 0.0 (* 5461.3335 (seconds-per-frame)) 0.25 1.0) + ) + ) + ) + (let ((s3-2 (new 'stack-no-clear 'vector)) + (s4-1 (new 'stack-no-clear 'quaternion)) + ) + (vector-rotate90-around-y! s3-2 s5-0) + (quaternion-vector-angle! s4-1 s3-2 (+ 4551.1113 (-> obj track-focus-tilt))) + (quaternion*! (-> obj root quat) s4-1 (-> obj root quat)) ) - (none) ) + (none) ) (defmethod coin-flip? centipede ((obj centipede)) @@ -574,50 +570,48 @@ ) (defmethod centipede-method-183 centipede ((obj centipede)) - (with-pp - (when (not (and (-> obj next-state) (= (-> obj next-state name) 'thru-grating))) - (centipede-method-187 obj) - (when (= (-> obj id) 2) - (let ((overlap-parms (new 'stack-no-clear 'overlaps-others-params))) - (set! (-> overlap-parms options) (overlaps-others-options)) - (set! (-> overlap-parms collide-with-filter) (the-as collide-spec -1)) - (set! (-> overlap-parms tlist) *touching-list*) - (find-overlapping-shapes (-> obj root) overlap-parms) + (when (not (and (-> obj next-state) (= (-> obj next-state name) 'thru-grating))) + (centipede-method-187 obj) + (when (= (-> obj id) 2) + (let ((overlap-parms (new 'stack-no-clear 'overlaps-others-params))) + (set! (-> overlap-parms options) (overlaps-others-options)) + (set! (-> overlap-parms collide-with-filter) (the-as collide-spec -1)) + (set! (-> overlap-parms tlist) *touching-list*) + (find-overlapping-shapes (-> obj root) overlap-parms) + ) + ) + (let* ((travel-speed (-> *centipede-nav-enemy-info* run-travel-speed)) + (f0-2 (fmin 1.0 (/ (vector-length (-> obj root transv)) travel-speed))) + ) + (seek! (-> obj bobbing-intensity) f0-2 (* 4.0 (seconds-per-frame))) + ) + (quaternion-copy! (-> obj bobbing quat) (-> obj root quat)) + (set! (-> obj bobbing trans quad) (-> obj root trans quad)) + (let ((s5-0 (new 'stack-no-clear 'vector)) + (f30-1 (* 2662.4 (cos (* 283.70563 (the float (mod (current-time) 231)))))) + (bob-trans (-> obj bobbing trans)) ) - ) - (let* ((travel-speed (-> *centipede-nav-enemy-info* run-travel-speed)) - (f0-2 (fmin 1.0 (/ (vector-length (-> obj root transv)) travel-speed))) - ) - (seek! (-> obj bobbing-intensity) f0-2 (* 4.0 (-> pp clock seconds-per-frame))) - ) - (quaternion-copy! (-> obj bobbing quat) (-> obj root quat)) - (set! (-> obj bobbing trans quad) (-> obj root trans quad)) - (let ((s5-0 (new 'stack-no-clear 'vector)) - (f30-1 (* 2662.4 (cos (* 283.70563 (the float (mod (current-time) 231)))))) - (bob-trans (-> obj bobbing trans)) - ) - (vector-z-quaternion! s5-0 (-> obj root quat)) - (set! (-> s5-0 y) 0.0) - (vector-normalize! s5-0 (* f30-1 (-> obj bobbing-intensity))) - (vector+! (the-as vector (&-> bob-trans x)) (the-as vector (&-> bob-trans x)) s5-0) - ) + (vector-z-quaternion! s5-0 (-> obj root quat)) + (set! (-> s5-0 y) 0.0) + (vector-normalize! s5-0 (* f30-1 (-> obj bobbing-intensity))) + (vector+! (the-as vector (&-> bob-trans x)) (the-as vector (&-> bob-trans x)) s5-0) ) - (update-trans! (-> obj sound) (-> obj root trans)) - (when (!= (-> obj talking-volume) (-> obj desired-talking-volume)) - (seek! (-> obj talking-volume) (-> obj desired-talking-volume) (* 4.0 (-> pp clock seconds-per-frame))) - (update-vol! (-> obj sound) (-> obj talking-volume)) - ) - (update! (-> obj sound)) - (update-trans! (-> obj legs-sound) (-> obj root trans)) - (let ((f0-20 (fmin 1.0 (* 0.00012207031 (vector-length (-> obj root transv)))))) - (when (!= (-> obj legs-volume) f0-20) - (seek! (-> obj legs-volume) f0-20 (* 4.0 (-> pp clock seconds-per-frame))) - (update-vol! (-> obj legs-sound) (-> obj legs-volume)) - ) - ) - (update! (-> obj legs-sound)) - (none) ) + (update-trans! (-> obj sound) (-> obj root trans)) + (when (!= (-> obj talking-volume) (-> obj desired-talking-volume)) + (seek! (-> obj talking-volume) (-> obj desired-talking-volume) (* 4.0 (seconds-per-frame))) + (update-vol! (-> obj sound) (-> obj talking-volume)) + ) + (update! (-> obj sound)) + (update-trans! (-> obj legs-sound) (-> obj root trans)) + (let ((f0-20 (fmin 1.0 (* 0.00012207031 (vector-length (-> obj root transv)))))) + (when (!= (-> obj legs-volume) f0-20) + (seek! (-> obj legs-volume) f0-20 (* 4.0 (seconds-per-frame))) + (update-vol! (-> obj legs-sound) (-> obj legs-volume)) + ) + ) + (update! (-> obj legs-sound)) + (none) ) (defmethod track-target! centipede ((obj centipede)) @@ -625,90 +619,78 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (let ((t9-0 (method-of-type nav-enemy track-target!))) - (t9-0 obj) - ) - (let ((a0-3 (handle->process (-> obj focus handle)))) - (when a0-3 - (let ((f0-0 (-> (get-trans (the-as process-focusable a0-3) 1) y))) - (if (!= f0-0 -40959590.0) - (set! (-> obj focus-gnd-height) f0-0) - ) - ) - ) - ) - (let ((s5-0 (-> obj root))) - (set! (-> s5-0 gspot-pos quad) (-> s5-0 trans quad)) - (let ((v1-12 (-> obj nav)) - (a0-8 (-> s5-0 trans)) - (a1-2 (new 'stack-no-clear 'nav-find-poly-parms)) - ) - (vector-! (-> a1-2 point) a0-8 (-> v1-12 state mesh bounds)) - (set! (-> a1-2 y-threshold) (-> v1-12 nearest-y-threshold)) - (set! (-> a1-2 ignore) (the-as uint 2)) - (let ((a1-3 (find-poly-containing-point-local (-> v1-12 state mesh) a1-2)) - (s4-0 (new 'stack-no-clear 'collide-query)) - ) - (when a1-3 - (let ((s2-0 (-> obj nav)) - (s3-0 (-> s4-0 best-other-tri intersect)) - ) - (let ((a3-2 (-> s4-0 best-other-tri normal)) - (v1-15 (-> s5-0 trans)) - ) - (project-point-onto-plane-of-poly-local - (-> s2-0 state mesh) - a1-3 - s3-0 - a3-2 - (vector-! (new 'stack-no-clear 'vector) v1-15 (-> s2-0 state mesh bounds)) - ) - ) - (vector+! s3-0 s3-0 (-> s2-0 state mesh bounds)) - ) - 0 - (let ((f0-2 1024.0)) - (if (>= (* f0-2 f0-2) (vector-vector-xz-distance-squared (-> s4-0 best-other-tri intersect) (-> s5-0 trans))) - (set! (-> s5-0 gspot-pos y) (-> s4-0 best-other-tri intersect y)) - ) - ) - ) - ) - ) - (let ((f0-6 (-> obj root trans y))) - (cond - ((>= (-> s5-0 gspot-pos y) f0-6) - (set! (-> s5-0 trans y) (-> s5-0 gspot-pos y)) - ) - ((and (!= (-> obj focus-gnd-height) -40959590.0) - (>= (- (-> obj focus-gnd-height) (-> s5-0 gspot-pos y)) 4096.0) - ) - (set! (-> s5-0 trans y) (seek-with-smooth - (-> s5-0 trans y) - (-> obj focus-gnd-height) - (* 24576.0 (-> pp clock seconds-per-frame)) - 0.25 - 1.0 - ) - ) - ) - (else - (set! (-> s5-0 trans y) (seek-with-smooth - (-> s5-0 trans y) - (-> s5-0 gspot-pos y) - (* 24576.0 (-> pp clock seconds-per-frame)) - 0.25 - 1.0 - ) - ) - ) - ) - ) - ) - (centipede-method-183 obj) - (none) + (let ((t9-0 (method-of-type nav-enemy track-target!))) + (t9-0 obj) ) + (let ((a0-3 (handle->process (-> obj focus handle)))) + (when a0-3 + (let ((f0-0 (-> (get-trans (the-as process-focusable a0-3) 1) y))) + (if (!= f0-0 -40959590.0) + (set! (-> obj focus-gnd-height) f0-0) + ) + ) + ) + ) + (let ((s5-0 (-> obj root))) + (set! (-> s5-0 gspot-pos quad) (-> s5-0 trans quad)) + (let ((v1-12 (-> obj nav)) + (a0-8 (-> s5-0 trans)) + (a1-2 (new 'stack-no-clear 'nav-find-poly-parms)) + ) + (vector-! (-> a1-2 point) a0-8 (-> v1-12 state mesh bounds)) + (set! (-> a1-2 y-threshold) (-> v1-12 nearest-y-threshold)) + (set! (-> a1-2 ignore) (the-as uint 2)) + (let ((a1-3 (find-poly-containing-point-local (-> v1-12 state mesh) a1-2)) + (s4-0 (new 'stack-no-clear 'collide-query)) + ) + (when a1-3 + (let ((s2-0 (-> obj nav)) + (s3-0 (-> s4-0 best-other-tri intersect)) + ) + (let ((a3-2 (-> s4-0 best-other-tri normal)) + (v1-15 (-> s5-0 trans)) + ) + (project-point-onto-plane-of-poly-local + (-> s2-0 state mesh) + a1-3 + s3-0 + a3-2 + (vector-! (new 'stack-no-clear 'vector) v1-15 (-> s2-0 state mesh bounds)) + ) + ) + (vector+! s3-0 s3-0 (-> s2-0 state mesh bounds)) + ) + 0 + (let ((f0-2 1024.0)) + (if (>= (* f0-2 f0-2) (vector-vector-xz-distance-squared (-> s4-0 best-other-tri intersect) (-> s5-0 trans))) + (set! (-> s5-0 gspot-pos y) (-> s4-0 best-other-tri intersect y)) + ) + ) + ) + ) + ) + (let ((f0-6 (-> obj root trans y))) + (cond + ((>= (-> s5-0 gspot-pos y) f0-6) + (set! (-> s5-0 trans y) (-> s5-0 gspot-pos y)) + ) + ((and (!= (-> obj focus-gnd-height) -40959590.0) + (>= (- (-> obj focus-gnd-height) (-> s5-0 gspot-pos y)) 4096.0) + ) + (set! (-> s5-0 trans y) + (seek-with-smooth (-> s5-0 trans y) (-> obj focus-gnd-height) (* 24576.0 (seconds-per-frame)) 0.25 1.0) + ) + ) + (else + (set! (-> s5-0 trans y) + (seek-with-smooth (-> s5-0 trans y) (-> s5-0 gspot-pos y) (* 24576.0 (seconds-per-frame)) 0.25 1.0) + ) + ) + ) + ) + ) + (centipede-method-183 obj) + (none) ) ;; WARN: Return type mismatch object vs none. @@ -1116,7 +1098,7 @@ (vector-seek-3d-smooth! (-> (the-as process-focusable v1-3) root trans) (-> self root trans) - (* 28672.0 (-> self clock seconds-per-frame)) + (* 28672.0 (seconds-per-frame)) 0.8 ) ) diff --git a/goal_src/jak2/levels/under/jellyfish.gc b/goal_src/jak2/levels/under/jellyfish.gc index f393dc207c..fd45f9f970 100644 --- a/goal_src/jak2/levels/under/jellyfish.gc +++ b/goal_src/jak2/levels/under/jellyfish.gc @@ -374,7 +374,7 @@ ) :trans (behavior () (local-vars (a0-8 vector) (gp-2 vector)) - (seek! (-> self tentacle-blend) 1.0 (-> self clock seconds-per-frame)) + (seek! (-> self tentacle-blend) 1.0 (seconds-per-frame)) (hover-nav-control-method-11 (-> self hover) (jellyfish-method-161 self (new 'stack-no-clear 'vector) (get-norm! (-> self sync) 0)) @@ -433,7 +433,7 @@ ) :trans (behavior () (local-vars (gp-0 vector)) - (seek! (-> self tentacle-blend) 1.0 (-> self clock seconds-per-frame)) + (seek! (-> self tentacle-blend) 1.0 (seconds-per-frame)) (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (let ((v1-4 (-> self focus aware))) (cond @@ -483,7 +483,7 @@ (none) ) :trans (behavior () - (seek! (-> self tentacle-blend) 0.0 (-> self clock seconds-per-frame)) + (seek! (-> self tentacle-blend) 0.0 (seconds-per-frame)) (none) ) :code (behavior () @@ -602,7 +602,7 @@ (let ((s3-0 (new 'stack-no-clear 'quaternion))) (vector-normalize! s5-1 1.0) (vector-normalize! s4-1 1.0) - (quaternion-from-two-vectors-partial! s3-0 s5-1 s4-1 (* 8.0 (-> self clock seconds-per-frame))) + (quaternion-from-two-vectors-partial! s3-0 s5-1 s4-1 (* 8.0 (seconds-per-frame))) (vector-orient-by-quat! s5-1 s5-1 s3-0) ) (vector-normalize! s5-1 (fmin f30-0 (+ 16384.0 f28-0))) @@ -1103,41 +1103,39 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (let ((v1-1 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) (-> obj main-joint-acc) (-> obj root quat)))) - (+! (-> obj tentacle-clock) - (* (lerp-scale 1.0 10.0 (fmax (fmax (fmax 0.0 (fabs (-> v1-1 x))) (-> v1-1 y)) (fabs (-> v1-1 z))) 0.0 24576.0) - (-> pp clock seconds-per-frame) - ) - ) - ) - (when (not (-> obj tentacles-initialized)) - (set! (-> obj tentacles-initialized) #t) - (dotimes (s5-0 5) - (initialize-chain-joints (-> obj tentacles s5-0)) + (let ((v1-1 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) (-> obj main-joint-acc) (-> obj root quat)))) + (+! (-> obj tentacle-clock) + (* (lerp-scale 1.0 10.0 (fmax (fmax (fmax 0.0 (fabs (-> v1-1 x))) (-> v1-1 y)) (fabs (-> v1-1 z))) 0.0 24576.0) + (seconds-per-frame) + ) ) - ) - (dotimes (s5-1 5) - (update (-> obj tentacles s5-1) obj) - ) - (let ((a1-3 (handle->process (-> obj focus handle)))) - (if a1-3 - (los-control-method-9 (-> obj los) (the-as process-focusable a1-3) (the-as vector #f) 4096.0) - ) - ) - (let ((a0-10 (handle->process (-> obj focus handle)))) - (when (and a0-10 - (focus-test? (the-as process-focusable a0-10) mech) - (not (logtest? (-> (the-as process-focusable a0-10) focus-status) (focus-status dead ignore))) - ) - (set! (-> obj focus-pos quad) (-> (get-trans (the-as process-focusable a0-10) 0) quad)) - (set! (-> obj path-player-u) (get-furthest-point-on-path (-> obj path) (-> obj focus-pos))) - ) - ) - (set! (-> obj path-my-u) (get-furthest-point-on-path (-> obj path) (-> obj root trans))) - ((method-of-type hover-enemy track-target!) obj) - (none) ) + (when (not (-> obj tentacles-initialized)) + (set! (-> obj tentacles-initialized) #t) + (dotimes (s5-0 5) + (initialize-chain-joints (-> obj tentacles s5-0)) + ) + ) + (dotimes (s5-1 5) + (update (-> obj tentacles s5-1) obj) + ) + (let ((a1-3 (handle->process (-> obj focus handle)))) + (if a1-3 + (los-control-method-9 (-> obj los) (the-as process-focusable a1-3) (the-as vector #f) 4096.0) + ) + ) + (let ((a0-10 (handle->process (-> obj focus handle)))) + (when (and a0-10 + (focus-test? (the-as process-focusable a0-10) mech) + (not (logtest? (-> (the-as process-focusable a0-10) focus-status) (focus-status dead ignore))) + ) + (set! (-> obj focus-pos quad) (-> (get-trans (the-as process-focusable a0-10) 0) quad)) + (set! (-> obj path-player-u) (get-furthest-point-on-path (-> obj path) (-> obj focus-pos))) + ) + ) + (set! (-> obj path-my-u) (get-furthest-point-on-path (-> obj path) (-> obj root trans))) + ((method-of-type hover-enemy track-target!) obj) + (none) ) ;; WARN: Return type mismatch object vs none. diff --git a/goal_src/jak2/levels/under/under-part.gc b/goal_src/jak2/levels/under/under-part.gc index 102f9fbbb2..00a8fb9704 100644 --- a/goal_src/jak2/levels/under/under-part.gc +++ b/goal_src/jak2/levels/under/under-part.gc @@ -383,22 +383,8 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) f30-0 (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 2226)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-3d*) - (a1-3 (-> *part-id-table* 2227)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 2226) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2227) s3-0) ) ) ) diff --git a/goal_src/jak2/levels/under/under-shoot-block.gc b/goal_src/jak2/levels/under/under-shoot-block.gc index fdd58c2018..7fac7aa821 100644 --- a/goal_src/jak2/levels/under/under-shoot-block.gc +++ b/goal_src/jak2/levels/under/under-shoot-block.gc @@ -1259,12 +1259,7 @@ (set! (-> gp-1 vector 1 quad) (-> gp-1 vector 0 quad)) (+! (-> gp-1 vector 1 y) 16384.0) (until (>= 409.6 (fabs (- (-> gp-1 vector 1 y) (-> self root trans y)))) - (vector-seek-3d-smooth! - (-> self root trans) - (-> gp-1 vector 1) - (* 30720.0 (-> self clock seconds-per-frame)) - 0.25 - ) + (vector-seek-3d-smooth! (-> self root trans) (-> gp-1 vector 1) (* 30720.0 (seconds-per-frame)) 0.25) (rider-post) (suspend) ) @@ -1288,12 +1283,7 @@ (set! (-> gp-0 vector 1 quad) (-> gp-0 vector 0 quad)) (+! (-> gp-0 vector 1 y) 16384.0) (until (>= 409.6 (fabs (- (-> gp-0 vector 1 y) (-> self root trans y)))) - (vector-seek-3d-smooth! - (-> self root trans) - (-> gp-0 vector 1) - (* 30720.0 (-> self clock seconds-per-frame)) - 0.25 - ) + (vector-seek-3d-smooth! (-> self root trans) (-> gp-0 vector 1) (* 30720.0 (seconds-per-frame)) 0.25) (rider-post) (suspend) ) @@ -1429,8 +1419,6 @@ ) ) (suspend) - ;; WORKAROUND for GOAL bug - vf0 is clobbered on suspend. - (init-vf0-vector) ) ) #f @@ -1547,12 +1535,7 @@ (set! (-> gp-1 vector 1 quad) (-> gp-1 vector 0 quad)) (+! (-> gp-1 vector 1 y) -1228.8) (until (>= 40.96 (fabs (- (-> gp-1 vector 1 y) (-> self root trans y)))) - (vector-seek-3d-smooth! - (-> self root trans) - (-> gp-1 vector 1) - (* 8192.0 (-> self clock seconds-per-frame)) - 0.25 - ) + (vector-seek-3d-smooth! (-> self root trans) (-> gp-1 vector 1) (* 8192.0 (seconds-per-frame)) 0.25) (transform-post) (suspend) ) @@ -1588,12 +1571,7 @@ (set! (-> gp-1 vector 1 y) (-> self puzzle origin y)) (+! (-> gp-1 vector 1 y) -8192.0) (until (>= 40.96 (fabs (- (-> gp-1 vector 1 y) (-> self root trans y)))) - (vector-seek-3d-smooth! - (-> self root trans) - (-> gp-1 vector 1) - (* 12288.0 (-> self clock seconds-per-frame)) - 0.25 - ) + (vector-seek-3d-smooth! (-> self root trans) (-> gp-1 vector 1) (* 12288.0 (seconds-per-frame)) 0.25) (transform-post) (suspend) ) @@ -1635,7 +1613,7 @@ ) (quaternion-copy! gp-0 (-> self root quat)) (while (< (- (current-time) (-> self state-time)) (seconds 1.25)) - (+! f30-0 (* 65536.0 (-> self clock seconds-per-frame))) + (+! f30-0 (* 65536.0 (seconds-per-frame))) (quaternion-vector-angle! s5-0 (-> self rot-axis) (- f30-0)) (quaternion*! (-> self root quat) s5-0 gp-0) (suspend) @@ -1646,7 +1624,7 @@ ) :post (behavior () (let ((gp-0 (-> self root))) - (set! (-> gp-0 transv y) (- (-> gp-0 transv y) (* 348160.0 (-> self clock seconds-per-frame)))) + (set! (-> gp-0 transv y) (- (-> gp-0 transv y) (* 348160.0 (seconds-per-frame)))) (let ((a2-0 (new 'stack-no-clear 'collide-query))) (set! (-> a2-0 collide-with) (-> gp-0 root-prim prim-core collide-with)) (set! (-> a2-0 ignore-process0) self) diff --git a/goal_src/jak2/levels/under/under-sig-obs.gc b/goal_src/jak2/levels/under/under-sig-obs.gc index 0fcc787a84..10fb6eb647 100644 --- a/goal_src/jak2/levels/under/under-sig-obs.gc +++ b/goal_src/jak2/levels/under/under-sig-obs.gc @@ -216,7 +216,7 @@ For example for an elevator pre-compute the distance between the first and last ) (('hint) (when (>= (-> self hint-count) 0.0) - (+! (-> self hint-count) (-> self clock seconds-per-frame)) + (+! (-> self hint-count) (seconds-per-frame)) (if (< 6.0 (-> self hint-count)) #f ) @@ -297,10 +297,8 @@ For example for an elevator pre-compute the distance between the first and last ) ) ) - (+! (-> self angle-flip-vel) - (* -0.5 (-> self clock seconds-per-frame) (- (-> self angle-flip) (-> self dest-angle))) - ) - (+! (-> self angle-flip-vel) (* -6.0 (-> self clock seconds-per-frame) (-> self angle-flip-vel))) + (+! (-> self angle-flip-vel) (* -0.5 (seconds-per-frame) (- (-> self angle-flip) (-> self dest-angle)))) + (+! (-> self angle-flip-vel) (* -6.0 (seconds-per-frame) (-> self angle-flip-vel))) (+! (-> self angle-flip) (-> self angle-flip-vel)) (if (!= *bot-record-path* -1) (set! (-> self angle-flip) 0.0) @@ -325,7 +323,7 @@ For example for an elevator pre-compute the distance between the first and last ) (vector-normalize! s5-2 1.0) (quaternion-vector-angle! gp-2 s5-2 910.2222) - (quaternion-pseudo-seek (-> self root quat) (-> self root quat) gp-2 (-> self clock seconds-per-frame)) + (quaternion-pseudo-seek (-> self root quat) (-> self root quat) gp-2 (seconds-per-frame)) ) ) (quaternion-normalize! (-> self root quat)) @@ -394,7 +392,7 @@ For example for an elevator pre-compute the distance between the first and last (vector-rotate90-around-y! s4-0 s4-0) (quaternion-copy! gp-1 (-> self root quat)) (until #f - (+! f30-1 (* 65536.0 (-> self clock seconds-per-frame))) + (+! f30-1 (* 65536.0 (seconds-per-frame))) (quaternion-vector-angle! s5-1 s4-0 (- f30-1)) (quaternion*! (-> self root quat) s5-1 gp-1) (suspend) @@ -405,7 +403,7 @@ For example for an elevator pre-compute the distance between the first and last ) :post (behavior () (let ((v1-0 (-> self root))) - (set! (-> v1-0 transv y) (- (-> v1-0 transv y) (* 512000.0 (-> self clock seconds-per-frame)))) + (set! (-> v1-0 transv y) (- (-> v1-0 transv y) (* 512000.0 (seconds-per-frame)))) (let ((a2-0 (new 'stack-no-clear 'collide-query))) (set! (-> a2-0 collide-with) (-> v1-0 root-prim prim-core collide-with)) (set! (-> a2-0 ignore-process0) self) @@ -1314,11 +1312,7 @@ This commonly includes things such as: ) ) (when (!= (-> self volume) (-> self desired-volume)) - (seek! - (-> self volume) - (-> self desired-volume) - (* (-> self volume-seek-speed) (-> self clock seconds-per-frame)) - ) + (seek! (-> self volume) (-> self desired-volume) (* (-> self volume-seek-speed) (seconds-per-frame))) (when (nonzero? (-> self approach-sound-id)) (when *sound-player-enable* (let ((v1-12 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) diff --git a/goal_src/jak2/levels/under/underb-master.gc b/goal_src/jak2/levels/under/underb-master.gc index a3b7991709..c479dd1726 100644 --- a/goal_src/jak2/levels/under/underb-master.gc +++ b/goal_src/jak2/levels/under/underb-master.gc @@ -95,7 +95,7 @@ (gp-0 (new 'stack-no-clear 'vector)) (f30-0 4096.0) ) - ;; changed for PC port: resize warp effect based on aspect ratio + ;; og:preserve-this changed for PC port: resize warp effect based on aspect ratio (let ((f0-4 (* 0.00013563369 (tan (* 0.5 (-> *math-camera* fov))) f30-0))) (set-vector! (-> obj root scale) (* f0-4 (if (-> *pc-settings* use-vis?) 1.0 (-> *pc-settings* aspect-ratio-scale))) f0-4 f0-4 1.0) ) @@ -393,9 +393,7 @@ ) (cond ((-> self air-charge-up?) - (set! (-> self air-supply) - (seek-with-smooth (-> self air-supply) 1.0 (* 2.0 (-> self clock seconds-per-frame)) 0.125 0.01) - ) + (set! (-> self air-supply) (seek-with-smooth (-> self air-supply) 1.0 (* 2.0 (seconds-per-frame)) 0.125 0.01)) (when (= (-> self air-supply) 1.0) (set! (-> self air-charge-up?) #f) (set! (-> self air-supply) 1.01) @@ -404,7 +402,7 @@ ) ) (else - (seek! (-> self air-supply) 0.0 (* 0.04 (-> self clock seconds-per-frame))) + (seek! (-> self air-supply) 0.0 (* 0.04 (seconds-per-frame))) (cond ((= (-> self air-supply) 0.0) (let ((a1-6 (new 'stack-no-clear 'event-message-block))) @@ -930,7 +928,7 @@ (when gp-0 (let ((f0-0 (-> (the-as water-anim gp-0) root trans y))) (when (!= f0-0 (-> self up-y)) - (let ((f0-4 (seek f0-0 (-> self up-y) (* 12288.0 (-> self clock seconds-per-frame))))) + (let ((f0-4 (seek f0-0 (-> self up-y) (* 12288.0 (seconds-per-frame))))) (send-event gp-0 'move-to-y f0-4) ) ) @@ -1031,7 +1029,7 @@ (when gp-0 (let ((f0-0 (-> (the-as water-anim gp-0) root trans y))) (when (!= f0-0 (-> self down-y)) - (let ((f0-4 (seek f0-0 (-> self down-y) (* 12288.0 (-> self clock seconds-per-frame))))) + (let ((f0-4 (seek f0-0 (-> self down-y) (* 12288.0 (seconds-per-frame))))) (send-event gp-0 'move-to-y f0-4) ) ) diff --git a/test/decompiler/reference/jak1/decompiler-macros.gc b/test/decompiler/reference/jak1/decompiler-macros.gc index 46578d38d4..542b5883a8 100644 --- a/test/decompiler/reference/jak1/decompiler-macros.gc +++ b/test/decompiler/reference/jak1/decompiler-macros.gc @@ -1633,3 +1633,10 @@ "Define a mips2c method." `(method-set! ,method-type ,method-id (__pc-get-mips2c ,name)) ) + +(defconstant DISPLAY_FPS_RATIO (/ (-> *display* time-factor) 5.0)) + +(defmacro launch-particles (&key (system *sp-particle-system-2d*) particle origin &key (launch-state (the-as sparticle-launch-state #f)) &key (launch-control (the-as sparticle-launch-control #f)) + &key (rate DISPLAY_FPS_RATIO)) + `(sp-launch-particles-var ,system ,particle ,origin ,launch-state ,launch-control ,rate) + ) diff --git a/test/decompiler/reference/jak1/engine/common-obs/generic-obs_REF.gc b/test/decompiler/reference/jak1/engine/common-obs/generic-obs_REF.gc index f1f440a8e5..541ba17f23 100644 --- a/test/decompiler/reference/jak1/engine/common-obs/generic-obs_REF.gc +++ b/test/decompiler/reference/jak1/engine/common-obs/generic-obs_REF.gc @@ -2516,14 +2516,7 @@ (dotimes (s4-1 3) (quaternion-rotate-local-z! s5-0 s5-0 10922.667) (quaternion-copy! *particle-quat* s5-0) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 2528) - gp-1 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2528) gp-1) ) ) ) diff --git a/test/decompiler/reference/jak1/engine/common-obs/water_REF.gc b/test/decompiler/reference/jak1/engine/common-obs/water_REF.gc index f3738d065e..9f817bff4c 100644 --- a/test/decompiler/reference/jak1/engine/common-obs/water_REF.gc +++ b/test/decompiler/reference/jak1/engine/common-obs/water_REF.gc @@ -50,14 +50,7 @@ (sp-kill-particle arg0 arg1) (set-vector! s5-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) (sound-play "water-drop" :position (the-as symbol s5-0)) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 108) - s5-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 108) s5-0) ) ) 0 @@ -768,42 +761,14 @@ (set! (-> *part-id-table* 118 init-specs 1 initial-valuef) (* 0.0000036621095 f28-0)) (set! (-> *part-id-table* 118 init-specs 2 initial-valuef) (* 0.1 f28-0)) (set! (-> *part-id-table* 118 init-specs 13 initial-valuef) 0.7111111) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 118) - s4-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 118) s4-0) (set! (-> *part-id-table* 121 init-specs 1 initial-valuef) (* 0.000004150391 f28-0)) (set! (-> *part-id-table* 121 init-specs 18 initial-valuef) f30-1) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 121) - s4-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 121) s4-0) (when (< f28-0 4096.0) (set! (-> *part-id-table* 112 init-specs 4 random-rangef) (-> obj ripple-size)) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 112) - s4-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 115) - s4-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 112) s4-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 115) s4-0) ) ) ) @@ -826,23 +791,9 @@ (* 0.00012207031 (vector-xz-length (-> obj process root transv))) ) ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 110) - s4-1 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 110) s4-1) (set! (-> *part-id-table* 111 init-specs 16 initial-valuef) (-> obj surface-height)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 111) - s4-1 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 111) s4-1) ) ) (let ((f30-3 (- (+ (-> obj base-height) (-> obj ocean-offset) (-> obj bob-offset) (-> obj align-offset)) @@ -1030,14 +981,7 @@ (set! (-> *part-id-table* 145 init-specs 8 initial-valuef) (* 0.05 (- (-> a2-15 x) (-> obj drip-old-pos x)))) (set! (-> *part-id-table* 145 init-specs 9 initial-valuef) (* 0.05 (- (-> a2-15 y) (-> obj drip-old-pos y)))) (set! (-> *part-id-table* 145 init-specs 10 initial-valuef) (* 0.05 (- (-> a2-15 z) (-> obj drip-old-pos z)))) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 145) - a2-15 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 145) a2-15) ) (set! (-> obj drip-time) (-> *display* base-frame-counter)) (logclear! (-> obj flags) (water-flags wt15)) diff --git a/test/decompiler/reference/jak1/engine/game/effect-control_REF.gc b/test/decompiler/reference/jak1/engine/game/effect-control_REF.gc index 50acb72ee3..b953a283bb 100644 --- a/test/decompiler/reference/jak1/engine/game/effect-control_REF.gc +++ b/test/decompiler/reference/jak1/engine/game/effect-control_REF.gc @@ -432,13 +432,9 @@ arg1 s5-0 ) - (sp-launch-particles-var - *sp-particle-system-2d* + (launch-particles (the-as sparticle-launcher s3-0) (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj process node-list data s5-0)) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 ) ) ((= (-> (the-as basic s3-0) type) sparticle-launch-group) diff --git a/test/decompiler/reference/jak1/engine/game/powerups_REF.gc b/test/decompiler/reference/jak1/engine/game/powerups_REF.gc index a07c0748e0..0d33286a2b 100644 --- a/test/decompiler/reference/jak1/engine/game/powerups_REF.gc +++ b/test/decompiler/reference/jak1/engine/game/powerups_REF.gc @@ -525,23 +525,9 @@ ;; definition for function eco-blue-glow ;; INFO: Return type mismatch int vs none. (defun eco-blue-glow ((arg0 vector)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 255) - arg0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 255) arg0) (if (rand-vu-percent? 0.5) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 257) - arg0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 257) arg0) ) 0 (none) @@ -568,45 +554,29 @@ ) ) (let ((gp-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 74)))) - (if (and (< (fabs - (vector-dot - (-> self control dynam gravity-normal) - (vector-! (new 'stack-no-clear 'vector) gp-0 (-> self control trans)) - ) - ) + (if (and (< (fabs (vector-dot + (-> self control dynam gravity-normal) + (vector-! (new 'stack-no-clear 'vector) gp-0 (-> self control trans)) + ) + ) 819.2 ) (rand-vu-percent? 0.5) ) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 2391) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2391) gp-0) ) ) (let ((gp-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 70)))) - (if (and (< (fabs - (vector-dot - (-> self control dynam gravity-normal) - (vector-! (new 'stack-no-clear 'vector) gp-1 (-> self control trans)) - ) - ) + (if (and (< (fabs (vector-dot + (-> self control dynam gravity-normal) + (vector-! (new 'stack-no-clear 'vector) gp-1 (-> self control trans)) + ) + ) 819.2 ) (rand-vu-percent? 0.5) ) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 2391) - gp-1 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2391) gp-1) ) ) (let ((f0-8 (lerp-scale 60.0 90.0 (-> self control unknown-float01) 0.0 81920.0))) @@ -679,28 +649,20 @@ (((pickup-type eco-yellow)) (change-sound! (-> self sound) (static-sound-name "yel-eco-jak")) (let ((s4-0 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) - (sp-launch-particles-var - *sp-particle-system-2d* + (launch-particles (-> *part-id-table* (if (rand-vu-percent? 0.5) 269 270 ) ) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data s4-0)) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 ) ) (dotimes (gp-4 2) (let ((v1-111 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) - (sp-launch-particles-var - *sp-particle-system-2d* + (launch-particles (-> *part-id-table* 271) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-111)) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 ) ) ) @@ -717,28 +679,20 @@ (update-transforms! (-> self control)) (change-sound! (-> self sound) (static-sound-name "red-eco-jak")) (let ((s4-2 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) - (sp-launch-particles-var - *sp-particle-system-2d* + (launch-particles (-> *part-id-table* (if (rand-vu-percent? 0.5) 273 274 ) ) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data s4-2)) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 ) ) (dotimes (gp-6 2) (let ((v1-139 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) - (sp-launch-particles-var - *sp-particle-system-2d* + (launch-particles (-> *part-id-table* 275) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-139)) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 ) ) ) @@ -758,47 +712,31 @@ (set! (-> *part-id-table* 259 init-specs 4 random-rangef) 16384.0) ) ) - (sp-launch-particles-var - *sp-particle-system-2d* + (launch-particles (-> *part-id-table* 259) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-150)) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 ) ) (let ((gp-8 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) - (sp-launch-particles-var - *sp-particle-system-2d* + (launch-particles (-> *part-id-table* (if (rand-vu-percent? 0.5) 255 256 ) ) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data gp-8)) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 ) (if (rand-vu-percent? 0.5) - (sp-launch-particles-var - *sp-particle-system-2d* + (launch-particles (-> *part-id-table* 257) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data gp-8)) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 ) ) ) (let ((v1-168 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) - (sp-launch-particles-var - *sp-particle-system-2d* + (launch-particles (-> *part-id-table* 260) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-168)) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 ) ) (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 1 (seconds 0.1)) @@ -806,28 +744,20 @@ (((pickup-type eco-green)) (change-sound! (-> self sound) (static-sound-name "green-eco-jak")) (let ((s4-8 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) - (sp-launch-particles-var - *sp-particle-system-2d* + (launch-particles (-> *part-id-table* (if (rand-vu-percent? 0.5) 277 278 ) ) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data s4-8)) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 ) ) (dotimes (gp-11 2) (let ((v1-188 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) - (sp-launch-particles-var - *sp-particle-system-2d* + (launch-particles (-> *part-id-table* 279) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-188)) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 ) ) ) diff --git a/test/decompiler/reference/jak1/engine/gfx/mood/weather-part_REF.gc b/test/decompiler/reference/jak1/engine/gfx/mood/weather-part_REF.gc index 70761bd246..8ff679205a 100644 --- a/test/decompiler/reference/jak1/engine/gfx/mood/weather-part_REF.gc +++ b/test/decompiler/reference/jak1/engine/gfx/mood/weather-part_REF.gc @@ -373,22 +373,8 @@ (set! (-> *part-id-table* 33 init-specs 19 initial-valuef) (+ 32768.0 (vector-y-angle (-> arg0 control transv))) ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 34) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 33) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 34) gp-0) + (launch-particles (-> *part-id-table* 33) gp-0) ) 0 (none) @@ -481,22 +467,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 39) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 40) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 39) gp-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 40) gp-0) ) ) (none) @@ -531,22 +503,8 @@ (set! (-> *part-id-table* 38 init-specs 5 initial-valuef) f30-0) (set! (-> *part-id-table* 38 init-specs 5 random-rangef) f30-0) ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 37) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 38) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 37) gp-0) + (launch-particles (-> *part-id-table* 38) gp-0) ) ) 0 @@ -727,7 +685,3 @@ (:func 'sparticle-track-sun) ) ) - - - - diff --git a/test/decompiler/reference/jak1/engine/gfx/sprite/sparticle/sparticle-launcher_REF.gc b/test/decompiler/reference/jak1/engine/gfx/sprite/sparticle/sparticle-launcher_REF.gc index df67f9c0c2..66cb3fcadd 100644 --- a/test/decompiler/reference/jak1/engine/gfx/sprite/sparticle/sparticle-launcher_REF.gc +++ b/test/decompiler/reference/jak1/engine/gfx/sprite/sparticle/sparticle-launcher_REF.gc @@ -694,14 +694,7 @@ (when (> (-> gp-0 in-use) 0) (dotimes (s5-0 (-> gp-0 in-use)) (let ((v1-4 (-> gp-0 queue s5-0))) - (sp-launch-particles-var - (-> v1-4 sp-system) - (-> v1-4 sp-launcher) - (-> v1-4 pos) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system (-> v1-4 sp-system) (-> v1-4 sp-launcher) (-> v1-4 pos)) ) ) (set! (-> gp-0 in-use) 0) @@ -1063,16 +1056,16 @@ (set! (-> a3-0 spawn-time) (the-as uint s4-0)) (logior! (-> a3-0 flags) (sp-launch-state-flags particles-active)) (if (< 0.0 f0-2) - (sp-launch-particles-var - (if (logtest? (-> v1-29 flags) (sp-group-item-flag is-3d)) + (launch-particles + :system (if (logtest? (-> v1-29 flags) (sp-group-item-flag is-3d)) *sp-particle-system-3d* *sp-particle-system-2d* ) a1-4 (-> a3-0 origin) - a3-0 - obj - f0-2 + :launch-state a3-0 + :launch-control obj + :rate f0-2 ) ) ) @@ -1124,16 +1117,16 @@ (set! (-> a3-0 spawn-time) (the-as uint s4-0)) (logior! (-> a3-0 flags) (sp-launch-state-flags particles-active)) (if (< 0.0 f0-4) - (sp-launch-particles-var - (if (logtest? (-> v1-29 flags) (sp-group-item-flag is-3d)) + (launch-particles + :system (if (logtest? (-> v1-29 flags) (sp-group-item-flag is-3d)) *sp-particle-system-3d* *sp-particle-system-2d* ) a1-4 (-> a3-0 origin) - a3-0 - obj - f0-4 + :launch-state a3-0 + :launch-control obj + :rate f0-4 ) ) ) @@ -1326,7 +1319,3 @@ 0 (none) ) - - - - diff --git a/test/decompiler/reference/jak1/engine/target/target-part_REF.gc b/test/decompiler/reference/jak1/engine/target/target-part_REF.gc index c58f29a04a..af33eda41c 100644 --- a/test/decompiler/reference/jak1/engine/target/target-part_REF.gc +++ b/test/decompiler/reference/jak1/engine/target/target-part_REF.gc @@ -2294,21 +2294,13 @@ ) ) ) - (let ((a2-3 - (process-drawable-random-point! - (the-as process-drawable (ppointer->process s4-1)) - (new 'stack-no-clear 'vector) - ) - ) + (let ((a2-3 (process-drawable-random-point! + (the-as process-drawable (ppointer->process s4-1)) + (new 'stack-no-clear 'vector) + ) + ) ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2002) - a2-3 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - (the-as float 1.0) - ) + (launch-particles (-> *part-id-table* 2002) a2-3 :rate (the-as float 1.0)) ) (suspend) 0 diff --git a/test/decompiler/reference/jak1/levels/beach/beach-part_REF.gc b/test/decompiler/reference/jak1/levels/beach/beach-part_REF.gc index 57d07c6cb3..115bf59a75 100644 --- a/test/decompiler/reference/jak1/levels/beach/beach-part_REF.gc +++ b/test/decompiler/reference/jak1/levels/beach/beach-part_REF.gc @@ -101,24 +101,10 @@ (f0-0 (vector-vector-distance (-> self root trans) gp-0)) ) (if (or (< (-> gp-0 y) (-> self root trans y)) (< 122880.0 f0-0)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 666) - (-> self root trans) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 666) (-> self root trans)) ) ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 668) - (-> self root trans) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 668) (-> self root trans)) ) (suspend) ) diff --git a/test/decompiler/reference/jak1/levels/beach/lurkerworm_REF.gc b/test/decompiler/reference/jak1/levels/beach/lurkerworm_REF.gc index cdb17baa6c..9ab21a5f23 100644 --- a/test/decompiler/reference/jak1/levels/beach/lurkerworm_REF.gc +++ b/test/decompiler/reference/jak1/levels/beach/lurkerworm_REF.gc @@ -268,44 +268,16 @@ ;; INFO: Return type mismatch int vs none. (defmethod particle-effect lurkerworm ((obj lurkerworm)) (let ((a2-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 5)))) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 661) - a2-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 661) a2-0) ) (let ((a2-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 6)))) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 661) - a2-1 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 661) a2-1) ) (let ((a2-2 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 7)))) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 661) - a2-2 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 661) a2-2) ) (let ((a2-3 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 8)))) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 661) - a2-3 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 661) a2-3) ) 0 (none) diff --git a/test/decompiler/reference/jak1/levels/citadel/citadel-part_REF.gc b/test/decompiler/reference/jak1/levels/citadel/citadel-part_REF.gc index 39f51dfcf6..4f104c676e 100644 --- a/test/decompiler/reference/jak1/levels/citadel/citadel-part_REF.gc +++ b/test/decompiler/reference/jak1/levels/citadel/citadel-part_REF.gc @@ -69,22 +69,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg2 y) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2882) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - (the-as float 1.0) - ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2883) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - (the-as float 1.0) - ) + (launch-particles (-> *part-id-table* 2882) gp-0 :rate (the-as float 1.0)) + (launch-particles (-> *part-id-table* 2883) gp-0 :rate (the-as float 1.0)) ) ) (none) diff --git a/test/decompiler/reference/jak1/levels/citadel/citadel-sages_REF.gc b/test/decompiler/reference/jak1/levels/citadel/citadel-sages_REF.gc index c09f2656e5..50dce25485 100644 --- a/test/decompiler/reference/jak1/levels/citadel/citadel-sages_REF.gc +++ b/test/decompiler/reference/jak1/levels/citadel/citadel-sages_REF.gc @@ -67,14 +67,7 @@ ) (dotimes (s2-2 12) (vector-matrix*! s5-0 (-> self bar-array s2-2) gp-0) - (sp-launch-particles-var - s3-1 - s4-1 - s5-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system s3-1 s4-1 s5-0) ) ) ) diff --git a/test/decompiler/reference/jak1/levels/citadel/citb-plat_REF.gc b/test/decompiler/reference/jak1/levels/citadel/citb-plat_REF.gc index fe6ab74c25..46c2c86e24 100644 --- a/test/decompiler/reference/jak1/levels/citadel/citb-plat_REF.gc +++ b/test/decompiler/reference/jak1/levels/citadel/citb-plat_REF.gc @@ -1029,14 +1029,7 @@ (dotimes (s5-0 16) (quaternion-rotate-local-z! gp-0 gp-0 2048.0) (quaternion-copy! *particle-quat* gp-0) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 2541) - (-> self blast-pos) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2541) (-> self blast-pos)) ) ) (spawn (-> self part) (-> self blast-pos)) diff --git a/test/decompiler/reference/jak1/levels/finalboss/light-eco_REF.gc b/test/decompiler/reference/jak1/levels/finalboss/light-eco_REF.gc index fbb2e0f423..576d2f2205 100644 --- a/test/decompiler/reference/jak1/levels/finalboss/light-eco_REF.gc +++ b/test/decompiler/reference/jak1/levels/finalboss/light-eco_REF.gc @@ -220,22 +220,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg2 y) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2904) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2905) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 2904) gp-0) + (launch-particles (-> *part-id-table* 2905) gp-0) ) ) (none) @@ -362,22 +348,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg2 y) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2910) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2911) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 2910) gp-0) + (launch-particles (-> *part-id-table* 2911) gp-0) ) ) (none) diff --git a/test/decompiler/reference/jak1/levels/finalboss/sage-finalboss-part_REF.gc b/test/decompiler/reference/jak1/levels/finalboss/sage-finalboss-part_REF.gc index 60725c9641..2ddcef2bc9 100644 --- a/test/decompiler/reference/jak1/levels/finalboss/sage-finalboss-part_REF.gc +++ b/test/decompiler/reference/jak1/levels/finalboss/sage-finalboss-part_REF.gc @@ -366,22 +366,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg2 y) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2933) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2934) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 2933) gp-0) + (launch-particles (-> *part-id-table* 2934) gp-0) ) ) (none) @@ -1094,22 +1080,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg2 y) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2962) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2963) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 2962) gp-0) + (launch-particles (-> *part-id-table* 2963) gp-0) ) ) (none) diff --git a/test/decompiler/reference/jak1/levels/jungle/darkvine_REF.gc b/test/decompiler/reference/jak1/levels/jungle/darkvine_REF.gc index 9b29db7ec0..01439f379a 100644 --- a/test/decompiler/reference/jak1/levels/jungle/darkvine_REF.gc +++ b/test/decompiler/reference/jak1/levels/jungle/darkvine_REF.gc @@ -228,14 +228,7 @@ (ja-channel-push! 1 (seconds 0.15)) (ja-no-eval :group! darkvine-retreat-ja :num! (seek!) :frame-num 0.0) (until (ja-done? 0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 800) - (-> self root-override trans) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 800) (-> self root-override trans)) (suspend) (ja :num! (seek!)) ) diff --git a/test/decompiler/reference/jak1/levels/jungle/fisher_REF.gc b/test/decompiler/reference/jak1/levels/jungle/fisher_REF.gc index 44a5608ee2..c1c514c9d7 100644 --- a/test/decompiler/reference/jak1/levels/jungle/fisher_REF.gc +++ b/test/decompiler/reference/jak1/levels/jungle/fisher_REF.gc @@ -932,14 +932,7 @@ (set! (-> *part-id-table* 118 init-specs 1 initial-valuef) 0.05) (set! (-> *part-id-table* 118 init-specs 2 initial-valuef) 0.0) (set! (-> *part-id-table* 118 init-specs 13 initial-valuef) 0.35555556) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 118) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 118) gp-0) ) 0 (none) @@ -1836,42 +1829,14 @@ (when (-> self training) (let ((gp-0 (new-stack-vector0))) (vector<-cspace! gp-0 (-> self node-list data 74)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2001) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 2001) gp-0) (fisher-fish-water gp-0 (+ 32768.0 (vector-y-angle (-> self node-list data 75 bone transform vector 1)))) (vector<-cspace! gp-0 (-> self node-list data 77)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2001) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 2001) gp-0) (fisher-fish-water gp-0 (+ 32768.0 (vector-y-angle (-> self node-list data 78 bone transform vector 1)))) (vector<-cspace! gp-0 (-> self node-list data 80)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 828) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2013) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 828) gp-0) + (launch-particles (-> *part-id-table* 2013) gp-0) (fisher-fish-water gp-0 (+ 32768.0 (vector-y-angle (-> self node-list data 80 bone transform vector 1)))) ) ) diff --git a/test/decompiler/reference/jak1/levels/jungle/jungle-mirrors_REF.gc b/test/decompiler/reference/jak1/levels/jungle/jungle-mirrors_REF.gc index 3ebd679b41..529ef546b1 100644 --- a/test/decompiler/reference/jak1/levels/jungle/jungle-mirrors_REF.gc +++ b/test/decompiler/reference/jak1/levels/jungle/jungle-mirrors_REF.gc @@ -1103,14 +1103,7 @@ (when (periscope-has-power-input?) (update! (-> self sound)) (if (logtest? (-> self draw status) (draw-status was-drawn)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 825) - (-> self reflector-trans) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 825) (-> self reflector-trans)) ) ) 0 @@ -1963,14 +1956,7 @@ (draw-power-beam gp-0 (-> self beam-end)) (update! (-> self sound)) (when (logtest? (-> self draw status) (draw-status was-drawn)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 825) - (-> self beam-end) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 825) (-> self beam-end)) (when (and *target* (>= 24576.0 (vector-vector-distance (-> self root-override trans) (-> *target* control trans)))) (start-hint-timer (text-id sidekick-hint-reflector-mirror)) (level-hint-spawn diff --git a/test/decompiler/reference/jak1/levels/maincave/maincave-obs_REF.gc b/test/decompiler/reference/jak1/levels/maincave/maincave-obs_REF.gc index 3eece9d7c2..dfcfb9cae1 100644 --- a/test/decompiler/reference/jak1/levels/maincave/maincave-obs_REF.gc +++ b/test/decompiler/reference/jak1/levels/maincave/maincave-obs_REF.gc @@ -537,22 +537,8 @@ (cond ((< gp-0 a0-1) (when (sphere-in-view-frustum? (the-as sphere (-> self root-override root-prim prim-core))) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 704) - (the-as vector (-> self launch-pos)) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 705) - (the-as vector (&-> self stack 112)) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 704) (the-as vector (-> self launch-pos))) + (launch-particles (-> *part-id-table* 705) (the-as vector (&-> self stack 112))) ) (when (-> self should-play-sound?) (set! (-> self should-play-sound?) #f) diff --git a/test/decompiler/reference/jak1/levels/maincave/maincave-part_REF.gc b/test/decompiler/reference/jak1/levels/maincave/maincave-part_REF.gc index ab1e6c17c6..0eb35ab8ee 100644 --- a/test/decompiler/reference/jak1/levels/maincave/maincave-part_REF.gc +++ b/test/decompiler/reference/jak1/levels/maincave/maincave-part_REF.gc @@ -320,22 +320,8 @@ (sound-play "water-drop") ) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2231) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 2232) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 2231) gp-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2232) gp-0) ) ) (none) diff --git a/test/decompiler/reference/jak1/levels/misty/misty-obs_REF.gc b/test/decompiler/reference/jak1/levels/misty/misty-obs_REF.gc index d6b87b89d3..a4addc44d5 100644 --- a/test/decompiler/reference/jak1/levels/misty/misty-obs_REF.gc +++ b/test/decompiler/reference/jak1/levels/misty/misty-obs_REF.gc @@ -1484,14 +1484,7 @@ (defstate breakaway-about-to-fall (breakaway) :code (behavior () (sound-play "falling-bones") - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 281) - (-> self root-override trans) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 281) (-> self root-override trans)) (let ((gp-1 #f) (s5-1 (-> *display* base-frame-counter)) ) diff --git a/test/decompiler/reference/jak1/levels/misty/muse_REF.gc b/test/decompiler/reference/jak1/levels/misty/muse_REF.gc index 11906699ff..fbe80e6113 100644 --- a/test/decompiler/reference/jak1/levels/misty/muse_REF.gc +++ b/test/decompiler/reference/jak1/levels/misty/muse_REF.gc @@ -176,13 +176,9 @@ (defmethod nav-enemy-method-51 muse ((obj muse)) (dotimes (s5-0 2) (let ((v1-2 (rand-vu-int-range 3 (+ (-> obj node-list length) -1)))) - (sp-launch-particles-var - *sp-particle-system-2d* + (launch-particles (-> *part-id-table* 271) (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data v1-2)) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 ) ) ) diff --git a/test/decompiler/reference/jak1/levels/racer_common/racer-states_REF.gc b/test/decompiler/reference/jak1/levels/racer_common/racer-states_REF.gc index 48eb01b260..b77ae1ad33 100644 --- a/test/decompiler/reference/jak1/levels/racer_common/racer-states_REF.gc +++ b/test/decompiler/reference/jak1/levels/racer_common/racer-states_REF.gc @@ -395,14 +395,7 @@ ) (when (>= (-> self control unknown-float01) 40960.0) (set! (-> *part-id-table* 2225 init-specs 1 initial-valuef) 100.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2225) - (-> self control trans) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 2225) (-> self control trans)) ) (target-land-effect) (when (and (>= (-> self control ground-impact-vel) 61440.0) (zero? (-> self racer bounce))) diff --git a/test/decompiler/reference/jak1/levels/racer_common/target-racer_REF.gc b/test/decompiler/reference/jak1/levels/racer_common/target-racer_REF.gc index 457cabc494..617ef81ebe 100644 --- a/test/decompiler/reference/jak1/levels/racer_common/target-racer_REF.gc +++ b/test/decompiler/reference/jak1/levels/racer_common/target-racer_REF.gc @@ -671,13 +671,10 @@ (when (< 0.0 (-> *part-id-table* 2212 init-specs 11 initial-valuef)) (set! (-> *part-id-table* 2212 init-specs 14 initial-valuef) (the-as float gp-0)) (set! (-> *part-id-table* 2212 init-specs 3 initial-valuef) 15155.2) - (sp-launch-particles-var - *sp-particle-system-3d* + (launch-particles + :system *sp-particle-system-3d* (-> *part-id-table* 2212) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self manipy 0 node-list data 4)) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 ) ) ) @@ -691,13 +688,10 @@ (when (< 0.0 (-> *part-id-table* 2212 init-specs 11 initial-valuef)) (set! (-> *part-id-table* 2212 init-specs 14 initial-valuef) (the-as float gp-2)) (set! (-> *part-id-table* 2212 init-specs 3 initial-valuef) 10240.0) - (sp-launch-particles-var - *sp-particle-system-3d* + (launch-particles + :system *sp-particle-system-3d* (-> *part-id-table* 2212) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self manipy 0 node-list data 10)) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 ) ) ) @@ -717,22 +711,8 @@ (set! (-> *part-id-table* 2275 init-specs 19 initial-valuef) (+ 49152.0 f1-3)) (set! (-> *part-id-table* 2275 init-specs 1 initial-valuef) (* 0.0000036621095 f0-17)) (set! (-> *part-id-table* 2275 init-specs 2 initial-valuef) (* 0.1 f0-17)) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 2275) - s4-2 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 2276) - s4-2 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2275) s4-2) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2276) s4-2) ) ) (-> *part-id-table* 2208) @@ -774,16 +754,13 @@ ) (set! (-> s5-2 y) (-> self control shadow-pos y)) (if (nonzero? a1-13) - (sp-launch-particles-var - (if gp-4 + (launch-particles + :system (if gp-4 *sp-particle-system-3d* *sp-particle-system-2d* ) a1-13 s5-2 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 ) ) ) @@ -811,16 +788,13 @@ ) (set! (-> a2-7 y) (-> self control shadow-pos y)) (if (nonzero? s5-3) - (sp-launch-particles-var - (if gp-5 + (launch-particles + :system (if gp-5 *sp-particle-system-3d* *sp-particle-system-2d* ) (the-as sparticle-launcher s5-3) a2-7 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 ) ) ) @@ -936,13 +910,9 @@ (when (!= (-> self racer boost-output) 0.0) (dotimes (gp-7 8) (let ((v1-258 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) - (sp-launch-particles-var - *sp-particle-system-2d* + (launch-particles (-> *part-id-table* 2229) (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-258)) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 ) ) ) @@ -968,14 +938,7 @@ ) ) ) - (sp-launch-particles-var - *sp-particle-system-2d* - a1-54 - gp-8 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles a1-54 gp-8) ) (cpad-set-buzz! (-> *cpad-list* cpads 0) 0 51 (seconds 0.05)) (sound-play-by-name @@ -999,21 +962,13 @@ (sound-play "warning") ) (when (rand-vu-percent? (/ (-> self racer heat) (-> *RACER-bank* heat-max))) - (let ((a2-28 - (process-drawable-random-point! - (the-as process-drawable (ppointer->process (-> self manipy))) - (new 'stack-no-clear 'vector) - ) - ) + (let ((a2-28 (process-drawable-random-point! + (the-as process-drawable (ppointer->process (-> self manipy))) + (new 'stack-no-clear 'vector) + ) + ) ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2227) - a2-28 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 2227) a2-28) ) ) 0 diff --git a/test/decompiler/reference/jak1/levels/rolling/rolling-lightning-mole_REF.gc b/test/decompiler/reference/jak1/levels/rolling/rolling-lightning-mole_REF.gc index 76b6d265db..2390cb87c4 100644 --- a/test/decompiler/reference/jak1/levels/rolling/rolling-lightning-mole_REF.gc +++ b/test/decompiler/reference/jak1/levels/rolling/rolling-lightning-mole_REF.gc @@ -1240,14 +1240,7 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 1771) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 1771) gp-0) ) ) (none) @@ -1262,14 +1255,7 @@ (sound-play "land-grass") ) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 1772) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 1772) gp-0) ) ) (none) diff --git a/test/decompiler/reference/jak1/levels/sunken/orbit-plat_REF.gc b/test/decompiler/reference/jak1/levels/sunken/orbit-plat_REF.gc index 3674f1e9bb..a124841b60 100644 --- a/test/decompiler/reference/jak1/levels/sunken/orbit-plat_REF.gc +++ b/test/decompiler/reference/jak1/levels/sunken/orbit-plat_REF.gc @@ -173,14 +173,7 @@ ) (set! (-> *part-id-table* 1717 init-specs 1 random-rangef) (* 0.000009494358 f30-0)) ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 1717) - arg0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 1717) arg0) 0 (none) ) diff --git a/test/decompiler/reference/jak1/levels/sunken/sun-exit-chamber_REF.gc b/test/decompiler/reference/jak1/levels/sunken/sun-exit-chamber_REF.gc index 0bb986bf2d..e3026af99d 100644 --- a/test/decompiler/reference/jak1/levels/sunken/sun-exit-chamber_REF.gc +++ b/test/decompiler/reference/jak1/levels/sunken/sun-exit-chamber_REF.gc @@ -640,14 +640,7 @@ (vector-matrix*! gp-0 gp-0 s4-0) (vector-float*! gp-0 gp-0 (/ 1.0 (-> gp-0 w))) (set! (-> *part-id-table* 2515 init-specs 13 initial-valuef) (+ 24576.0 (-> gp-0 y))) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 2515) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 2515) gp-0) ) (none) ) diff --git a/test/decompiler/reference/jak1/levels/sunken/sunken-water_REF.gc b/test/decompiler/reference/jak1/levels/sunken/sunken-water_REF.gc index b9597b1848..0778bfdbb0 100644 --- a/test/decompiler/reference/jak1/levels/sunken/sunken-water_REF.gc +++ b/test/decompiler/reference/jak1/levels/sunken/sunken-water_REF.gc @@ -96,14 +96,7 @@ ) (set! (-> gp-0 vertex-skip) 128) (dotimes (s5-0 (-> gp-0 vertex-count)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 1736) - (-> gp-0 data s5-0) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 1736) (-> gp-0 data s5-0)) ) ) #f diff --git a/test/decompiler/reference/jak1/levels/training/training-part_REF.gc b/test/decompiler/reference/jak1/levels/training/training-part_REF.gc index c531ef456f..8f623b0b5c 100644 --- a/test/decompiler/reference/jak1/levels/training/training-part_REF.gc +++ b/test/decompiler/reference/jak1/levels/training/training-part_REF.gc @@ -308,22 +308,8 @@ (sound-play "water-drop") ) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 763) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 764) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 763) gp-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 764) gp-0) ) ) (none) diff --git a/test/decompiler/reference/jak1/levels/village1/assistant_REF.gc b/test/decompiler/reference/jak1/levels/village1/assistant_REF.gc index 9377740788..baf9ceb703 100644 --- a/test/decompiler/reference/jak1/levels/village1/assistant_REF.gc +++ b/test/decompiler/reference/jak1/levels/village1/assistant_REF.gc @@ -373,14 +373,7 @@ (sound-play "water-drop") ) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 367) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 367) gp-0) ) ) (none) diff --git a/test/decompiler/reference/jak1/levels/village1/fishermans-boat_REF.gc b/test/decompiler/reference/jak1/levels/village1/fishermans-boat_REF.gc index 1402b8f697..9ab91be84f 100644 --- a/test/decompiler/reference/jak1/levels/village1/fishermans-boat_REF.gc +++ b/test/decompiler/reference/jak1/levels/village1/fishermans-boat_REF.gc @@ -799,14 +799,7 @@ (set! (-> *part-id-table* 2896 init-specs 19 initial-valuef) (+ 49152.0 arg1)) (set! (-> *part-id-table* 2896 init-specs 1 initial-valuef) (* 0.0000036621095 arg2)) (set! (-> *part-id-table* 2896 init-specs 2 initial-valuef) (* 0.1 arg2)) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 2896) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2896) gp-0) ) 0 (none) diff --git a/test/decompiler/reference/jak1/levels/village1/village1-part2_REF.gc b/test/decompiler/reference/jak1/levels/village1/village1-part2_REF.gc index b6f94c49ed..3d8a6ebfc4 100644 --- a/test/decompiler/reference/jak1/levels/village1/village1-part2_REF.gc +++ b/test/decompiler/reference/jak1/levels/village1/village1-part2_REF.gc @@ -1638,22 +1638,8 @@ (sound-play "water-drop") ) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 502) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - (the-as float 1.0) - ) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 503) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - (the-as float 1.0) - ) + (launch-particles (-> *part-id-table* 502) gp-0 :rate (the-as float 1.0)) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 503) gp-0 :rate (the-as float 1.0)) ) ) (none) diff --git a/test/decompiler/reference/jak1/levels/village1/village1-part_REF.gc b/test/decompiler/reference/jak1/levels/village1/village1-part_REF.gc index 7964d781c0..6c0a0b4f53 100644 --- a/test/decompiler/reference/jak1/levels/village1/village1-part_REF.gc +++ b/test/decompiler/reference/jak1/levels/village1/village1-part_REF.gc @@ -1271,22 +1271,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 434) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - (the-as float 1.0) - ) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 435) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - (the-as float 1.0) - ) + (launch-particles (-> *part-id-table* 434) gp-0 :rate (the-as float 1.0)) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 435) gp-0 :rate (the-as float 1.0)) ) ) (none) diff --git a/test/decompiler/reference/jak1/levels/village2/assistant-village2_REF.gc b/test/decompiler/reference/jak1/levels/village2/assistant-village2_REF.gc index eb413e55ae..0e524e5820 100644 --- a/test/decompiler/reference/jak1/levels/village2/assistant-village2_REF.gc +++ b/test/decompiler/reference/jak1/levels/village2/assistant-village2_REF.gc @@ -709,14 +709,7 @@ (sound-play "water-drop") ) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 1324) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 1324) gp-0) ) ) (none) diff --git a/test/decompiler/reference/jak1/levels/village2/swamp-blimp_REF.gc b/test/decompiler/reference/jak1/levels/village2/swamp-blimp_REF.gc index 1e09db833e..7db9e4daab 100644 --- a/test/decompiler/reference/jak1/levels/village2/swamp-blimp_REF.gc +++ b/test/decompiler/reference/jak1/levels/village2/swamp-blimp_REF.gc @@ -1198,14 +1198,7 @@ (let ((a2-1 (new 'static 'vector))) (set! (-> a2-1 quad) (-> self root-override trans quad)) (set! (-> a2-1 y) 0.0) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 2017) - a2-1 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2017) a2-1) ) ) (none) diff --git a/test/decompiler/reference/jak1/levels/village2/village2-part_REF.gc b/test/decompiler/reference/jak1/levels/village2/village2-part_REF.gc index 7684bf5a92..2ea3943ba9 100644 --- a/test/decompiler/reference/jak1/levels/village2/village2-part_REF.gc +++ b/test/decompiler/reference/jak1/levels/village2/village2-part_REF.gc @@ -1929,14 +1929,7 @@ (sound-play "water-drop") ) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 1207) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - (the-as float 1.0) - ) + (launch-particles (-> *part-id-table* 1207) gp-0 :rate (the-as float 1.0)) ) ) (none) diff --git a/test/decompiler/reference/jak2/decompiler-macros.gc b/test/decompiler/reference/jak2/decompiler-macros.gc index 6d0b0f572f..7a5e0d62ad 100644 --- a/test/decompiler/reference/jak2/decompiler-macros.gc +++ b/test/decompiler/reference/jak2/decompiler-macros.gc @@ -1576,6 +1576,38 @@ `(-> PP clock frame-counter) ) +(defmacro seconds-per-frame () + `(-> PP clock seconds-per-frame) + ) + +(defmacro launch-particles (&key (system *sp-particle-system-2d*) + particle + origin + &key (launch-state (the-as sparticle-launch-state #f)) + &key (launch-control (the-as sparticle-launch-control #f)) + &key (rate 1.0) + &key (origin-is-matrix #f)) + (if origin-is-matrix + `(sp-launch-particles-var + ,system + ,particle + (the matrix ,origin) + ,launch-state + ,launch-control + ,rate #|(if (= (get-video-mode) 'custom) (/ (-> *display* time-factor) 5.0) ,rate)|#) + `(begin + (vector-copy! (-> *launch-matrix* trans) (the vector ,origin)) + (sp-launch-particles-var + ,system + ,particle + *launch-matrix* + ,launch-state + ,launch-control + ,rate #|(if (= (get-video-mode) 'custom) (/ (-> *display* time-factor) 5.0) ,rate)|#) + ) + ) + ) + (defconstant TASK_MANAGER_INIT_HOOK 0) (defconstant TASK_MANAGER_CLEANUP_HOOK 1) (defconstant TASK_MANAGER_UPDATE_HOOK 2) diff --git a/test/decompiler/reference/jak2/engine/ai/enemy_REF.gc b/test/decompiler/reference/jak2/engine/ai/enemy_REF.gc index 5632d847ec..9e70873be9 100644 --- a/test/decompiler/reference/jak2/engine/ai/enemy_REF.gc +++ b/test/decompiler/reference/jak2/engine/ai/enemy_REF.gc @@ -1048,7 +1048,7 @@ (defmethod enemy-method-111 enemy ((obj enemy)) (let ((v1-0 (-> obj root))) (when (logtest? (-> v1-0 status) (collide-status touch-surface)) - (let ((f0-1 (fmax 0.0 (+ 1.0 (* 60.0 (-> self clock seconds-per-frame) (+ -1.0 (-> obj enemy-info friction))))))) + (let ((f0-1 (fmax 0.0 (+ 1.0 (* 60.0 (seconds-per-frame) (+ -1.0 (-> obj enemy-info friction))))))) (vector-float*! (-> v1-0 transv) (-> v1-0 transv) f0-1) ) 0 @@ -2261,14 +2261,12 @@ This commonly includes things such as: ;; definition for method 47 of type enemy (defmethod enemy-method-47 enemy ((obj enemy) (arg0 vector)) - (with-pp - (let* ((f2-0 0.8) - (f0-1 (fmax 0.0 (+ 1.0 (* 60.0 (-> pp clock seconds-per-frame) (+ -1.0 f2-0))))) - ) - (vector-float*! arg0 arg0 f0-1) - ) - (set! (-> arg0 y) (+ (-> arg0 y) (* -204800.0 (-> pp clock seconds-per-frame)))) + (let* ((f2-0 0.8) + (f0-1 (fmax 0.0 (+ 1.0 (* 60.0 (seconds-per-frame) (+ -1.0 f2-0))))) + ) + (vector-float*! arg0 arg0 f0-1) ) + (set! (-> arg0 y) (+ (-> arg0 y) (* -204800.0 (seconds-per-frame)))) ) ;; definition for function enemy-die-falling-post @@ -3160,62 +3158,60 @@ This commonly includes things such as: ;; WARN: Return type mismatch vector vs symbol. (defmethod enemy-method-100 enemy ((obj enemy)) (local-vars (v0-1 vector)) - (with-pp - (when (not (-> obj enemy-info move-to-ground)) - (enemy-method-103 obj) - (return (the-as symbol #f)) - ) - (when (not (logtest? (enemy-flag directed) (-> obj enemy-flags))) - (let ((s5-0 (-> obj root))) - (if (focus-test? obj under-water) - (enemy-method-47 obj (-> s5-0 transv)) - (+! (-> s5-0 transv y) (* (-> obj enemy-info movement-gravity) (-> pp clock seconds-per-frame))) - ) - (let ((a2-0 (new 'stack-no-clear 'move-above-ground-params))) - (let ((v1-16 (-> obj enemy-info))) - (set! (-> a2-0 gnd-collide-with) (-> v1-16 recover-gnd-collide-with)) - (set! (-> a2-0 popup) 8192.0) - (set! (-> a2-0 dont-move-if-overlaps?) #t) - (set! (-> a2-0 hover-if-no-ground?) (-> v1-16 hover-if-no-ground)) - (set! (-> a2-0 overlaps-params options) (overlaps-others-options oo0 oo2)) - (set! (-> a2-0 overlaps-params collide-with-filter) (-> v1-16 overlaps-others-collide-with-filter)) - ) - (set! (-> a2-0 overlaps-params tlist) *touching-list*) - (-> a2-0 overlaps-params) - (enemy-method-128 obj (-> s5-0 transv) a2-0) + (when (not (-> obj enemy-info move-to-ground)) + (enemy-method-103 obj) + (return (the-as symbol #f)) + ) + (when (not (logtest? (enemy-flag directed) (-> obj enemy-flags))) + (let ((s5-0 (-> obj root))) + (if (focus-test? obj under-water) + (enemy-method-47 obj (-> s5-0 transv)) + (+! (-> s5-0 transv y) (* (-> obj enemy-info movement-gravity) (seconds-per-frame))) ) + (let ((a2-0 (new 'stack-no-clear 'move-above-ground-params))) + (let ((v1-16 (-> obj enemy-info))) + (set! (-> a2-0 gnd-collide-with) (-> v1-16 recover-gnd-collide-with)) + (set! (-> a2-0 popup) 8192.0) + (set! (-> a2-0 dont-move-if-overlaps?) #t) + (set! (-> a2-0 hover-if-no-ground?) (-> v1-16 hover-if-no-ground)) + (set! (-> a2-0 overlaps-params options) (overlaps-others-options oo0 oo2)) + (set! (-> a2-0 overlaps-params collide-with-filter) (-> v1-16 overlaps-others-collide-with-filter)) + ) + (set! (-> a2-0 overlaps-params tlist) *touching-list*) + (-> a2-0 overlaps-params) + (enemy-method-128 obj (-> s5-0 transv) a2-0) ) ) - (logclear! (-> obj enemy-flags) (enemy-flag directed)) - (if (and (enemy-method-102 obj) (not (logtest? (-> obj focus-status) (focus-status dead)))) - (kill-prefer-falling obj) + ) + (logclear! (-> obj enemy-flags) (enemy-flag directed)) + (if (and (enemy-method-102 obj) (not (logtest? (-> obj focus-status) (focus-status dead)))) + (kill-prefer-falling obj) + ) + (let ((s5-1 (-> obj root)) + (a1-2 (new 'stack-no-clear 'collide-query)) + (s3-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) ) - (let ((s5-1 (-> obj root)) - (a1-2 (new 'stack-no-clear 'collide-query)) - (s3-0 (new 'stack-no-clear 'vector)) - (s4-0 (new 'stack-no-clear 'vector)) - ) - (set! (-> s3-0 quad) (-> s5-1 gspot-pos quad)) - (set! (-> s4-0 quad) (-> s5-1 gspot-normal quad)) - (the-as symbol (cond - ((find-ground s5-1 a1-2 (-> obj enemy-info gnd-collide-with) 8192.0 81920.0 1024.0) - (let ((f0-4 (- (-> s5-1 trans y) (-> s5-1 gspot-pos y)))) - (when (>= 409.6 (fabs f0-4)) - (enemy-method-103 obj) - (return (the-as symbol #f)) - v0-1 - ) + (set! (-> s3-0 quad) (-> s5-1 gspot-pos quad)) + (set! (-> s4-0 quad) (-> s5-1 gspot-normal quad)) + (the-as symbol (cond + ((find-ground s5-1 a1-2 (-> obj enemy-info gnd-collide-with) 8192.0 81920.0 1024.0) + (let ((f0-4 (- (-> s5-1 trans y) (-> s5-1 gspot-pos y)))) + (when (>= 409.6 (fabs f0-4)) + (enemy-method-103 obj) + (return (the-as symbol #f)) + v0-1 ) ) - (else - (set! (-> s5-1 gspot-pos quad) (-> s3-0 quad)) - (set! v0-1 (-> s5-1 gspot-normal)) - (set! (-> v0-1 quad) (-> s4-0 quad)) - v0-1 - ) + ) + (else + (set! (-> s5-1 gspot-pos quad) (-> s3-0 quad)) + (set! v0-1 (-> s5-1 gspot-normal)) + (set! (-> v0-1 quad) (-> s4-0 quad)) + v0-1 ) - ) - ) + ) + ) ) ) diff --git a/test/decompiler/reference/jak2/engine/ambient/ambient_REF.gc b/test/decompiler/reference/jak2/engine/ambient/ambient_REF.gc index e0aa927efa..e25f5a780f 100644 --- a/test/decompiler/reference/jak2/engine/ambient/ambient_REF.gc +++ b/test/decompiler/reference/jak2/engine/ambient/ambient_REF.gc @@ -513,8 +513,8 @@ (not (paused?)) ) (if (logtest? (-> self message flags) 32) - (seek! (-> self interp) 1.0 (* 0.5 (-> self clock seconds-per-frame))) - (seek! (-> self interp) 1.0 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> self interp) 1.0 (* 0.5 (seconds-per-frame))) + (seek! (-> self interp) 1.0 (* 4.0 (seconds-per-frame))) ) (talker-method-17 self) ) @@ -524,8 +524,8 @@ (when (and (nonzero? (-> self message-id)) (logtest? (-> self message flags) 96)) (while (!= (-> self interp) 0.0) (if (logtest? (-> self message flags) 32) - (seek! (-> self interp) 0.0 (* 0.5 (-> self clock seconds-per-frame))) - (seek! (-> self interp) 0.0 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> self interp) 0.0 (* 0.5 (seconds-per-frame))) + (seek! (-> self interp) 0.0 (* 4.0 (seconds-per-frame))) ) (talker-method-17 self) (suspend) diff --git a/test/decompiler/reference/jak2/engine/anim/joint-exploder_REF.gc b/test/decompiler/reference/jak2/engine/anim/joint-exploder_REF.gc index daf99f1881..31cc2195e3 100644 --- a/test/decompiler/reference/jak2/engine/anim/joint-exploder_REF.gc +++ b/test/decompiler/reference/jak2/engine/anim/joint-exploder_REF.gc @@ -586,38 +586,36 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod integrate-and-kill joint-exploder ((obj joint-exploder) (arg0 joint-exploder-list)) - (with-pp - (set! (-> arg0 bbox-valid?) #f) - (set! (-> arg0 pre-moved?) #t) - (let ((s4-0 (-> obj joints)) - (f30-0 (* (-> obj tuning gravity) (-> pp clock seconds-per-frame))) - (s3-0 (-> arg0 head)) - ) - (while (>= s3-0 0) - (let* ((s2-0 (-> s4-0 joint s3-0)) - (s1-0 (-> s2-0 mat trans)) - ) - (set! (-> s2-0 prev-pos quad) (-> s1-0 quad)) - (+! (-> s2-0 transv y) f30-0) - (vector-v+! s1-0 s1-0 (-> s2-0 transv)) - (matrix*! (-> s2-0 rmat) (-> s2-0 rmat) (-> s2-0 update-rmat)) - (cond - ((or (< (-> s1-0 y) (-> obj die-if-below-y)) - (< (-> obj die-if-beyond-xz-dist-sqrd) (vector-vector-xz-distance s1-0 (-> obj root trans))) - ) - (set! s3-0 (remove-from-list-and-reset obj arg0 s3-0)) + (set! (-> arg0 bbox-valid?) #f) + (set! (-> arg0 pre-moved?) #t) + (let ((s4-0 (-> obj joints)) + (f30-0 (* (-> obj tuning gravity) (seconds-per-frame))) + (s3-0 (-> arg0 head)) + ) + (while (>= s3-0 0) + (let* ((s2-0 (-> s4-0 joint s3-0)) + (s1-0 (-> s2-0 mat trans)) ) - (else - (update-bbox-for-joint obj arg0 s2-0) - (set! s3-0 (-> s2-0 next)) - ) + (set! (-> s2-0 prev-pos quad) (-> s1-0 quad)) + (+! (-> s2-0 transv y) f30-0) + (vector-v+! s1-0 s1-0 (-> s2-0 transv)) + (matrix*! (-> s2-0 rmat) (-> s2-0 rmat) (-> s2-0 update-rmat)) + (cond + ((or (< (-> s1-0 y) (-> obj die-if-below-y)) + (< (-> obj die-if-beyond-xz-dist-sqrd) (vector-vector-xz-distance s1-0 (-> obj root trans))) + ) + (set! s3-0 (remove-from-list-and-reset obj arg0 s3-0)) + ) + (else + (update-bbox-for-joint obj arg0 s2-0) + (set! s3-0 (-> s2-0 next)) ) ) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 22 of type joint-exploder diff --git a/test/decompiler/reference/jak2/engine/anim/joint-mod-h_REF.gc b/test/decompiler/reference/jak2/engine/anim/joint-mod-h_REF.gc index 35ed9a2159..821428301e 100644 --- a/test/decompiler/reference/jak2/engine/anim/joint-mod-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/anim/joint-mod-h_REF.gc @@ -576,23 +576,19 @@ ;; definition for function joint-mod-spinner-callback (defun joint-mod-spinner-callback ((arg0 cspace) (arg1 transformq)) - (with-pp - (let ((gp-0 (the-as joint-mod-spinner (-> arg0 param1)))) - (when (-> gp-0 enable) - (let ((f30-0 - (the float - (sar (shl (the int (+ (-> gp-0 angle) (* (-> gp-0 spin-rate) (-> pp clock seconds-per-frame)))) 48) 48) - ) - ) + (let ((gp-0 (the-as joint-mod-spinner (-> arg0 param1)))) + (when (-> gp-0 enable) + (let ((f30-0 + (the float (sar (shl (the int (+ (-> gp-0 angle) (* (-> gp-0 spin-rate) (seconds-per-frame)))) 48) 48)) ) - (quaternion-vector-angle! (-> arg1 quat) (-> gp-0 spin-axis) f30-0) - (set! (-> gp-0 angle) f30-0) - ) + ) + (quaternion-vector-angle! (-> arg1 quat) (-> gp-0 spin-axis) f30-0) + (set! (-> gp-0 angle) f30-0) ) ) - (cspace<-parented-transformq-joint! arg0 arg1) - (none) ) + (cspace<-parented-transformq-joint! arg0 arg1) + (none) ) ;; definition for method 0 of type joint-mod-spinner diff --git a/test/decompiler/reference/jak2/engine/anim/joint-mod_REF.gc b/test/decompiler/reference/jak2/engine/anim/joint-mod_REF.gc index aa13874e11..d4759281c8 100644 --- a/test/decompiler/reference/jak2/engine/anim/joint-mod_REF.gc +++ b/test/decompiler/reference/jak2/engine/anim/joint-mod_REF.gc @@ -38,13 +38,13 @@ (cspace<-parented-transformq-joint! arg0 arg1) (cond ((logtest? (-> gp-0 flags) (joint-mod-ik-flags enable)) - (+! (-> gp-0 blend) (* 4.0 (-> self clock seconds-per-frame))) + (+! (-> gp-0 blend) (* 4.0 (seconds-per-frame))) (if (< 1.0 (-> gp-0 blend)) (set! (-> gp-0 blend) 1.0) ) ) (else - (set! (-> gp-0 blend) (- (-> gp-0 blend) (* 4.0 (-> self clock seconds-per-frame)))) + (set! (-> gp-0 blend) (- (-> gp-0 blend) (* 4.0 (seconds-per-frame)))) (if (< (-> gp-0 blend) 0.0) (set! (-> gp-0 blend) 0.0) ) @@ -457,9 +457,9 @@ (+! (-> sv-16 trans z) (* 8.0 f0-43)) ) ) - (+! (-> sv-16 trans z) (* -260.0 (-> self clock seconds-per-frame) (-> sv-16 trans y))) + (+! (-> sv-16 trans z) (* -260.0 (seconds-per-frame) (-> sv-16 trans y))) (let ((f0-48 (-> sv-16 trans y))) - (+! (-> sv-16 trans y) (* (-> sv-16 trans z) (-> self clock seconds-per-frame))) + (+! (-> sv-16 trans y) (* (-> sv-16 trans z) (seconds-per-frame))) (set! (-> sv-16 trans y) (* 0.95 (-> sv-16 trans y))) (when (< (* f0-48 (-> sv-16 trans y)) 0.0) (set! (-> sv-16 trans y) 0.0) @@ -525,7 +525,7 @@ ) (vector-deg-slerp (-> s5-0 twist) (-> s5-0 twist) s4-0 0.3) (set! (-> s4-0 quad) (-> s5-0 twist quad)) - (seek! (-> s5-0 blend) (-> s5-0 flex-blend) (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> s5-0 blend) (-> s5-0 flex-blend) (* 4.0 (seconds-per-frame))) (let ((s3-1 (matrix->scale gp-0 (new 'stack-no-clear 'vector)))) (let ((s2-0 (matrix->quat gp-0 (new 'stack-no-clear 'quaternion))) (s0-0 (matrix->trans gp-0 (new 'stack-no-clear 'vector))) @@ -540,11 +540,7 @@ (let* ((f0-14 (vector-dot s4-0 (vector-! (new 'stack-no-clear 'vector) s0-0 (-> s5-0 trans)))) (f0-15 (lerp-scale 1.0 0.0 f0-14 819.2 2048.0)) ) - (seek! - (-> s5-0 polar-internal-tilt-max) - (* (-> s5-0 blend) f0-15 f30-1) - (* 15.0 (-> self clock seconds-per-frame)) - ) + (seek! (-> s5-0 polar-internal-tilt-max) (* (-> s5-0 blend) f0-15 f30-1) (* 15.0 (seconds-per-frame))) ) (quaternion-slerp! s1-0 s2-0 s1-0 (-> s5-0 polar-internal-tilt-max)) (matrix<-quat gp-0 s1-0) diff --git a/test/decompiler/reference/jak2/engine/camera/cam-states_REF.gc b/test/decompiler/reference/jak2/engine/camera/cam-states_REF.gc index 770ed9e9f0..44dd6a9c5f 100644 --- a/test/decompiler/reference/jak2/engine/camera/cam-states_REF.gc +++ b/test/decompiler/reference/jak2/engine/camera/cam-states_REF.gc @@ -882,22 +882,12 @@ (s4-0 (new 'stack-no-clear 'matrix)) ) (when (not (logtest? (-> *camera* settings master-options) (cam-master-options IGNORE_ANALOG))) - (let ((f24-0 (analog-input - (the-as int (-> *cpad-list* cpads 0 rightx)) - 128.0 - 32.0 - 110.0 - (* 8192.0 (-> self clock seconds-per-frame)) - ) - ) - (f1-2 (analog-input - (the-as int (-> *cpad-list* cpads 0 righty)) - 128.0 - 32.0 - 110.0 - (* 8192.0 (-> self clock seconds-per-frame)) - ) - ) + (let ((f24-0 + (analog-input (the-as int (-> *cpad-list* cpads 0 rightx)) 128.0 32.0 110.0 (* 8192.0 (seconds-per-frame))) + ) + (f1-2 + (analog-input (the-as int (-> *cpad-list* cpads 0 righty)) 128.0 32.0 110.0 (* 8192.0 (seconds-per-frame))) + ) (s2-0 (new-stack-matrix0)) ) (let ((v1-15 (new 'stack-no-clear 'vector))) @@ -918,9 +908,7 @@ (set! f1-2 (- f1-2)) ) (let* ((f1-3 (+ f24-0 f1-2)) - (f1-5 - (fmin (* 8192.0 (-> self clock seconds-per-frame)) (fmax (* -8192.0 (-> self clock seconds-per-frame)) f1-3)) - ) + (f1-5 (fmin (* 8192.0 (seconds-per-frame)) (fmax (* -8192.0 (seconds-per-frame)) f1-3))) ) (cond ((and (< 0.0 f1-5) (< 0.0 f0-10) (< (-> self max-angle-curr) f28-0)) @@ -2613,12 +2601,10 @@ 128.0 32.0 110.0 - (* 182.04445 - (-> self clock seconds-per-frame) - (if (logtest? (cam-slave-options-u32 GUN_CAM) (-> self options)) - 120.0 - 120.0 - ) + (* 182.04445 (seconds-per-frame) (if (logtest? (cam-slave-options-u32 GUN_CAM) (-> self options)) + 120.0 + 120.0 + ) ) ) ) @@ -2633,18 +2619,18 @@ (set! f30-2 (- f30-2)) ) (if (-> self have-phony-joystick) - (set! f30-2 (* 21845.334 (-> self phony-joystick-x) (-> self clock seconds-per-frame))) + (set! f30-2 (* 21845.334 (-> self phony-joystick-x) (seconds-per-frame))) ) (when (logtest? (cam-slave-options-u32 ALLOW_SHIFT_BUTTONS) (-> self options)) (when (logtest? (-> *camera* settings master-options) (cam-master-options READ_BUTTONS)) (if (cpad-hold? (-> *CAMERA-bank* joypad) r1) - (+! f30-2 (+ (* 10922.667 (-> self clock seconds-per-frame)) + (+! f30-2 (+ (* 10922.667 (seconds-per-frame)) (analog-input (the-as int (-> *cpad-list* cpads (-> *CAMERA-bank* joypad) abutton 9)) 0.0 32.0 230.0 - (* 21845.334 (-> self clock seconds-per-frame)) + (* 21845.334 (seconds-per-frame)) ) ) ) @@ -2652,13 +2638,13 @@ ) (when (logtest? (-> *camera* settings master-options) (cam-master-options READ_BUTTONS)) (if (cpad-hold? (-> *CAMERA-bank* joypad) l1) - (set! f30-2 (- f30-2 (+ (* 10922.667 (-> self clock seconds-per-frame)) + (set! f30-2 (- f30-2 (+ (* 10922.667 (seconds-per-frame)) (analog-input (the-as int (-> *cpad-list* cpads (-> *CAMERA-bank* joypad) abutton 8)) 0.0 32.0 230.0 - (* 21845.334 (-> self clock seconds-per-frame)) + (* 21845.334 (seconds-per-frame)) ) ) ) @@ -2672,7 +2658,7 @@ (fmax (-> self string-min-val z) (fmin (-> self string-max-val z) (vector-length (-> self view-flat)))) ) ) - (set! f30-2 (* 21845.334 (+ 0.1 (/ (-> self string-min-val z) f0-82)) (-> self clock seconds-per-frame))) + (set! f30-2 (* 21845.334 (+ 0.1 (/ (-> self string-min-val z) f0-82)) (seconds-per-frame))) ) ) ((and (= (-> self los-state) (slave-los-state cw)) (< f30-2 0.0)) @@ -2680,7 +2666,7 @@ (fmax (-> self string-min-val z) (fmin (-> self string-max-val z) (vector-length (-> self view-flat)))) ) ) - (set! f30-2 (* -21845.334 (+ 0.1 (/ (-> self string-min-val z) f0-88)) (-> self clock seconds-per-frame))) + (set! f30-2 (* -21845.334 (+ 0.1 (/ (-> self string-min-val z) f0-88)) (seconds-per-frame))) ) ) ) @@ -3130,28 +3116,28 @@ (seek! (-> self string-min-val y) (-> (the-as vector s5-0) y) - (* (-> (the-as vector s5-0) w) (-> self clock seconds-per-frame)) + (* (-> (the-as vector s5-0) w) (seconds-per-frame)) ) ) (if (!= (-> (the-as vector s5-0) z) 4095996000.0) (seek! (-> self string-min-val z) (-> (the-as vector s5-0) z) - (* (-> (the-as vector s5-0) w) (-> self clock seconds-per-frame)) + (* (-> (the-as vector s5-0) w) (seconds-per-frame)) ) ) (if (!= (-> (the-as vector gp-1) y) 4095996000.0) (seek! (-> self string-max-val y) (-> (the-as vector gp-1) y) - (* (-> (the-as vector gp-1) w) (-> self clock seconds-per-frame)) + (* (-> (the-as vector gp-1) w) (seconds-per-frame)) ) ) (if (!= (-> (the-as vector gp-1) z) 4095996000.0) (seek! (-> self string-max-val z) (-> (the-as vector gp-1) z) - (* (-> (the-as vector gp-1) w) (-> self clock seconds-per-frame)) + (* (-> (the-as vector gp-1) w) (seconds-per-frame)) ) ) ) @@ -3581,14 +3567,9 @@ (lerp (-> *CAM_STICK-bank* min-z) (-> *CAM_STICK-bank* max-z) (-> self view-off-param)) ) (when (not (logtest? (-> *camera* settings master-options) (cam-master-options IGNORE_ANALOG))) - (let ((f0-16 (analog-input - (the-as int (-> *cpad-list* cpads 0 rightx)) - 128.0 - 32.0 - 110.0 - (* 21845.334 (-> self clock seconds-per-frame)) - ) - ) + (let ((f0-16 + (analog-input (the-as int (-> *cpad-list* cpads 0 rightx)) 128.0 32.0 110.0 (* 21845.334 (seconds-per-frame))) + ) (gp-0 (new-stack-matrix0)) (s3-0 (new-stack-vector0)) (s5-0 (new-stack-vector0)) @@ -3607,13 +3588,7 @@ (vector-negate! s3-0 s3-0) (set! (-> s4-0 quad) (-> s5-0 quad)) (vector-normalize-copy! s4-0 s3-0 1.0) - (matrix-from-two-vectors-max-angle-partial! - gp-0 - s5-0 - s4-0 - (* 10922.667 (-> self clock seconds-per-frame)) - 0.05 - ) + (matrix-from-two-vectors-max-angle-partial! gp-0 s5-0 s4-0 (* 10922.667 (seconds-per-frame)) 0.05) (vector-matrix*! (-> self view-flat) (-> self view-flat) gp-0) ) ) diff --git a/test/decompiler/reference/jak2/engine/camera/camera_REF.gc b/test/decompiler/reference/jak2/engine/camera/camera_REF.gc index 8405f82682..df94aa0c44 100644 --- a/test/decompiler/reference/jak2/engine/camera/camera_REF.gc +++ b/test/decompiler/reference/jak2/engine/camera/camera_REF.gc @@ -1327,7 +1327,7 @@ ) (cond (arg2 - (vector-seek-3d-smooth! (-> arg0 follow-off) s2-1 (* 20480.0 (-> pp clock seconds-per-frame)) 0.05) + (vector-seek-3d-smooth! (-> arg0 follow-off) s2-1 (* 20480.0 (seconds-per-frame)) 0.05) (if (logtest? (cam-slave-options VERTICAL_FOLLOW_MATCHES_CAMERA) (-> *camera* settings slave-options)) (set! (-> arg0 follow-height-extra vel) 0.0) (update! (-> arg0 follow-height-extra) 0.0) diff --git a/test/decompiler/reference/jak2/engine/collide/collide-shape_REF.gc b/test/decompiler/reference/jak2/engine/collide/collide-shape_REF.gc index 52eec87c17..5dd11d71c8 100644 --- a/test/decompiler/reference/jak2/engine/collide/collide-shape_REF.gc +++ b/test/decompiler/reference/jak2/engine/collide/collide-shape_REF.gc @@ -1088,92 +1088,90 @@ ;; INFO: Used lq/sq (defmethod step-collison! collide-shape-moving ((obj collide-shape-moving) (arg0 vector) (arg1 vector) (arg2 float) (arg3 int)) (local-vars (sv-592 int)) - (with-pp - (let ((s5-0 (new 'stack 'collide-query)) - (s2-0 (new 'stack-no-clear 'vector)) - ) - (vector-float*! s2-0 arg1 (* arg2 (-> pp clock seconds-per-frame))) - (set! (-> s5-0 move-dist quad) (-> s2-0 quad)) - (set! (-> s5-0 best-dist) -100000000.0) - (set! (-> s5-0 best-my-prim) #f) - (set! (-> s5-0 num-spheres) (the-as uint #f)) - (let* ((s1-1 (-> obj root-prim)) - (v1-5 *collide-cache*) - (s0-0 (the-as collide-cache-prim (-> v1-5 prims))) - ) - (set! sv-592 (-> v1-5 num-prims)) - (while (nonzero? sv-592) - (set! sv-592 (+ sv-592 -1)) - (when (logtest? (-> s1-1 prim-core collide-with) (-> s0-0 prim-core collide-as)) - (if (>= (the-as int (-> s0-0 prim-core prim-type)) 0) - (collide-with-collide-cache-prim-mesh s1-1 s5-0 s0-0) - (collide-with-collide-cache-prim-sphere s1-1 s5-0 s0-0) - ) - ) - (&+! s0-0 48) - ) + (let ((s5-0 (new 'stack 'collide-query)) + (s2-0 (new 'stack-no-clear 'vector)) ) - (let ((f30-0 (-> s5-0 best-dist))) - (set! f30-0 (cond - ((>= f30-0 0.0) - (let ((s2-1 (new 'stack-no-clear 'vector))) - (if *display-collision-marks* - (set! (-> s2-1 quad) (-> arg1 quad)) + (vector-float*! s2-0 arg1 (* arg2 (seconds-per-frame))) + (set! (-> s5-0 move-dist quad) (-> s2-0 quad)) + (set! (-> s5-0 best-dist) -100000000.0) + (set! (-> s5-0 best-my-prim) #f) + (set! (-> s5-0 num-spheres) (the-as uint #f)) + (let* ((s1-1 (-> obj root-prim)) + (v1-5 *collide-cache*) + (s0-0 (the-as collide-cache-prim (-> v1-5 prims))) + ) + (set! sv-592 (-> v1-5 num-prims)) + (while (nonzero? sv-592) + (set! sv-592 (+ sv-592 -1)) + (when (logtest? (-> s1-1 prim-core collide-with) (-> s0-0 prim-core collide-as)) + (if (>= (the-as int (-> s0-0 prim-core prim-type)) 0) + (collide-with-collide-cache-prim-mesh s1-1 s5-0 s0-0) + (collide-with-collide-cache-prim-sphere s1-1 s5-0 s0-0) + ) + ) + (&+! s0-0 48) + ) + ) + (let ((f30-0 (-> s5-0 best-dist))) + (set! f30-0 (cond + ((>= f30-0 0.0) + (let ((s2-1 (new 'stack-no-clear 'vector))) + (if *display-collision-marks* + (set! (-> s2-1 quad) (-> arg1 quad)) + ) + (set! (-> obj prev-status) ((-> obj reaction) (the-as control-info obj) s5-0 arg0 arg1)) + (when *display-collision-marks* + (let ((t1-0 (-> *pat-mode-info* (-> s5-0 best-other-tri pat mode) hilite-color))) + (add-debug-outline-triangle + #t + (bucket-id debug-no-zbuf1) + (the-as vector (-> s5-0 best-other-tri)) + (-> s5-0 best-other-tri vertex 1) + (-> s5-0 best-other-tri vertex 2) + t1-0 ) - (set! (-> obj prev-status) ((-> obj reaction) (the-as control-info obj) s5-0 arg0 arg1)) - (when *display-collision-marks* - (let ((t1-0 (-> *pat-mode-info* (-> s5-0 best-other-tri pat mode) hilite-color))) - (add-debug-outline-triangle + ) + (add-debug-vector + #t + (bucket-id debug-no-zbuf1) + (-> s5-0 best-other-tri intersect) + s2-1 + (meters 0.00007324219) + (new 'static 'rgba :r #xff :g #xa0 :a #x80) + ) + (add-debug-vector + #t + (bucket-id debug-no-zbuf1) + (-> s5-0 best-other-tri intersect) + arg0 + (meters 0.00007324219) + (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) + ) + (if (= (-> obj process type) target) + (add-debug-vector #t (bucket-id debug-no-zbuf1) - (the-as vector (-> s5-0 best-other-tri)) - (-> s5-0 best-other-tri vertex 1) - (-> s5-0 best-other-tri vertex 2) - t1-0 + (-> s5-0 best-other-tri intersect) + (-> obj surface-normal) + (meters 0.5) + (-> *pat-mode-info* (-> obj cur-pat mode) hilite-color) ) ) - (add-debug-vector - #t - (bucket-id debug-no-zbuf1) - (-> s5-0 best-other-tri intersect) - s2-1 - (meters 0.00007324219) - (new 'static 'rgba :r #xff :g #xa0 :a #x80) - ) - (add-debug-vector - #t - (bucket-id debug-no-zbuf1) - (-> s5-0 best-other-tri intersect) - arg0 - (meters 0.00007324219) - (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80) - ) - (if (= (-> obj process type) target) - (add-debug-vector - #t - (bucket-id debug-no-zbuf1) - (-> s5-0 best-other-tri intersect) - (-> obj surface-normal) - (meters 0.5) - (-> *pat-mode-info* (-> obj cur-pat mode) hilite-color) - ) - ) - ) ) - f30-0 ) - (else - (set! (-> obj reaction-flag) (cshape-reaction-flags)) - ((-> obj no-reaction) obj s5-0 arg0 arg1) - (set! (-> obj prev-status) (collide-status)) - (move-by-vector! obj s2-0) - (set! (-> arg0 quad) (-> arg1 quad)) - 1.0 - ) + f30-0 + ) + (else + (set! (-> obj reaction-flag) (cshape-reaction-flags)) + ((-> obj no-reaction) obj s5-0 arg0 arg1) + (set! (-> obj prev-status) (collide-status)) + (move-by-vector! obj s2-0) + (set! (-> arg0 quad) (-> arg1 quad)) + 1.0 ) - ) - f30-0 - ) + ) + ) + f30-0 ) ) ) @@ -1181,27 +1179,25 @@ ;; definition for method 37 of type collide-shape (defmethod integrate-and-collide! collide-shape ((obj collide-shape) (arg0 vector)) (local-vars (at-0 int)) - (with-pp - (rlet ((vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (let ((t9-0 (method-of-object obj move-by-vector!)) - (v1-1 (new 'stack-no-clear 'vector)) - ) - (.lvf vf1 (&-> arg0 quad)) - (let ((f0-0 (-> pp clock seconds-per-frame))) - (.mov at-0 f0-0) + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (let ((t9-0 (method-of-object obj move-by-vector!)) + (v1-1 (new 'stack-no-clear 'vector)) ) - (.mov vf2 at-0) - (.mov.vf vf1 vf0 :mask #b1000) - (.mul.x.vf vf1 vf1 vf2 :mask #b111) - (.svf (&-> v1-1 quad) vf1) - (t9-0 obj v1-1) + (.lvf vf1 (&-> arg0 quad)) + (let ((f0-0 (seconds-per-frame))) + (.mov at-0 f0-0) ) - (none) + (.mov vf2 at-0) + (.mov.vf vf1 vf0 :mask #b1000) + (.mul.x.vf vf1 vf1 vf2 :mask #b111) + (.svf (&-> v1-1 quad) vf1) + (t9-0 obj v1-1) ) + (none) ) ) @@ -1262,148 +1258,146 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod integrate-and-collide! control-info ((obj control-info) (arg0 vector)) - (with-pp - (stopwatch-start (the-as stopwatch (&-> *collide-stats* pad0 1))) - (when (< 1638400.0 (vector-length arg0)) - (format 0 "WARNING: target vel is ~M m/s, reseting to zero.~%" (vector-length arg0)) - (vector-reset! arg0) - ) - (set! (-> obj old-anim-collide-offset-world quad) (-> obj anim-collide-offset-world quad)) - (vector-matrix*! - (-> obj anim-collide-offset-world) - (-> obj anim-collide-offset-local) - (-> obj ctrl-orientation) - ) - (vector-! - (-> obj anim-collide-offset-delta-world) - (-> obj anim-collide-offset-world) - (-> obj old-anim-collide-offset-world) - ) - (let ((total-offset - (vector-! (new 'stack-no-clear 'vector) (-> obj draw-offset) (-> obj anim-collide-offset-world)) - ) - ) - (vector-seek! (-> obj cspace-offset) total-offset (* 16384.0 (-> pp clock seconds-per-frame))) - ) - (let ((bonus-vel (vector+float*! - (new-stack-vector0) - (-> obj collide-extra-velocity) - (-> obj anim-collide-offset-delta-world) - 60.0 - ) - ) - ) - (when (< 0.0 (vector-length bonus-vel)) - (let ((old-iter-cnt (-> obj max-iteration-count)) - (old-in-vel (new 'stack-no-clear 'vector)) - ) - (set! (-> old-in-vel quad) (-> arg0 quad)) - (let ((old-stat-flg (-> obj status))) - (let ((t9-4 (method-of-type collide-shape-moving integrate-and-collide!))) - (t9-4 obj bonus-vel) - ) - (set! (-> obj max-iteration-count) old-iter-cnt) - (set! (-> arg0 quad) (-> old-in-vel quad)) - (logior! (-> obj status) old-stat-flg) - ) - ) - ) - ) - (let ((regular-vel (new-stack-vector0))) - (set! (-> regular-vel quad) (-> arg0 quad)) - (let ((before-regular-vel (new 'stack-no-clear 'vector))) - (set! (-> before-regular-vel quad) (-> arg0 quad)) - (let ((t9-5 (method-of-type collide-shape-moving integrate-and-collide!))) - (t9-5 obj regular-vel) - ) - (let ((b1 (new-stack-vector0))) - (set! (-> b1 quad) (-> before-regular-vel quad)) - (let ((a1 (new-stack-vector0))) - (set! (-> a1 quad) (-> regular-vel quad)) - (let ((b1-nrm-to-grav (new-stack-vector0))) - (let ((f0-6 (vector-dot (-> obj dynam gravity-normal) b1))) - 0.0 - (vector-! b1-nrm-to-grav b1 (vector-float*! b1-nrm-to-grav (-> obj dynam gravity-normal) f0-6)) - ) - (let* ((b1-nrm-to-grav-vel (vector-length b1-nrm-to-grav)) - (f1-4 b1-nrm-to-grav-vel) - (f2-0 0.0) - ) - (vector+! - b1 - (vector-float*! b1 (-> obj dynam gravity-normal) f2-0) - (vector-float*! b1-nrm-to-grav b1-nrm-to-grav (/ b1-nrm-to-grav-vel f1-4)) - ) - ) - ) - (let ((v1-33 (new-stack-vector0))) - (let ((f0-10 (vector-dot (-> obj dynam gravity-normal) a1))) - 0.0 - (vector-! v1-33 a1 (vector-float*! v1-33 (-> obj dynam gravity-normal) f0-10)) - ) - (let* ((f0-11 (vector-length v1-33)) - (f1-6 f0-11) - (f2-1 0.0) - ) - (vector+! - a1 - (vector-float*! a1 (-> obj dynam gravity-normal) f2-1) - (vector-float*! v1-33 v1-33 (/ f0-11 f1-6)) - ) - ) - ) - (vector-normalize! b1 1.0) - (vector-normalize! a1 1.0) - (let ((ba-dot (vector-dot b1 a1))) - (cond - ((and (!= (vector-length (-> obj target-transv)) 0.0) - (if (logtest? (-> obj status) (collide-status touch-wall)) - (< ba-dot 0.9999) - (< ba-dot 0.95) - ) - ) - (seek! (-> obj blocked-factor) 1.0 (* 4.0 (-> pp clock seconds-per-frame))) - (seek! - (-> obj blocked-in-air-factor) - (if (= (-> obj mod-surface mode) 'air) - 1.0 - 0.0 - ) - (* 4.0 (-> pp clock seconds-per-frame)) - ) - (logior! (-> obj status) (collide-status blocked)) - ) - (else - (seek! (-> obj blocked-factor) 0.0 (* 2.0 (-> pp clock seconds-per-frame))) - (seek! (-> obj blocked-in-air-factor) 0.0 (* 2.0 (-> pp clock seconds-per-frame))) - ) - ) - ) - ) - ) - (set! (-> arg0 quad) (-> regular-vel quad)) - (if (and (logtest? (-> obj status) (collide-status on-surface)) - (and (not (logtest? (-> obj status) (collide-status touch-wall blocked))) - (< (vector-length (-> obj btransv)) (vector-length before-regular-vel)) - ) - ) - (set! (-> obj btransv quad) (-> before-regular-vel quad)) - ) - ) - ) - (let ((align-xz-dir (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> obj align-xz-vel) 1.0)) - (align-xz-speed (vector-length (-> obj align-xz-vel))) - ) - (set! (-> obj zx-vel-frac) (if (= align-xz-speed 0.0) - 0.0 - (fmax 0.0 (/ (vector-dot (-> obj transv) align-xz-dir) align-xz-speed)) - ) - ) - ) - (stopwatch-stop (the-as stopwatch (&-> *collide-stats* pad0 1))) - 0 - (none) + (stopwatch-start (the-as stopwatch (&-> *collide-stats* pad0 1))) + (when (< 1638400.0 (vector-length arg0)) + (format 0 "WARNING: target vel is ~M m/s, reseting to zero.~%" (vector-length arg0)) + (vector-reset! arg0) ) + (set! (-> obj old-anim-collide-offset-world quad) (-> obj anim-collide-offset-world quad)) + (vector-matrix*! + (-> obj anim-collide-offset-world) + (-> obj anim-collide-offset-local) + (-> obj ctrl-orientation) + ) + (vector-! + (-> obj anim-collide-offset-delta-world) + (-> obj anim-collide-offset-world) + (-> obj old-anim-collide-offset-world) + ) + (let ((total-offset + (vector-! (new 'stack-no-clear 'vector) (-> obj draw-offset) (-> obj anim-collide-offset-world)) + ) + ) + (vector-seek! (-> obj cspace-offset) total-offset (* 16384.0 (seconds-per-frame))) + ) + (let ((bonus-vel (vector+float*! + (new-stack-vector0) + (-> obj collide-extra-velocity) + (-> obj anim-collide-offset-delta-world) + 60.0 + ) + ) + ) + (when (< 0.0 (vector-length bonus-vel)) + (let ((old-iter-cnt (-> obj max-iteration-count)) + (old-in-vel (new 'stack-no-clear 'vector)) + ) + (set! (-> old-in-vel quad) (-> arg0 quad)) + (let ((old-stat-flg (-> obj status))) + (let ((t9-4 (method-of-type collide-shape-moving integrate-and-collide!))) + (t9-4 obj bonus-vel) + ) + (set! (-> obj max-iteration-count) old-iter-cnt) + (set! (-> arg0 quad) (-> old-in-vel quad)) + (logior! (-> obj status) old-stat-flg) + ) + ) + ) + ) + (let ((regular-vel (new-stack-vector0))) + (set! (-> regular-vel quad) (-> arg0 quad)) + (let ((before-regular-vel (new 'stack-no-clear 'vector))) + (set! (-> before-regular-vel quad) (-> arg0 quad)) + (let ((t9-5 (method-of-type collide-shape-moving integrate-and-collide!))) + (t9-5 obj regular-vel) + ) + (let ((b1 (new-stack-vector0))) + (set! (-> b1 quad) (-> before-regular-vel quad)) + (let ((a1 (new-stack-vector0))) + (set! (-> a1 quad) (-> regular-vel quad)) + (let ((b1-nrm-to-grav (new-stack-vector0))) + (let ((f0-6 (vector-dot (-> obj dynam gravity-normal) b1))) + 0.0 + (vector-! b1-nrm-to-grav b1 (vector-float*! b1-nrm-to-grav (-> obj dynam gravity-normal) f0-6)) + ) + (let* ((b1-nrm-to-grav-vel (vector-length b1-nrm-to-grav)) + (f1-4 b1-nrm-to-grav-vel) + (f2-0 0.0) + ) + (vector+! + b1 + (vector-float*! b1 (-> obj dynam gravity-normal) f2-0) + (vector-float*! b1-nrm-to-grav b1-nrm-to-grav (/ b1-nrm-to-grav-vel f1-4)) + ) + ) + ) + (let ((v1-33 (new-stack-vector0))) + (let ((f0-10 (vector-dot (-> obj dynam gravity-normal) a1))) + 0.0 + (vector-! v1-33 a1 (vector-float*! v1-33 (-> obj dynam gravity-normal) f0-10)) + ) + (let* ((f0-11 (vector-length v1-33)) + (f1-6 f0-11) + (f2-1 0.0) + ) + (vector+! + a1 + (vector-float*! a1 (-> obj dynam gravity-normal) f2-1) + (vector-float*! v1-33 v1-33 (/ f0-11 f1-6)) + ) + ) + ) + (vector-normalize! b1 1.0) + (vector-normalize! a1 1.0) + (let ((ba-dot (vector-dot b1 a1))) + (cond + ((and (!= (vector-length (-> obj target-transv)) 0.0) + (if (logtest? (-> obj status) (collide-status touch-wall)) + (< ba-dot 0.9999) + (< ba-dot 0.95) + ) + ) + (seek! (-> obj blocked-factor) 1.0 (* 4.0 (seconds-per-frame))) + (seek! + (-> obj blocked-in-air-factor) + (if (= (-> obj mod-surface mode) 'air) + 1.0 + 0.0 + ) + (* 4.0 (seconds-per-frame)) + ) + (logior! (-> obj status) (collide-status blocked)) + ) + (else + (seek! (-> obj blocked-factor) 0.0 (* 2.0 (seconds-per-frame))) + (seek! (-> obj blocked-in-air-factor) 0.0 (* 2.0 (seconds-per-frame))) + ) + ) + ) + ) + ) + (set! (-> arg0 quad) (-> regular-vel quad)) + (if (and (logtest? (-> obj status) (collide-status on-surface)) + (and (not (logtest? (-> obj status) (collide-status touch-wall blocked))) + (< (vector-length (-> obj btransv)) (vector-length before-regular-vel)) + ) + ) + (set! (-> obj btransv quad) (-> before-regular-vel quad)) + ) + ) + ) + (let ((align-xz-dir (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> obj align-xz-vel) 1.0)) + (align-xz-speed (vector-length (-> obj align-xz-vel))) + ) + (set! (-> obj zx-vel-frac) (if (= align-xz-speed 0.0) + 0.0 + (fmax 0.0 (/ (vector-dot (-> obj transv) align-xz-dir) align-xz-speed)) + ) + ) + ) + (stopwatch-stop (the-as stopwatch (&-> *collide-stats* pad0 1))) + 0 + (none) ) ;; definition for method 64 of type collide-shape-moving @@ -1520,59 +1514,57 @@ ;; WARN: Return type mismatch int vs none. (defmethod integrate-no-collide! collide-shape-moving ((obj collide-shape-moving) (arg0 vector)) (local-vars (at-0 int)) - (with-pp - (rlet ((vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (update-transforms obj) - (set! (-> obj trans-old-old-old quad) (-> obj trans-old-old quad)) - (set! (-> obj trans-old-old quad) (-> obj trans-old quad)) - (set! (-> obj trans-old quad) (-> obj trans quad)) - (set! (-> obj prev-status) (-> obj status)) - (logclear! (-> obj status) (collide-status - on-surface - on-ground - touch-surface - touch-wall - touch-ceiling - touch-actor - on-special-surface - touch-edge - blocked - on-water - impact-surface - touch-background - stuck - glance - ) - ) - (when (not (logtest? (-> obj root-prim prim-core action) (collide-action no-normal-reset))) - (let ((v1-13 (-> obj dynam gravity-normal))) - (set! (-> obj local-normal quad) (-> v1-13 quad)) - (set! (-> obj surface-normal quad) (-> v1-13 quad)) - (set! (-> obj poly-normal quad) (-> v1-13 quad)) - ) - (set! (-> obj coverage) 0.0) - (set! (-> obj touch-angle) 0.0) + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (update-transforms obj) + (set! (-> obj trans-old-old-old quad) (-> obj trans-old-old quad)) + (set! (-> obj trans-old-old quad) (-> obj trans-old quad)) + (set! (-> obj trans-old quad) (-> obj trans quad)) + (set! (-> obj prev-status) (-> obj status)) + (logclear! (-> obj status) (collide-status + on-surface + on-ground + touch-surface + touch-wall + touch-ceiling + touch-actor + on-special-surface + touch-edge + blocked + on-water + impact-surface + touch-background + stuck + glance + ) + ) + (when (not (logtest? (-> obj root-prim prim-core action) (collide-action no-normal-reset))) + (let ((v1-13 (-> obj dynam gravity-normal))) + (set! (-> obj local-normal quad) (-> v1-13 quad)) + (set! (-> obj surface-normal quad) (-> v1-13 quad)) + (set! (-> obj poly-normal quad) (-> v1-13 quad)) ) - (let ((t9-1 (method-of-object obj move-by-vector!)) - (a1-5 (new 'stack-no-clear 'vector)) - ) - (.lvf vf1 (&-> arg0 quad)) - (let ((f0-2 (-> pp clock seconds-per-frame))) - (.mov at-0 f0-2) - ) - (.mov vf2 at-0) - (.mov.vf vf1 vf0 :mask #b1000) - (.mul.x.vf vf1 vf1 vf2 :mask #b111) - (.svf (&-> a1-5 quad) vf1) - (t9-1 obj a1-5) - ) - 0 - (none) + (set! (-> obj coverage) 0.0) + (set! (-> obj touch-angle) 0.0) ) + (let ((t9-1 (method-of-object obj move-by-vector!)) + (a1-5 (new 'stack-no-clear 'vector)) + ) + (.lvf vf1 (&-> arg0 quad)) + (let ((f0-2 (seconds-per-frame))) + (.mov at-0 f0-2) + ) + (.mov vf2 at-0) + (.mov.vf vf1 vf0 :mask #b1000) + (.mul.x.vf vf1 vf1 vf2 :mask #b111) + (.svf (&-> a1-5 quad) vf1) + (t9-1 obj a1-5) + ) + 0 + (none) ) ) @@ -1590,36 +1582,34 @@ ;; definition for method 55 of type collide-shape-moving ;; INFO: Used lq/sq (defmethod find-ground collide-shape-moving ((obj collide-shape-moving) (arg0 collide-query) (arg1 collide-spec) (arg2 float) (arg3 float) (arg4 float)) - (with-pp - (set! (-> obj gspot-pos quad) (-> obj trans quad)) - (set! (-> arg0 start-pos quad) (-> obj trans quad)) - (vector-reset! (-> arg0 move-dist)) - (let ((f0-0 (-> obj transv y))) - (if (< f0-0 0.0) - (set! arg2 (- arg2 (fmax -40960.0 (* f0-0 (-> pp clock seconds-per-frame))))) - ) - ) - (+! (-> arg0 start-pos y) arg2) - (set! (-> arg0 move-dist y) (- (+ arg2 arg3))) - (let ((v1-7 arg0)) - (set! (-> v1-7 radius) arg4) - (set! (-> v1-7 collide-with) arg1) - (set! (-> v1-7 ignore-process0) (-> obj process)) - (set! (-> v1-7 ignore-process1) #f) - (set! (-> v1-7 ignore-pat) (logior (new 'static 'pat-surface :noendlessfall #x1) (-> obj pat-ignore-mask))) - (set! (-> v1-7 action-mask) (collide-action solid)) - ) - (cond - ((>= (fill-and-probe-using-line-sphere *collide-cache* arg0) 0.0) - (set! (-> obj gspot-pos y) (-> arg0 best-other-tri intersect y)) - (set! (-> obj gspot-normal quad) (-> arg0 best-other-tri normal quad)) - #t - ) - (else - (set! (-> obj gspot-pos y) -40959590.0) - (set! (-> obj gspot-normal quad) (-> *y-vector* quad)) - #f + (set! (-> obj gspot-pos quad) (-> obj trans quad)) + (set! (-> arg0 start-pos quad) (-> obj trans quad)) + (vector-reset! (-> arg0 move-dist)) + (let ((f0-0 (-> obj transv y))) + (if (< f0-0 0.0) + (set! arg2 (- arg2 (fmax -40960.0 (* f0-0 (seconds-per-frame))))) ) + ) + (+! (-> arg0 start-pos y) arg2) + (set! (-> arg0 move-dist y) (- (+ arg2 arg3))) + (let ((v1-7 arg0)) + (set! (-> v1-7 radius) arg4) + (set! (-> v1-7 collide-with) arg1) + (set! (-> v1-7 ignore-process0) (-> obj process)) + (set! (-> v1-7 ignore-process1) #f) + (set! (-> v1-7 ignore-pat) (logior (new 'static 'pat-surface :noendlessfall #x1) (-> obj pat-ignore-mask))) + (set! (-> v1-7 action-mask) (collide-action solid)) + ) + (cond + ((>= (fill-and-probe-using-line-sphere *collide-cache* arg0) 0.0) + (set! (-> obj gspot-pos y) (-> arg0 best-other-tri intersect y)) + (set! (-> obj gspot-normal quad) (-> arg0 best-other-tri normal quad)) + #t + ) + (else + (set! (-> obj gspot-pos y) -40959590.0) + (set! (-> obj gspot-normal quad) (-> *y-vector* quad)) + #f ) ) ) @@ -1915,28 +1905,26 @@ ;; definition for method 32 of type collide-shape (defmethod fill-cache-integrate-and-collide collide-shape ((obj collide-shape) (arg0 vector) (arg1 collide-query) (arg2 meters)) (local-vars (at-0 int)) - (with-pp - (rlet ((vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (let ((v1-0 (new 'stack-no-clear 'vector))) - (let ((a0-1 v1-0)) - (.lvf vf1 (&-> arg0 quad)) - (let ((f0-0 (-> pp clock seconds-per-frame))) - (.mov at-0 f0-0) - ) - (.mov vf2 at-0) - (.mov.vf vf1 vf0 :mask #b1000) - (.mul.x.vf vf1 vf1 vf2 :mask #b111) - (.svf (&-> a0-1 quad) vf1) + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (let ((v1-0 (new 'stack-no-clear 'vector))) + (let ((a0-1 v1-0)) + (.lvf vf1 (&-> arg0 quad)) + (let ((f0-0 (seconds-per-frame))) + (.mov at-0 f0-0) ) - (fill-cache-for-shape obj (+ (vector-length v1-0) arg2) arg1) + (.mov vf2 at-0) + (.mov.vf vf1 vf0 :mask #b1000) + (.mul.x.vf vf1 vf1 vf2 :mask #b111) + (.svf (&-> a0-1 quad) vf1) ) - (integrate-and-collide! obj arg0) - (none) + (fill-cache-for-shape obj (+ (vector-length v1-0) arg2) arg1) ) + (integrate-and-collide! obj arg0) + (none) ) ) diff --git a/test/decompiler/reference/jak2/engine/common_objs/collectables_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/collectables_REF.gc index f6d18aed8c..4e61b6dd57 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/collectables_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/collectables_REF.gc @@ -679,18 +679,15 @@ 45.0 60.0 ) - (-> self clock seconds-per-frame) + (seconds-per-frame) ) ) (let ((s5-2 (vector-! (new 'stack-no-clear 'vector) (-> self base) gp-1))) - (vector-normalize! - s5-2 - (fmax 0.0 (- (vector-length s5-2) (* (-> self speed w) (-> self clock seconds-per-frame)))) - ) + (vector-normalize! s5-2 (fmax 0.0 (- (vector-length s5-2) (* (-> self speed w) (seconds-per-frame))))) (when (< (vector-length s5-2) 81920.0) - (+! (-> self speed y) (* 72817.78 (-> self clock seconds-per-frame))) + (+! (-> self speed y) (* 72817.78 (seconds-per-frame))) (set! (-> self speed y) (fmin (fmin 291271.12 (-> self speed y)) (-> self speed y))) - (vector-rotate-y! s5-2 s5-2 (* (-> self speed y) (-> self speed z) (-> self clock seconds-per-frame))) + (vector-rotate-y! s5-2 s5-2 (* (-> self speed y) (-> self speed z) (seconds-per-frame))) ) (set! (-> self suck-y-offset) (* 2048.0 (sin (* 873.81335 (the float (mod (- (current-time) (the-as int (-> self suck-time))) 75))))) @@ -1695,30 +1692,28 @@ This commonly includes things such as: ;; definition for method 34 of type money (defmethod common-post money ((obj money)) - (with-pp - (quaternion-rotate-y! (-> obj root quat) (-> obj root quat) (* 40049.777 (-> pp clock seconds-per-frame))) - (let ((f30-0 (-> obj bob-amount))) - (when (< 0.0 f30-0) - (set! (-> obj root trans y) - (+ (-> obj base y) - (-> obj suck-y-offset) - (* f30-0 - (sin - (* 109.22667 - (the float - (mod (+ (- (current-time) (the-as int (-> obj birth-time))) (the-as time-frame (-> obj bob-offset))) 600) - ) - ) - ) + (quaternion-rotate-y! (-> obj root quat) (-> obj root quat) (* 40049.777 (seconds-per-frame))) + (let ((f30-0 (-> obj bob-amount))) + (when (< 0.0 f30-0) + (set! (-> obj root trans y) + (+ (-> obj base y) + (-> obj suck-y-offset) + (* f30-0 + (sin + (* 109.22667 + (the float + (mod (+ (- (current-time) (the-as int (-> obj birth-time))) (the-as time-frame (-> obj bob-offset))) 600) + ) + ) ) - ) - ) - (update-transforms (-> obj root)) - ) + ) + ) + ) + (update-transforms (-> obj root)) ) - (ja-post) - (none) ) + (ja-post) + (none) ) ;; failed to figure out what this is: @@ -1726,7 +1721,7 @@ This commonly includes things such as: :virtual #t :code (behavior ((arg0 handle)) (until #f - (quaternion-rotate-y! (-> self root quat) (-> self root quat) (* 91022.22 (-> self clock seconds-per-frame))) + (quaternion-rotate-y! (-> self root quat) (-> self root quat) (* 91022.22 (seconds-per-frame))) (set! (-> self root trans quad) (-> self base quad)) (add-blue-motion #t #t #t #f) (let ((f30-0 (-> self bob-amount))) @@ -1935,25 +1930,19 @@ This commonly includes things such as: ;; definition for method 34 of type gem ;; WARN: Return type mismatch int vs none. (defmethod common-post gem ((obj gem)) - (with-pp - (seek! (-> obj roty-speed) 20024.889 (* 65536.0 (-> pp clock seconds-per-frame))) - (quaternion-rotate-y! - (-> obj root quat) - (-> obj root quat) - (* (-> obj roty-speed) (-> pp clock seconds-per-frame)) - ) - (logclear! (-> obj draw status) (draw-control-status no-draw-temp uninited)) - (do-joint-math (-> obj draw) (-> obj node-list) (-> obj skel)) - (let ((a0-7 (-> obj part)) - (a1-3 (-> obj draw skeleton bones 3)) - ) - (if (nonzero? a0-7) - (spawn-with-matrix a0-7 (the-as matrix a1-3)) - ) - ) - 0 - (none) + (seek! (-> obj roty-speed) 20024.889 (* 65536.0 (seconds-per-frame))) + (quaternion-rotate-y! (-> obj root quat) (-> obj root quat) (* (-> obj roty-speed) (seconds-per-frame))) + (logclear! (-> obj draw status) (draw-control-status no-draw-temp uninited)) + (do-joint-math (-> obj draw) (-> obj node-list) (-> obj skel)) + (let ((a0-7 (-> obj part)) + (a1-3 (-> obj draw skeleton bones 3)) + ) + (if (nonzero? a0-7) + (spawn-with-matrix a0-7 (the-as matrix a1-3)) + ) ) + 0 + (none) ) ;; failed to figure out what this is: @@ -2019,7 +2008,7 @@ This commonly includes things such as: (vector-! (-> self root transv) s5-1 (-> self root trans)) (vector-normalize! (-> self root transv) 40960.0) (set! (-> self root transv y) (if (< 0.0 (-> self root transv y)) - (+ f30-0 (* 4.0 (-> self clock seconds-per-frame) (-> self root transv y))) + (+ f30-0 (* 4.0 (seconds-per-frame) (-> self root transv y))) f30-0 ) ) @@ -2083,7 +2072,7 @@ This commonly includes things such as: ) ) ) - (seek! (-> self roty-speed) 0.0 (* 16384.0 (-> self clock seconds-per-frame))) + (seek! (-> self roty-speed) 0.0 (* 16384.0 (seconds-per-frame))) (common-post self) (none) ) @@ -2711,12 +2700,10 @@ This commonly includes things such as: ;; definition for method 34 of type ammo-collectable ;; WARN: Return type mismatch int vs none. (defmethod common-post ammo-collectable ((obj ammo-collectable)) - (with-pp - (quaternion-rotate-y! (-> obj root quat) (-> obj root quat) (* 40049.777 (-> pp clock seconds-per-frame))) - ((method-of-type collectable common-post) obj) - 0 - (none) - ) + (quaternion-rotate-y! (-> obj root quat) (-> obj root quat) (* 40049.777 (seconds-per-frame))) + ((method-of-type collectable common-post) obj) + 0 + (none) ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/jak2/engine/common_objs/conveyor_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/conveyor_REF.gc index d9bad076f6..3e73bddf1c 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/conveyor_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/conveyor_REF.gc @@ -208,7 +208,7 @@ and return it as well. Otherwise, set it to `0`" (* f0-10 (-> (the-as (pointer float) (+ (the-as uint (-> obj speed-mult-array)) (* section-idx 4))))) ) ) - (vector-float*! a2-8 (-> section pull-dir) (* f0-10 (-> self clock seconds-per-frame))) + (vector-float*! a2-8 (-> section pull-dir) (* f0-10 (seconds-per-frame))) ) (send-event proc-focus 'push-trans a2-8 (seconds 10)) ) diff --git a/test/decompiler/reference/jak2/engine/common_objs/elevator_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/elevator_REF.gc index 9e6eac8ae2..a00a79c110 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/elevator_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/elevator_REF.gc @@ -733,7 +733,7 @@ do so. (seek! (-> self path-pos) (-> self path-dest) - (* (/ (-> self params move-rate) (-> self move-dist)) (-> self clock seconds-per-frame)) + (* (/ (-> self params move-rate) (-> self move-dist)) (seconds-per-frame)) ) (let* ((f30-0 (-> self move-pos 0)) (f28-0 (-> self move-pos 1)) diff --git a/test/decompiler/reference/jak2/engine/common_objs/powerups_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/powerups_REF.gc index 39376e696e..00ec56a9f8 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/powerups_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/powerups_REF.gc @@ -523,24 +523,10 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defun eco-blue-glow ((arg0 vector)) - (let ((t9-0 sp-launch-particles-var) - (a0-1 *sp-particle-system-2d*) - (a1-0 (-> *part-id-table* 539)) - (a2-0 *launch-matrix*) - ) - (set! (-> a2-0 trans quad) (-> arg0 quad)) - (t9-0 a0-1 a1-0 a2-0 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (when (rand-vu-percent? 0.5) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 541)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> arg0 quad)) - (t9-2 a0-3 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) + (launch-particles (-> *part-id-table* 539) arg0) + (if (rand-vu-percent? 0.5) + (launch-particles (-> *part-id-table* 541) arg0) ) - ) 0 (none) ) @@ -667,45 +653,26 @@ (set! (-> *part-id-table* 543 init-specs 4 random-rangef) 16384.0) ) ) - (let ((gp-5 sp-launch-particles-var) - (s5-4 *sp-particle-system-2d*) - (s4-4 (-> *part-id-table* 543)) - (s2-4 *launch-matrix*) - ) - (set! (-> s2-4 trans quad) - (-> (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-99)) quad) - ) - (gp-5 s5-4 s4-4 s2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) + (launch-particles + (-> *part-id-table* 543) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data v1-99)) ) ) (let ((gp-6 (rand-vu-int-range 3 (+ (-> self node-list length) -1)))) - (let ((s5-5 sp-launch-particles-var) - (s4-5 *sp-particle-system-2d*) - (s3-5 (-> *part-id-table* (if (rand-vu-percent? 0.5) - 539 - 540 - ) - ) - ) - (s1-4 *launch-matrix*) + (launch-particles + (-> *part-id-table* (if (rand-vu-percent? 0.5) + 539 + 540 + ) ) - (set! (-> s1-4 trans quad) - (-> (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data gp-6)) quad) - ) - (s5-5 s4-5 s3-5 s1-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data gp-6)) ) - (when (rand-vu-percent? 0.5) - (let ((s5-6 sp-launch-particles-var) - (s4-6 *sp-particle-system-2d*) - (s3-6 (-> *part-id-table* 541)) - (s1-5 *launch-matrix*) - ) - (set! (-> s1-5 trans quad) - (-> (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data gp-6)) quad) - ) - (s5-6 s4-6 s3-6 s1-5 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) + (if (rand-vu-percent? 0.5) + (launch-particles + (-> *part-id-table* 541) + (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data gp-6)) + ) ) - ) ) (let ((v1-123 (rand-vu-int-range 3 (+ (-> self node-list length) -1))) (gp-7 sp-launch-particles-var) @@ -890,44 +857,30 @@ ) ) (let ((gp-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 38)))) - (when (and (< (fabs (vector-dot - (-> self control dynam gravity-normal) - (vector-! (new 'stack-no-clear 'vector) gp-0 (-> self control trans)) - ) + (if (and (< (fabs (vector-dot + (-> self control dynam gravity-normal) + (vector-! (new 'stack-no-clear 'vector) gp-0 (-> self control trans)) ) - 819.2 - ) - (rand-vu-percent? 0.5) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-15 *sp-particle-system-3d*) - (a1-2 (-> *part-id-table* 165)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-3 a0-15 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) + ) + 819.2 + ) + (rand-vu-percent? 0.5) + ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 165) gp-0) ) - ) ) (let ((gp-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 31)))) - (when (and (< (fabs (vector-dot - (-> self control dynam gravity-normal) - (vector-! (new 'stack-no-clear 'vector) gp-1 (-> self control trans)) - ) + (if (and (< (fabs (vector-dot + (-> self control dynam gravity-normal) + (vector-! (new 'stack-no-clear 'vector) gp-1 (-> self control trans)) ) - 819.2 - ) - (rand-vu-percent? 0.5) - ) - (let ((t9-6 sp-launch-particles-var) - (a0-19 *sp-particle-system-3d*) - (a1-5 (-> *part-id-table* 165)) - (a2-5 *launch-matrix*) - ) - (set! (-> a2-5 trans quad) (-> gp-1 quad)) - (t9-6 a0-19 a1-5 a2-5 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) + ) + 819.2 + ) + (rand-vu-percent? 0.5) + ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 165) gp-1) ) - ) ) (let ((f0-10 (lerp-scale 0.8 1.0 (-> self control ctrl-xz-vel) 0.0 81920.0))) (let ((v1-64 (ja-group))) @@ -935,7 +888,7 @@ (set! f0-10 (* 0.8 f0-10)) ) ) - (seek! (-> self control unknown-float45) f0-10 (-> self clock seconds-per-frame)) + (seek! (-> self control unknown-float45) f0-10 (seconds-per-frame)) ) (let ((f30-1 (-> self control unknown-float45)) (f0-14 (lerp-scale -0.3 0.3 (-> self control ctrl-xz-vel) 0.0 81920.0)) @@ -1006,23 +959,23 @@ ((cpad-hold? (-> self control cpad number) r1) (update-rates! (-> *display* entity-clock) - (seek (-> *display* entity-clock clock-ratio) 60.0 (* 120.0 (-> self clock seconds-per-frame))) + (seek (-> *display* entity-clock clock-ratio) 60.0 (* 120.0 (seconds-per-frame))) ) (update-rates! (-> *display* bg-clock) (-> *display* entity-clock clock-ratio)) (update-rates! (-> *display* target-clock) - (seek (-> *display* target-clock clock-ratio) 2.0 (* 120.0 (-> self clock seconds-per-frame))) + (seek (-> *display* target-clock clock-ratio) 2.0 (* 120.0 (seconds-per-frame))) ) ) ((or (!= (-> *display* entity-clock clock-ratio) 2.0) (!= (-> *display* target-clock clock-ratio) 1.0)) (update-rates! (-> *display* entity-clock) - (seek (-> *display* entity-clock clock-ratio) 2.0 (* 120.0 (-> self clock seconds-per-frame))) + (seek (-> *display* entity-clock clock-ratio) 2.0 (* 120.0 (seconds-per-frame))) ) (update-rates! (-> *display* bg-clock) (-> *display* entity-clock clock-ratio)) (update-rates! (-> *display* target-clock) - (seek (-> *display* target-clock clock-ratio) 1.0 (* 120.0 (-> self clock seconds-per-frame))) + (seek (-> *display* target-clock clock-ratio) 1.0 (* 120.0 (seconds-per-frame))) ) ) ) @@ -1036,23 +989,23 @@ ((cpad-hold? (-> self control cpad number) r1) (update-rates! (-> *display* entity-clock) - (seek (-> *display* entity-clock clock-ratio) 0.3 (* 30.0 (-> self clock seconds-per-frame))) + (seek (-> *display* entity-clock clock-ratio) 0.3 (* 30.0 (seconds-per-frame))) ) (update-rates! (-> *display* bg-clock) (-> *display* entity-clock clock-ratio)) (update-rates! (-> *display* target-clock) - (seek (-> *display* target-clock clock-ratio) 0.5 (* 30.0 (-> self clock seconds-per-frame))) + (seek (-> *display* target-clock clock-ratio) 0.5 (* 30.0 (seconds-per-frame))) ) ) ((or (!= (-> *display* entity-clock clock-ratio) 1.0) (!= (-> *display* target-clock clock-ratio) 1.0)) (update-rates! (-> *display* entity-clock) - (seek (-> *display* entity-clock clock-ratio) 1.0 (* 30.0 (-> self clock seconds-per-frame))) + (seek (-> *display* entity-clock clock-ratio) 1.0 (* 30.0 (seconds-per-frame))) ) (update-rates! (-> *display* bg-clock) (-> *display* entity-clock clock-ratio)) (update-rates! (-> *display* target-clock) - (seek (-> *display* target-clock clock-ratio) 1.0 (* 30.0 (-> self clock seconds-per-frame))) + (seek (-> *display* target-clock clock-ratio) 1.0 (* 30.0 (seconds-per-frame))) ) ) ) @@ -1068,12 +1021,12 @@ (let ((f30-2 (-> self board camera-interp))) (cond ((focus-test? self board) - (seek! (-> self board camera-interp) 1.0 (* 0.1 (-> self clock seconds-per-frame))) + (seek! (-> self board camera-interp) 1.0 (* 0.1 (seconds-per-frame))) ) ((< (-> self control ctrl-xz-vel) 2048.0) ) (else - (seek! (-> self board camera-interp) 0.0 (* 0.1 (-> self clock seconds-per-frame))) + (seek! (-> self board camera-interp) 0.0 (* 0.1 (seconds-per-frame))) ) ) (let ((f28-0 (-> self board camera-interp))) diff --git a/test/decompiler/reference/jak2/engine/common_objs/projectile_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/projectile_REF.gc index 4ca79e6b69..17a7dba4ff 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/projectile_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/projectile_REF.gc @@ -214,42 +214,40 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p ;; WARN: Return type mismatch int vs none. (defun projectile-move-fill-line-sphere ((arg0 projectile)) (local-vars (at-0 int)) - (with-pp - (rlet ((vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (let ((gp-0 (-> arg0 root))) - (let ((a1-0 (new 'stack-no-clear 'collide-query))) - (let ((a2-0 (-> gp-0 root-prim))) - (set! (-> a1-0 start-pos quad) (-> gp-0 trans quad)) - (let ((v1-1 (-> a1-0 move-dist))) - (.lvf vf1 (&-> (-> gp-0 transv) quad)) - (let ((f0-0 (-> pp clock seconds-per-frame))) - (.mov at-0 f0-0) - ) - (.mov vf2 at-0) - (.mov.vf vf1 vf0 :mask #b1000) - (.mul.x.vf vf1 vf1 vf2 :mask #b111) - (.svf (&-> v1-1 quad) vf1) - ) - (let ((v1-2 a1-0)) - (set! (-> v1-2 radius) (-> a2-0 prim-core world-sphere w)) - (set! (-> v1-2 collide-with) (-> a2-0 prim-core collide-with)) - (set! (-> v1-2 ignore-process0) arg0) - (set! (-> v1-2 ignore-process1) (handle->process (-> arg0 ignore-handle))) - (set! (-> v1-2 ignore-pat) (-> gp-0 pat-ignore-mask)) - (set! (-> v1-2 action-mask) (collide-action solid)) + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (let ((gp-0 (-> arg0 root))) + (let ((a1-0 (new 'stack-no-clear 'collide-query))) + (let ((a2-0 (-> gp-0 root-prim))) + (set! (-> a1-0 start-pos quad) (-> gp-0 trans quad)) + (let ((v1-1 (-> a1-0 move-dist))) + (.lvf vf1 (&-> (-> gp-0 transv) quad)) + (let ((f0-0 (seconds-per-frame))) + (.mov at-0 f0-0) ) + (.mov vf2 at-0) + (.mov.vf vf1 vf0 :mask #b1000) + (.mul.x.vf vf1 vf1 vf2 :mask #b111) + (.svf (&-> v1-1 quad) vf1) + ) + (let ((v1-2 a1-0)) + (set! (-> v1-2 radius) (-> a2-0 prim-core world-sphere w)) + (set! (-> v1-2 collide-with) (-> a2-0 prim-core collide-with)) + (set! (-> v1-2 ignore-process0) arg0) + (set! (-> v1-2 ignore-process1) (handle->process (-> arg0 ignore-handle))) + (set! (-> v1-2 ignore-pat) (-> gp-0 pat-ignore-mask)) + (set! (-> v1-2 action-mask) (collide-action solid)) ) - (fill-using-line-sphere *collide-cache* a1-0) ) - (integrate-and-collide! gp-0 (-> gp-0 transv)) + (fill-using-line-sphere *collide-cache* a1-0) ) - 0 - (none) + (integrate-and-collide! gp-0 (-> gp-0 transv)) ) + 0 + (none) ) ) @@ -326,14 +324,14 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p ) ) (when (logtest? (-> self options) (projectile-options proj-options-2)) - (seek! (-> self tween) 1.0 (* 0.5 (-> self clock seconds-per-frame))) + (seek! (-> self tween) 1.0 (* 0.5 (seconds-per-frame))) (let ((f0-4 (vector-vector-distance (-> self root trans) (-> self target-pos)))) (cond ((< f0-4 20480.0) - (seek! (-> self tween) 1.0 (* 3.0 (-> self clock seconds-per-frame))) + (seek! (-> self tween) 1.0 (* 3.0 (seconds-per-frame))) ) ((< f0-4 40960.0) - (seek! (-> self tween) 1.0 (-> self clock seconds-per-frame)) + (seek! (-> self tween) 1.0 (seconds-per-frame)) ) ) ) @@ -550,7 +548,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p ;; definition for function projectile-bounce-update-velocity ;; WARN: Return type mismatch int vs none. (defbehavior projectile-bounce-update-velocity projectile ((arg0 projectile-bounce)) - (set! (-> arg0 root transv y) (- (-> arg0 root transv y) (* 184320.0 (-> self clock seconds-per-frame)))) + (set! (-> arg0 root transv y) (- (-> arg0 root transv y) (* 184320.0 (seconds-per-frame)))) 0 (none) ) diff --git a/test/decompiler/reference/jak2/engine/common_objs/voicebox_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/voicebox_REF.gc index 35cbad0f1a..b4e5352032 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/voicebox_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/voicebox_REF.gc @@ -217,8 +217,8 @@ ) ) (if (< 0.0 f0-6) - (seek! (-> self twist) -0.4 (* 0.3 (-> self clock seconds-per-frame))) - (seek! (-> self twist) 0.4 (* 0.3 (-> self clock seconds-per-frame))) + (seek! (-> self twist) -0.4 (* 0.3 (seconds-per-frame))) + (seek! (-> self twist) 0.4 (* 0.3 (seconds-per-frame))) ) ) (let ((a1-9 (new 'stack-no-clear 'event-message-block))) diff --git a/test/decompiler/reference/jak2/engine/common_objs/water-anim_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/water-anim_REF.gc index 8164a79585..f441bc651c 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/water-anim_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/water-anim_REF.gc @@ -419,7 +419,7 @@ ((#f) ) (('heat) - (send-event (the-as process-tree gp-0) 'heat (* 10.0 (-> self clock seconds-per-frame))) + (send-event (the-as process-tree gp-0) 'heat (* 10.0 (seconds-per-frame))) ) (('drown-death 'lava 'dark-eco-pool) (if (and (not (focus-test? (the-as process-focusable gp-0) board)) diff --git a/test/decompiler/reference/jak2/engine/common_objs/water-flow_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/water-flow_REF.gc index cad8b885c1..690fbfad90 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/water-flow_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/water-flow_REF.gc @@ -131,93 +131,91 @@ ;; WARN: Return type mismatch int vs none. ;; WARN: Function (method 11 flow-control) has a return type of none, but the expression builder found a return statement. (defmethod push-process flow-control ((obj flow-control) (arg0 process-focusable)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (let ((s5-0 (new 'stack-no-clear 'vector))) - (set! (-> s5-0 quad) (-> (get-trans arg0 0) quad)) - (set! (-> s5-0 w) 1.0) - (when (>= (vector4-dot s5-0 (the-as vector (-> obj leading))) 0.0) - (let* ((v1-7 (-> obj sections)) - (a0-3 (-> v1-7 length)) - (a3-0 (the-as object (-> obj leading))) - ) - (dotimes (s3-1 a0-3) - (let ((s2-0 (-> v1-7 data s3-1))) - (when (< (vector4-dot s5-0 (the-as vector (-> s2-0 trailing))) 0.0) - (let ((v1-8 (new 'stack-no-clear 'vector))) - (vector-! v1-8 s5-0 (-> s2-0 start)) - (when (>= (-> obj belt-radius) (fabs (vector-dot v1-8 (-> s2-0 radial-dir)))) - (let* ((f0-7 (vector-dot v1-8 (-> s2-0 pull-dir))) - (f0-9 (- (-> v1-8 y) (* (-> s2-0 pull-dir y) f0-7))) - ) - (when (and (>= f0-9 -41984.0) (>= 41779.2 f0-9)) - (let* ((a0-11 (new 'stack-no-clear 'vector)) - (s1-0 (new 'stack-no-clear 'vector)) - (f30-0 (ray-plane-equation-intersect a0-11 s5-0 (-> s2-0 pull-dir) (the-as vector a3-0))) - (f0-10 (ray-plane-equation-intersect s1-0 s5-0 (-> s2-0 pull-dir) (-> s2-0 trailing))) - ) - (let ((a0-13 (new 'stack-no-clear 'vector))) - (let ((v1-13 (-> s2-0 start))) - (let ((a1-12 (-> s2-0 pull-dir))) - (let ((a2-6 12288.0)) - (.mov vf7 a2-6) - ) - (.lvf vf5 (&-> a1-12 quad)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (new 'stack-no-clear 'vector))) + (set! (-> s5-0 quad) (-> (get-trans arg0 0) quad)) + (set! (-> s5-0 w) 1.0) + (when (>= (vector4-dot s5-0 (the-as vector (-> obj leading))) 0.0) + (let* ((v1-7 (-> obj sections)) + (a0-3 (-> v1-7 length)) + (a3-0 (the-as object (-> obj leading))) + ) + (dotimes (s3-1 a0-3) + (let ((s2-0 (-> v1-7 data s3-1))) + (when (< (vector4-dot s5-0 (the-as vector (-> s2-0 trailing))) 0.0) + (let ((v1-8 (new 'stack-no-clear 'vector))) + (vector-! v1-8 s5-0 (-> s2-0 start)) + (when (>= (-> obj belt-radius) (fabs (vector-dot v1-8 (-> s2-0 radial-dir)))) + (let* ((f0-7 (vector-dot v1-8 (-> s2-0 pull-dir))) + (f0-9 (- (-> v1-8 y) (* (-> s2-0 pull-dir y) f0-7))) + ) + (when (and (>= f0-9 -41984.0) (>= 41779.2 f0-9)) + (let* ((a0-11 (new 'stack-no-clear 'vector)) + (s1-0 (new 'stack-no-clear 'vector)) + (f30-0 (ray-plane-equation-intersect a0-11 s5-0 (-> s2-0 pull-dir) (the-as vector a3-0))) + (f0-10 (ray-plane-equation-intersect s1-0 s5-0 (-> s2-0 pull-dir) (-> s2-0 trailing))) + ) + (let ((a0-13 (new 'stack-no-clear 'vector))) + (let ((v1-13 (-> s2-0 start))) + (let ((a1-12 (-> s2-0 pull-dir))) + (let ((a2-6 12288.0)) + (.mov vf7 a2-6) ) - (.lvf vf4 (&-> v1-13 quad)) + (.lvf vf5 (&-> a1-12 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a0-13 quad) vf6) + (.lvf vf4 (&-> v1-13 quad)) ) - 0 - (let ((f0-12 (/ f30-0 (- f30-0 f0-10))) - (s2-1 (new 'stack-no-clear 'vector)) - ) - (displacement-between-two-points-normalized! (-> obj path) s2-1 (+ (the float s3-1) f0-12)) - (let ((v1-17 (new 'stack-no-clear 'vector))) - (vector-float*! v1-17 s2-1 (* (-> obj speed) (-> pp clock seconds-per-frame))) - (let ((a1-15 (new 'stack-no-clear 'vector))) - (let ((a0-17 v1-17)) - (let ((a2-9 2048.0)) - (.mov vf7 a2-9) - ) - (.lvf vf5 (&-> a0-17 quad)) - ) - (.lvf vf4 (&-> s5-0 quad)) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-15 quad) vf6) - ) - 0 - (send-event arg0 'push-trans v1-17 (seconds 10)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a0-13 quad) vf6) + ) + 0 + (let ((f0-12 (/ f30-0 (- f30-0 f0-10))) + (s2-1 (new 'stack-no-clear 'vector)) ) + (displacement-between-two-points-normalized! (-> obj path) s2-1 (+ (the float s3-1) f0-12)) + (let ((v1-17 (new 'stack-no-clear 'vector))) + (vector-float*! v1-17 s2-1 (* (-> obj speed) (seconds-per-frame))) + (let ((a1-15 (new 'stack-no-clear 'vector))) + (let ((a0-17 v1-17)) + (let ((a2-9 2048.0)) + (.mov vf7 a2-9) + ) + (.lvf vf5 (&-> a0-17 quad)) + ) + (.lvf vf4 (&-> s5-0 quad)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-15 quad) vf6) + ) + 0 + (send-event arg0 'push-trans v1-17 (seconds 10)) ) ) ) ) ) ) - (return #f) ) + (return #f) ) - (set! a3-0 (+ (the-as uint (-> v1-7 data 0 trailing)) (* s3-1 64))) ) + (set! a3-0 (+ (the-as uint (-> v1-7 data 0 trailing)) (* s3-1 64))) ) ) ) - 0 - (none) ) + 0 + (none) ) ) diff --git a/test/decompiler/reference/jak2/engine/common_objs/water_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/water_REF.gc index d302d0ddea..dc1c6bedf6 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/water_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/water_REF.gc @@ -10,14 +10,7 @@ (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) (sound-play "water-drop" :position gp-0) - (let ((t9-3 sp-launch-particles-var) - (a0-4 *sp-particle-system-3d*) - (a1-3 (-> *part-id-table* 501)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-3 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 501) gp-0) ) ) 0 @@ -659,23 +652,9 @@ (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) (sound-play "water-drop" :position s3-0) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-3d*) - (a1-3 (-> *part-id-table* 501)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-3 a0-5 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 501) s3-0) (set! (-> *part-id-table* 536 init-specs 15 initial-valuef) (-> s3-0 y)) - (let ((t9-4 sp-launch-particles-var) - (a0-6 *sp-particle-system-2d*) - (a1-4 (-> *part-id-table* 536)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-0 quad)) - (t9-4 a0-6 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 536) s3-0) ) ) (sparticle-motion-blur arg0 arg1 arg2) @@ -867,7 +846,7 @@ (gp-0 (new 'stack-no-clear 'vector)) ) (set! (-> gp-0 quad) (-> (the-as process-drawable s5-0) water bottom 0 quad)) - (seek! (-> self root scale x) 2.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self root scale x) 2.0 (* 2.0 (seconds-per-frame))) (set! (-> self root scale z) (-> self root scale x)) (set! (-> gp-0 y) (-> (the-as process-drawable s5-0) water surface-height)) (let ((v0-1 (-> self root trans))) @@ -896,34 +875,13 @@ (set! (-> *part-id-table* 506 init-specs 13 initial-valuef) 0.7111111) (set! (-> *part-id-table* 506 init-specs 3 initial-valuef) (-> obj wake-size)) (set! (-> *part-id-table* 506 init-specs 5 initial-valuef) (-> obj wake-size)) - (let ((t9-13 sp-launch-particles-var) - (a0-62 *sp-particle-system-3d*) - (a1-16 (-> *part-id-table* 506)) - (a2-8 *launch-matrix*) - ) - (set! (-> a2-8 trans quad) (-> s3-0 quad)) - (t9-13 a0-62 a1-16 a2-8 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 506) s3-0) (set! (-> *part-id-table* 509 init-specs 1 initial-valuef) (* 0.000004150391 f28-0)) (set! (-> *part-id-table* 509 init-specs 18 initial-valuef) f30-0) - (let ((t9-14 sp-launch-particles-var) - (a0-63 *sp-particle-system-3d*) - (a1-17 (-> *part-id-table* 509)) - (a2-9 *launch-matrix*) - ) - (set! (-> a2-9 trans quad) (-> s3-0 quad)) - (t9-14 a0-63 a1-17 a2-9 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 509) s3-0) (when (< f28-0 4096.0) (set! (-> *part-id-table* 504 init-specs 2 random-rangef) (-> obj ripple-size)) - (let ((t9-15 sp-launch-particles-var) - (a0-64 *sp-particle-system-3d*) - (a1-18 (-> *part-id-table* 504)) - (a2-10 *launch-matrix*) - ) - (set! (-> a2-10 trans quad) (-> s3-0 quad)) - (t9-15 a0-64 a1-18 a2-10 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 504) s3-0) ) ) ) @@ -958,23 +916,9 @@ (+ f0-72 (* f1-26 (sqrtf (+ (* (-> v1-222 x) (-> v1-222 x)) (* (-> v1-222 z) (-> v1-222 z)))))) ) ) - (let ((t9-20 sp-launch-particles-var) - (a0-75 *sp-particle-system-2d*) - (a1-26 (-> *part-id-table* 502)) - (a2-14 *launch-matrix*) - ) - (set! (-> a2-14 trans quad) (-> s3-1 quad)) - (t9-20 a0-75 a1-26 a2-14 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 502) s3-1) (set! (-> *part-id-table* 503 init-specs 16 initial-valuef) (-> obj surface-height)) - (let ((t9-21 sp-launch-particles-var) - (a0-76 *sp-particle-system-2d*) - (a1-27 (-> *part-id-table* 503)) - (a2-15 *launch-matrix*) - ) - (set! (-> a2-15 trans quad) (-> s3-1 quad)) - (t9-21 a0-76 a1-27 a2-15 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 503) s3-1) ) ) ) @@ -1192,14 +1136,7 @@ (set! (-> *part-id-table* 537 init-specs 10 initial-valuef) (* 0.05 (- (-> v0-34 x) (-> obj drip-old-pos x)))) (set! (-> *part-id-table* 537 init-specs 11 initial-valuef) (* 0.05 (- (-> v0-34 y) (-> obj drip-old-pos y)))) (set! (-> *part-id-table* 537 init-specs 12 initial-valuef) (* 0.05 (- (-> v0-34 z) (-> obj drip-old-pos z)))) - (let ((t9-35 sp-launch-particles-var) - (a0-208 *sp-particle-system-2d*) - (a1-61 (-> *part-id-table* 537)) - (a2-22 *launch-matrix*) - ) - (set! (-> a2-22 trans quad) (-> v0-34 quad)) - (t9-35 a0-208 a1-61 a2-22 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 537) v0-34) ) (set! (-> obj drip-time) (current-time)) (logclear! (-> obj flags) (water-flags spawn-drip)) @@ -1433,34 +1370,13 @@ (set! (-> *part-id-table* 506 init-specs 13 initial-valuef) 0.7111111) (set! (-> *part-id-table* 506 init-specs 3 initial-valuef) arg3) (set! (-> *part-id-table* 506 init-specs 5 initial-valuef) arg3) - (let ((t9-0 sp-launch-particles-var) - (a0-1 *sp-particle-system-3d*) - (a1-1 (-> *part-id-table* 506)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> arg1 quad)) - (t9-0 a0-1 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 506) arg1) (set! (-> *part-id-table* 509 init-specs 1 initial-valuef) (* 0.000004150391 f30-0)) (set! (-> *part-id-table* 509 init-specs 18 initial-valuef) arg0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-3d*) - (a1-2 (-> *part-id-table* 509)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> arg1 quad)) - (t9-1 a0-2 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 509) arg1) (when (< f30-0 4096.0) (set! (-> *part-id-table* 504 init-specs 2 random-rangef) arg4) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-3d*) - (a1-3 (-> *part-id-table* 504)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> arg1 quad)) - (t9-2 a0-3 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 504) arg1) ) ) 0 diff --git a/test/decompiler/reference/jak2/engine/draw/drawable_REF.gc b/test/decompiler/reference/jak2/engine/draw/drawable_REF.gc index c8c5c0c10b..1e7edc11b2 100644 --- a/test/decompiler/reference/jak2/engine/draw/drawable_REF.gc +++ b/test/decompiler/reference/jak2/engine/draw/drawable_REF.gc @@ -1001,7 +1001,7 @@ ) ) (when (not (paused?)) - (vector-seek! current-shadow-dir target-shadow-dir (* 0.2 (-> pp clock seconds-per-frame))) + (vector-seek! current-shadow-dir target-shadow-dir (* 0.2 (seconds-per-frame))) (vector-normalize! current-shadow-dir 1.0) ) (set! (-> dc shadow-ctrl settings shadow-dir w) shadow-dir-w) diff --git a/test/decompiler/reference/jak2/engine/entity/entity_REF.gc b/test/decompiler/reference/jak2/engine/entity/entity_REF.gc index 65cd196b5d..2524914b38 100644 --- a/test/decompiler/reference/jak2/engine/entity/entity_REF.gc +++ b/test/decompiler/reference/jak2/engine/entity/entity_REF.gc @@ -71,7 +71,6 @@ ) ;; definition for method 3 of type actor-group -;; INFO: this function exists in multiple non-identical object files (defmethod inspect actor-group ((obj actor-group)) (format #t "[~8x] ~A~%" obj (-> obj type)) (format #t "~Tlength: ~D~%" (-> obj length)) @@ -531,7 +530,6 @@ ) ;; definition for method 2 of type process -;; INFO: this function exists in multiple non-identical object files (defmethod print process ((obj process)) (cond ((and (-> obj top-thread) (!= (-> obj status) 'dead)) @@ -2323,184 +2321,182 @@ (sv-80 string) (sv-96 float) ) - (with-pp - (when *compact-actors* - (if (and (= *compact-actors* 'debug) (= (-> *nk-dead-pool* alive-list prev) (-> *nk-dead-pool* first-gap))) - (churn *nk-dead-pool* 1) - ) - (let ((s5-0 - (the int - (lerp-scale 8.0 1.0 (the float (-> *display* frames (-> *display* last-screen) run-time)) 2000.0 8000.0) - ) - ) - ) - (if (nonzero? *debug-dead-pool*) - (compact *debug-dead-pool* 10) - ) - (compact *nk-dead-pool* s5-0) - (compact *city-dead-pool* s5-0) + (when *compact-actors* + (if (and (= *compact-actors* 'debug) (= (-> *nk-dead-pool* alive-list prev) (-> *nk-dead-pool* first-gap))) + (churn *nk-dead-pool* 1) ) - ) - (update-actor-hash) - (when (not (paused?)) - (let ((s5-1 (-> *display* frames (-> *display* last-screen) run-time))) - (let ((f0-5 (fmax 327680.0 (fmin (+ 327680.0 (* 204.8 (the float (- 7000 s5-1)))) (-> *ACTOR-bank* birth-dist))))) - (seek! (-> *ACTOR-bank* pause-dist) f0-5 (* 81920.0 (-> pp clock seconds-per-frame))) - ) - (seekl! (-> *ACTOR-bank* birth-max) (the int (lerp-scale 25.0 2.0 (the float s5-1) 2000.0 7000.0)) 10) - ) - (if (movie?) - (set! (-> *ACTOR-bank* birth-max) 1000) - ) - ) - (when *spawn-actors* - (set! sv-16 (if (movie?) - (math-camera-pos) - (camera-pos) - ) + (let ((s5-0 + (the int + (lerp-scale 8.0 1.0 (the float (-> *display* frames (-> *display* last-screen) run-time)) 2000.0 8000.0) + ) ) - (set! sv-24 0) - (dotimes (s5-2 (-> obj length)) - (let ((s4-1 (-> obj level s5-2))) - (when (= (-> s4-1 status) 'active) - (set! sv-32 (-> s4-1 task-mask)) - (cond - ((= (-> s4-1 display?) 'special) - (let* ((s4-2 (-> s4-1 entity)) - (s3-1 (-> s4-2 length)) - ) - (dotimes (s2-0 s3-1) - (let ((v1-54 (-> s4-2 data s2-0))) - (cond - ((and (logtest? (-> v1-54 kill-mask) (task-mask special)) (not (logtest? (-> v1-54 kill-mask) sv-32))) - (when (not (or (-> v1-54 process) (logtest? (-> v1-54 perm status) (entity-perm-status bit-0 dead)))) - (birth! (-> v1-54 entity)) - (set! sv-24 (+ sv-24 1)) - (if (>= sv-24 (-> *ACTOR-bank* birth-max)) - (return #f) - ) - ) + ) + (if (nonzero? *debug-dead-pool*) + (compact *debug-dead-pool* 10) + ) + (compact *nk-dead-pool* s5-0) + (compact *city-dead-pool* s5-0) + ) + ) + (update-actor-hash) + (when (not (paused?)) + (let ((s5-1 (-> *display* frames (-> *display* last-screen) run-time))) + (let ((f0-5 (fmax 327680.0 (fmin (+ 327680.0 (* 204.8 (the float (- 7000 s5-1)))) (-> *ACTOR-bank* birth-dist))))) + (seek! (-> *ACTOR-bank* pause-dist) f0-5 (* 81920.0 (seconds-per-frame))) + ) + (seekl! (-> *ACTOR-bank* birth-max) (the int (lerp-scale 25.0 2.0 (the float s5-1) 2000.0 7000.0)) 10) + ) + (if (movie?) + (set! (-> *ACTOR-bank* birth-max) 1000) + ) + ) + (when *spawn-actors* + (set! sv-16 (if (movie?) + (math-camera-pos) + (camera-pos) + ) + ) + (set! sv-24 0) + (dotimes (s5-2 (-> obj length)) + (let ((s4-1 (-> obj level s5-2))) + (when (= (-> s4-1 status) 'active) + (set! sv-32 (-> s4-1 task-mask)) + (cond + ((= (-> s4-1 display?) 'special) + (let* ((s4-2 (-> s4-1 entity)) + (s3-1 (-> s4-2 length)) + ) + (dotimes (s2-0 s3-1) + (let ((v1-54 (-> s4-2 data s2-0))) + (cond + ((and (logtest? (-> v1-54 kill-mask) (task-mask special)) (not (logtest? (-> v1-54 kill-mask) sv-32))) + (when (not (or (-> v1-54 process) (logtest? (-> v1-54 perm status) (entity-perm-status bit-0 dead)))) + (birth! (-> v1-54 entity)) + (set! sv-24 (+ sv-24 1)) + (if (>= sv-24 (-> *ACTOR-bank* birth-max)) + (return #f) + ) ) - (else - (if (and (-> v1-54 process) - (not (logtest? (-> v1-54 perm status) (entity-perm-status no-kill))) - (not (logtest? (-> v1-54 process mask) (process-mask no-kill))) - ) - (kill! (-> v1-54 entity)) - ) - ) + ) + (else + (if (and (-> v1-54 process) + (not (logtest? (-> v1-54 perm status) (entity-perm-status no-kill))) + (not (logtest? (-> v1-54 process mask) (process-mask no-kill))) + ) + (kill! (-> v1-54 entity)) + ) ) ) ) ) ) - ((= (-> s4-1 display?) 'actor) - (let* ((s4-3 (-> s4-1 entity)) - (s3-2 (-> s4-3 length)) - ) - (dotimes (s2-1 s3-2) - (let ((v1-67 (-> s4-3 data s2-1))) - (cond - ((not (logtest? (-> v1-67 kill-mask) sv-32)) - (when (not (or (-> v1-67 process) (logtest? (-> v1-67 perm status) (entity-perm-status bit-0 dead)))) - (birth! (-> v1-67 entity)) - (set! sv-24 (+ sv-24 1)) - (if (>= sv-24 (-> *ACTOR-bank* birth-max)) - (return #f) - ) - ) + ) + ((= (-> s4-1 display?) 'actor) + (let* ((s4-3 (-> s4-1 entity)) + (s3-2 (-> s4-3 length)) + ) + (dotimes (s2-1 s3-2) + (let ((v1-67 (-> s4-3 data s2-1))) + (cond + ((not (logtest? (-> v1-67 kill-mask) sv-32)) + (when (not (or (-> v1-67 process) (logtest? (-> v1-67 perm status) (entity-perm-status bit-0 dead)))) + (birth! (-> v1-67 entity)) + (set! sv-24 (+ sv-24 1)) + (if (>= sv-24 (-> *ACTOR-bank* birth-max)) + (return #f) + ) ) - (else - (if (and (-> v1-67 process) - (not (logtest? (-> v1-67 perm status) (entity-perm-status no-kill))) - (not (logtest? (-> v1-67 process mask) (process-mask no-kill))) - ) - (kill! (-> v1-67 entity)) - ) - ) + ) + (else + (if (and (-> v1-67 process) + (not (logtest? (-> v1-67 perm status) (entity-perm-status no-kill))) + (not (logtest? (-> v1-67 process mask) (process-mask no-kill))) + ) + (kill! (-> v1-67 entity)) + ) ) ) ) ) ) - ((not *vis-actors*) - (let* ((s4-4 (-> s4-1 entity)) - (s3-3 (-> s4-4 length)) - ) - (dotimes (s2-2 s3-3) - (let ((s1-0 (-> s4-4 data s2-2))) - (cond - ((and (< (vector-vector-distance (-> s1-0 trans) sv-16) (-> *ACTOR-bank* birth-dist)) - (not (logtest? (-> s1-0 perm status) (entity-perm-status bit-9 bit-10))) - (not (logtest? (-> s1-0 kill-mask) sv-32)) - ) - (when (not (or (-> s1-0 process) (logtest? (-> s1-0 perm status) (entity-perm-status bit-0 dead)))) - (birth! (-> s1-0 entity)) - (set! sv-24 (+ sv-24 1)) - (if (>= sv-24 (-> *ACTOR-bank* birth-max)) - (return #f) - ) - ) + ) + ((not *vis-actors*) + (let* ((s4-4 (-> s4-1 entity)) + (s3-3 (-> s4-4 length)) + ) + (dotimes (s2-2 s3-3) + (let ((s1-0 (-> s4-4 data s2-2))) + (cond + ((and (< (vector-vector-distance (-> s1-0 trans) sv-16) (-> *ACTOR-bank* birth-dist)) + (not (logtest? (-> s1-0 perm status) (entity-perm-status bit-9 bit-10))) + (not (logtest? (-> s1-0 kill-mask) sv-32)) + ) + (when (not (or (-> s1-0 process) (logtest? (-> s1-0 perm status) (entity-perm-status bit-0 dead)))) + (birth! (-> s1-0 entity)) + (set! sv-24 (+ sv-24 1)) + (if (>= sv-24 (-> *ACTOR-bank* birth-max)) + (return #f) + ) ) - (else - (if (and (-> s1-0 process) - (not (logtest? (-> s1-0 perm status) (entity-perm-status no-kill))) - (not (logtest? (-> s1-0 process mask) (process-mask no-kill))) - ) - (kill! (-> s1-0 entity)) - ) - ) + ) + (else + (if (and (-> s1-0 process) + (not (logtest? (-> s1-0 perm status) (entity-perm-status no-kill))) + (not (logtest? (-> s1-0 process mask) (process-mask no-kill))) + ) + (kill! (-> s1-0 entity)) + ) ) ) ) ) ) - (*vis-actors* - (when (not (and (-> s4-1 vis-info 0) (-> s4-1 all-visible?))) - (let* ((s3-4 (-> s4-1 entity)) - (s2-3 (-> s3-4 length)) - (s0-0 #f) - ) - (dotimes (s1-1 s2-3) - (set! sv-48 (-> s3-4 data s1-1)) - (cond - ((and (is-object-visible? s4-1 (-> sv-48 vis-id)) - (not (logtest? (-> sv-48 perm status) (entity-perm-status bit-9 bit-10))) - (not (logtest? (-> sv-48 kill-mask) sv-32)) - (or (-> s4-1 vis-info 0) (< (vector-vector-distance (-> sv-48 trans) sv-16) (-> sv-48 vis-dist))) - ) - (when (not (or (-> sv-48 process) (logtest? (-> sv-48 perm status) (entity-perm-status bit-0 dead)) s0-0)) - (birth! (-> sv-48 entity)) - (set! sv-24 (+ sv-24 1)) - (when (< (/ (the float (memory-free *nk-dead-pool*)) (the float (memory-total *nk-dead-pool*))) 0.1) - (when *debug-segment* - (let ((s0-1 format)) - (set! sv-64 *stdcon*) - (set! sv-80 "low actor memory, no birth triggered!!! ~,,0fK/~,,0fK~%") - (set! sv-96 (* 0.0009765625 (the float (memory-free *nk-dead-pool*)))) - (let ((a3-2 (* 0.0009765625 (the float (memory-total *nk-dead-pool*))))) - (s0-1 sv-64 sv-80 sv-96 a3-2) - ) + ) + (*vis-actors* + (when (not (and (-> s4-1 vis-info 0) (-> s4-1 all-visible?))) + (let* ((s3-4 (-> s4-1 entity)) + (s2-3 (-> s3-4 length)) + (s0-0 #f) + ) + (dotimes (s1-1 s2-3) + (set! sv-48 (-> s3-4 data s1-1)) + (cond + ((and (is-object-visible? s4-1 (-> sv-48 vis-id)) + (not (logtest? (-> sv-48 perm status) (entity-perm-status bit-9 bit-10))) + (not (logtest? (-> sv-48 kill-mask) sv-32)) + (or (-> s4-1 vis-info 0) (< (vector-vector-distance (-> sv-48 trans) sv-16) (-> sv-48 vis-dist))) + ) + (when (not (or (-> sv-48 process) (logtest? (-> sv-48 perm status) (entity-perm-status bit-0 dead)) s0-0)) + (birth! (-> sv-48 entity)) + (set! sv-24 (+ sv-24 1)) + (when (< (/ (the float (memory-free *nk-dead-pool*)) (the float (memory-total *nk-dead-pool*))) 0.1) + (when *debug-segment* + (let ((s0-1 format)) + (set! sv-64 *stdcon*) + (set! sv-80 "low actor memory, no birth triggered!!! ~,,0fK/~,,0fK~%") + (set! sv-96 (* 0.0009765625 (the float (memory-free *nk-dead-pool*)))) + (let ((a3-2 (* 0.0009765625 (the float (memory-total *nk-dead-pool*))))) + (s0-1 sv-64 sv-80 sv-96 a3-2) ) ) - (set! s0-0 #t) ) + (set! s0-0 #t) ) ) - (else - (when (and (-> sv-48 process) - (not (logtest? (-> sv-48 perm status) (entity-perm-status no-kill))) - (not (logtest? (-> sv-48 process mask) (process-mask no-kill))) - ) - (kill! (-> sv-48 entity)) - (set! sv-24 (+ sv-24 1)) - ) + ) + (else + (when (and (-> sv-48 process) + (not (logtest? (-> sv-48 perm status) (entity-perm-status no-kill))) + (not (logtest? (-> sv-48 process mask) (process-mask no-kill))) + ) + (kill! (-> sv-48 entity)) + (set! sv-24 (+ sv-24 1)) ) ) - (if (>= sv-24 (-> *ACTOR-bank* birth-max)) - (return #f) - ) ) + (if (>= sv-24 (-> *ACTOR-bank* birth-max)) + (return #f) + ) ) ) ) @@ -2509,9 +2505,9 @@ ) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for function entity-birth-no-kill diff --git a/test/decompiler/reference/jak2/engine/game/game-info_REF.gc b/test/decompiler/reference/jak2/engine/game/game-info_REF.gc index 63613a2c7c..d5a53f117b 100644 --- a/test/decompiler/reference/jak2/engine/game/game-info_REF.gc +++ b/test/decompiler/reference/jak2/engine/game/game-info_REF.gc @@ -792,7 +792,7 @@ (set! (-> s5-0 flags) (font-flags shadow kerning large)) (let ((s3-1 (current-time))) (until (>= (- (current-time) s3-1) (+ arg2 -75)) - (+! (-> s5-0 origin y) (* -120.0 (-> self clock seconds-per-frame))) + (+! (-> s5-0 origin y) (* -120.0 (seconds-per-frame))) (let ((s2-0 print-game-text)) (format (clear *temp-string*) "~4,,0f" arg1) (s2-0 *temp-string* s5-0 #f 44 (bucket-id debug-no-zbuf1)) @@ -803,7 +803,7 @@ (let ((s4-1 (current-time))) (until (>= (- (current-time) s4-1) (seconds 0.25)) (set! (-> s5-0 alpha) (lerp-scale 1.0 0.0 (the float (- (current-time) s4-1)) 0.0 150.0)) - (+! (-> s5-0 origin y) (* -120.0 (-> self clock seconds-per-frame))) + (+! (-> s5-0 origin y) (* -120.0 (seconds-per-frame))) (let ((s3-2 print-game-text)) (format (clear *temp-string*) "~4,,0f" arg1) (s3-2 *temp-string* s5-0 #f 44 (bucket-id debug-no-zbuf1)) diff --git a/test/decompiler/reference/jak2/engine/game/settings_REF.gc b/test/decompiler/reference/jak2/engine/game/settings_REF.gc index e71720c2e2..4de3431b92 100644 --- a/test/decompiler/reference/jak2/engine/game/settings_REF.gc +++ b/test/decompiler/reference/jak2/engine/game/settings_REF.gc @@ -1068,323 +1068,321 @@ ;; INFO: Used lq/sq (defmethod update setting-control ((obj setting-control)) (local-vars (v1-41 symbol)) - (with-pp - (run-pending-updates! (-> obj engine-pers) (-> *display* base-clock frame-counter)) - (apply-settings obj) - (let ((s5-0 (-> obj user-current))) - (let ((s4-0 (-> obj user-target))) - (when *sound-player-enable* - (when (!= (-> s5-0 sfx-volume) (-> s4-0 sfx-volume)) - (seek! (-> s5-0 sfx-volume) (-> s4-0 sfx-volume) (-> pp clock seconds-per-frame)) - (sound-set-volume (sound-group sfx) (-> s5-0 sfx-volume)) - ) - (when (!= (-> s5-0 music-volume) (-> s4-0 music-volume)) - (seek! (-> s5-0 music-volume) (-> s4-0 music-volume) (-> pp clock seconds-per-frame)) - (sound-set-volume (sound-group music) (* 0.75 (-> s5-0 music-volume))) - ) - (when (!= (-> s5-0 dialog-volume) (-> s4-0 dialog-volume)) - (seek! (-> s5-0 dialog-volume) (-> s4-0 dialog-volume) (-> pp clock seconds-per-frame)) - (sound-set-volume (sound-group dialog dialog2) (-> s5-0 dialog-volume)) - ) - (when (!= (-> s5-0 ambient-volume) (-> s4-0 ambient-volume)) - (seek! (-> s5-0 ambient-volume) (-> s4-0 ambient-volume) (-> pp clock seconds-per-frame)) - (sound-set-volume (sound-group ambient) (-> s5-0 ambient-volume)) - ) + (run-pending-updates! (-> obj engine-pers) (-> *display* base-clock frame-counter)) + (apply-settings obj) + (let ((s5-0 (-> obj user-current))) + (let ((s4-0 (-> obj user-target))) + (when *sound-player-enable* + (when (!= (-> s5-0 sfx-volume) (-> s4-0 sfx-volume)) + (seek! (-> s5-0 sfx-volume) (-> s4-0 sfx-volume) (seconds-per-frame)) + (sound-set-volume (sound-group sfx) (-> s5-0 sfx-volume)) ) - (when (!= (-> s5-0 language) (-> s4-0 language)) - (set! (-> s5-0 language) (-> s4-0 language)) - (case (-> s5-0 language) - (((language-enum uk-english)) - (set-language (language-enum english)) - ) - (else - (set-language (-> s5-0 language)) - ) - ) + (when (!= (-> s5-0 music-volume) (-> s4-0 music-volume)) + (seek! (-> s5-0 music-volume) (-> s4-0 music-volume) (seconds-per-frame)) + (sound-set-volume (sound-group music) (* 0.75 (-> s5-0 music-volume))) ) - (set! (-> s5-0 subtitle-language) (-> s4-0 subtitle-language)) - (when (!= (-> s5-0 stereo-mode) (-> s4-0 stereo-mode)) - (set! (-> s5-0 stereo-mode) (-> s4-0 stereo-mode)) - (sound-set-stereo-mode (the-as stereo-mode (-> s5-0 stereo-mode))) + (when (!= (-> s5-0 dialog-volume) (-> s4-0 dialog-volume)) + (seek! (-> s5-0 dialog-volume) (-> s4-0 dialog-volume) (seconds-per-frame)) + (sound-set-volume (sound-group dialog dialog2) (-> s5-0 dialog-volume)) ) - (when (and (!= (-> s4-0 music) (-> s5-0 music)) - (and (zero? (rpc-busy? 1)) - (or (not (-> s4-0 music)) - (and (< 0.0 (-> s5-0 music-volume)) (not (load-in-progress? *level*)) (not (-> s5-0 movie))) - ) - (begin - (countdown (v1-40 3) - (when (not (-> *level* sound-bank v1-40)) - (set! v1-41 #f) - (goto cfg-37) - ) - ) - (set! v1-41 #t) - (label cfg-37) - (and v1-41 (not *master-exit*)) - ) - ) - ) - (cond - ((-> s4-0 music) - (format 0 "Load music ~A~%" (-> s4-0 music)) - (set! (-> s5-0 sound-flava) (the-as uint 0)) - (sound-music-load (string->sound-name (symbol->string (-> s4-0 music)))) - ) - (else - (format 0 "Unload music~%") - (sound-music-unload) - ) - ) - (set! (-> s5-0 music) (-> s4-0 music)) - ) - (set! (-> s4-0 sound-excitement) (fmax 0.0 (fmin 0.99 (-> s4-0 sound-excitement)))) - (set! (-> s4-0 sound-reverb) (fmax 0.0 (fmin 1.0 (-> s4-0 sound-reverb)))) - (when (and (nonzero? (-> obj user-default sound-stinger)) - (>= (- (-> *display* base-clock frame-counter) (-> obj sound-stinger-time)) (seconds 0.5)) - ) - (set! (-> obj user-default sound-stinger) 0) - 0 - ) - (when *sound-player-enable* - (cond - ((!= (-> s5-0 sound-flava) (-> s4-0 sound-flava)) - (set! (-> s5-0 sound-flava) (-> s4-0 sound-flava)) - (sound-set-midi-reg 14 (the-as int (-> s5-0 sound-flava))) - ) - ((!= (-> s5-0 sound-reverb) (-> s4-0 sound-reverb)) - (set! (-> s5-0 sound-reverb) (-> s4-0 sound-reverb)) - (sound-set-reverb 4 (-> s5-0 sound-reverb) (-> s5-0 sound-reverb) (the-as uint 3)) - ) - ((!= (-> s5-0 sound-mode) (-> s4-0 sound-mode)) - (set! (-> s5-0 sound-mode) (-> s4-0 sound-mode)) - (sound-set-midi-reg 3 (the-as int (-> s5-0 sound-mode))) - ) - ((!= (-> s5-0 sound-tune) (-> s4-0 sound-tune)) - (set! (-> s5-0 sound-tune) (-> s4-0 sound-tune)) - (sound-set-midi-reg 4 (the-as int (-> s5-0 sound-tune))) - ) - ((!= (-> s5-0 sound-stinger) (-> s4-0 sound-stinger)) - (set! (-> s5-0 sound-stinger) (-> s4-0 sound-stinger)) - (sound-set-midi-reg 0 (-> s5-0 sound-stinger)) - (set! (-> obj sound-stinger-time) (-> *display* base-clock frame-counter)) - ) - ((!= (the int (* 4.0 (-> s4-0 sound-excitement))) (the int (* 4.0 (-> obj sound-excitement-targ)))) - (let ((v1-87 (max 0 (min 3 (the int (* 4.0 (-> s4-0 sound-excitement))))))) - (when (and (< (-> obj sound-excitement-targ) (-> s4-0 sound-excitement)) - (< (the-as int (-> obj sound-excitement-level)) v1-87) - (zero? (-> obj user-default sound-stinger)) - ) - (set! (-> obj sound-stinger-time) (-> *display* base-clock frame-counter)) - (set! (-> obj sound-stinger-change-time v1-87) (-> *display* base-clock frame-counter)) - (set! (-> obj user-default sound-stinger) (+ v1-87 9)) - ) - (cond - ((< (the-as int (-> obj sound-excitement-level)) v1-87) - (set! (-> obj sound-excitement-level) (the-as uint v1-87)) - ) - ((< v1-87 (the-as int (+ (-> obj sound-excitement-level) -1))) - (set! (-> obj sound-excitement-level) (the-as uint (+ v1-87 1))) - ) - ((zero? v1-87) - (set! (-> obj sound-excitement-level) (the-as uint v1-87)) - ) - ) - ) - (set! (-> obj sound-excitement-change-time) (-> *display* base-clock frame-counter)) - (set! (-> obj sound-excitement-targ) (-> s4-0 sound-excitement)) - ) - ((and (!= (the int (* 4.0 (-> s5-0 sound-excitement))) (the int (* 4.0 (-> obj sound-excitement-targ)))) - (>= (- (-> *display* base-clock frame-counter) (-> obj sound-excitement-change-time)) (seconds 0.8)) - ) - (max 0 (min 3 (the int (* 4.0 (-> obj sound-excitement-targ))))) - (sound-set-midi-reg 2 (the int (* 100.0 (-> s5-0 sound-excitement)))) - (set! (-> s5-0 sound-excitement) (-> obj sound-excitement-targ)) - (sound-set-midi-reg 16 (the int (* 100.0 (-> s5-0 sound-excitement)))) - ) - ) - ) - (set! (-> s5-0 mode-sound-bank) (-> s4-0 mode-sound-bank)) - (when (!= (-> s5-0 aspect-ratio) (-> s4-0 aspect-ratio)) - (set! (-> s5-0 aspect-ratio) (-> s4-0 aspect-ratio)) - (set-aspect-ratio (-> s5-0 aspect-ratio)) - ) - (when (!= (-> s5-0 use-progressive-scan) (-> s4-0 use-progressive-scan)) - (set! (-> s5-0 use-progressive-scan) (-> s4-0 use-progressive-scan)) - (set! (-> *video-params* set-video-mode) #t) - ) - (when (!= (-> s5-0 video-mode) (-> s4-0 video-mode)) - (set! (-> s5-0 video-mode) (-> s4-0 video-mode)) - (set-video-mode (-> s5-0 video-mode)) - ) - (when (!= (-> s5-0 display-dx) (-> s4-0 display-dx)) - (set! (-> s5-0 display-dx) (-> s4-0 display-dx)) - (set! (-> *video-params* display-dx) (/ (-> s4-0 display-dx) 2)) - ) - (when (!= (-> s5-0 display-dy) (-> s4-0 display-dy)) - (set! (-> s5-0 display-dy) (-> s4-0 display-dy)) - (set! (-> *video-params* display-dy) (* (/ (-> s4-0 display-dy) 2) 2)) - ) - (set! (-> *blit-displays-work* horizontal-flip-flag) - (logtest? (-> *game-info* secrets) (game-secrets hflip-screen)) - ) - (set! (-> s5-0 allow-blackout) (-> s4-0 allow-blackout)) - (set! (-> s5-0 bg-a-speed) (-> s4-0 bg-a-speed)) - (set! (-> s5-0 bg-a-force) (-> s4-0 bg-a-force)) - (set! (-> s5-0 bg-r) (-> s4-0 bg-r)) - (set! (-> s5-0 bg-g) (-> s4-0 bg-g)) - (set! (-> s5-0 bg-b) (-> s4-0 bg-b)) - (seek! (-> s5-0 bg-a) (-> s4-0 bg-a) (* (-> s4-0 bg-a-speed) (-> pp clock seconds-per-frame))) - (let ((v1-133 *display*)) - (let ((f0-71 (-> s5-0 bg-a))) - (if (!= (-> s5-0 bg-a-force) 0.0) - (set! f0-71 (-> s5-0 bg-a-force)) - ) - (if (not (-> s5-0 allow-blackout)) - (set! f0-71 0.0) - ) - (set! (-> v1-133 bgcolor r) (the int (* 255.0 (-> s5-0 bg-r)))) - (set! (-> v1-133 bgcolor g) (the int (* 255.0 (-> s5-0 bg-g)))) - (set! (-> v1-133 bgcolor b) (the int (* 255.0 (-> s5-0 bg-b)))) - (set! (-> v1-133 pmode alp) (the int (* 255.0 (- 1.0 f0-71)))) - ) - (set! (-> v1-133 run-half-speed) (the-as basic (-> s5-0 half-speed))) - ) - (set! (-> s5-0 spotlight-color) (-> s4-0 spotlight-color)) - ) - (set! (-> *texture-pool* common-page-mask) (-> s5-0 unknown-int32-00)) - (set! (-> *cpad-list* cpads 0 buzz) (the-as basic (-> s5-0 vibration))) - (let ((v1-137 *ocean*)) - (case (-> s5-0 ocean-off) - ((#t) - (set! (-> v1-137 off) #t) - ) - (('mid) - (set! (-> v1-137 mid-off) #t) - ) - (('near) - (set! (-> v1-137 near-off) #t) - ) + (when (!= (-> s5-0 ambient-volume) (-> s4-0 ambient-volume)) + (seek! (-> s5-0 ambient-volume) (-> s4-0 ambient-volume) (seconds-per-frame)) + (sound-set-volume (sound-group ambient) (-> s5-0 ambient-volume)) ) ) - (set! (-> *mouse* active) (-> s5-0 mouse)) - (set! (-> *mouse* cursor) (the-as basic (and (-> s5-0 mouse) (-> s5-0 cursor)))) - ) - (let ((s5-1 (-> obj cam-current))) - (let ((s4-1 (-> obj cam-target))) - (set! (-> s5-1 entity-or-mode-changed) #f) - (if (and (not (name= (-> s5-1 entity-name) (-> s4-1 entity-name))) - (or (not *target*) (not (logtest? (-> *target* focus-status) (-> s4-1 entity-mask)))) - ) - (set! (-> s4-1 entity-or-mode-changed) #t) - ) - (if (!= (-> s5-1 mode-name) (-> s4-1 mode-name)) - (set! (-> s4-1 entity-or-mode-changed) #t) - ) - (set! (-> s5-1 teleport-on-entity-change) (-> s4-1 teleport-on-entity-change)) - (cam-master-set-entity s4-1) - (cond - ((not (-> s4-1 entity-or-mode-changed)) - ) - ((or (= (-> s5-1 cam-mode) cam-eye) (= (-> s4-1 cam-mode) cam-eye)) - (set! (-> s4-1 no-intro) #t) - (set! (-> s4-1 interp-time) (the-as uint 60)) - (set! (-> s4-1 1Tinterp-time-priority) (the-as uint 2)) - ) - ((= (-> s4-1 cam-mode) cam-endlessfall) - (set! (-> s4-1 no-intro) #t) - (set! (-> s4-1 interp-time) (the-as uint 30)) - (set! (-> s4-1 1Tinterp-time-priority) (the-as uint 2)) - ) - ((or (= (-> s5-1 cam-mode) cam-free-floating) (= (-> s4-1 cam-mode) cam-free-floating)) - (set! (-> s4-1 interp-time) (the-as uint 0)) - (set! (-> s4-1 1Tinterp-time-priority) (the-as uint 2)) - ) - ) - (set! (-> s5-1 entity-name) (-> s4-1 entity-name)) - (set! (-> s5-1 entity-mask) (-> s4-1 entity-mask)) - (set! (-> s5-1 mode-name) (-> s4-1 mode-name)) - (let ((v1-173 (-> s4-1 entity-or-mode-changed))) - (set! (-> s5-1 entity-or-mode-changed) v1-173) - (when v1-173 - (set! (-> s5-1 real-entity-name) (-> s4-1 real-entity-name)) - (set! (-> s5-1 cam-mode) (-> s4-1 cam-mode)) - ) - ) - (+! (-> s5-1 fov) (fmax -182.04445 (fmin 182.04445 (* 0.1 (- (-> s4-1 fov) (-> s5-1 fov)))))) - (set! (-> s5-1 pov-handle) (-> s4-1 pov-handle)) - (set! (-> s5-1 pov-bone) (-> s4-1 pov-bone)) - (set! (-> s5-1 pov-offset quad) (-> s4-1 pov-offset quad)) - (set! (-> s5-1 string-default) (-> s4-1 string-default)) - (set! (-> s5-1 string-max-length-default) (-> s4-1 string-max-length-default)) - (set! (-> s5-1 string-min-length-default) (-> s4-1 string-min-length-default)) - (set! (-> s5-1 string-max-height-default) (-> s4-1 string-max-height-default)) - (set! (-> s5-1 string-min-height-default) (-> s4-1 string-min-height-default)) - (set! (-> s5-1 string-max-length) (-> s4-1 string-max-length)) - (set! (-> s5-1 string-min-length) (-> s4-1 string-min-length)) - (set! (-> s5-1 string-max-height) (-> s4-1 string-max-height)) - (set! (-> s5-1 string-min-height) (-> s4-1 string-min-height)) - (set! (-> s5-1 string-cliff-height) (-> s4-1 string-cliff-height)) - (set! (-> s5-1 string-camera-ceiling) (-> s4-1 string-camera-ceiling)) - (cond - ((-> s5-1 string-default) - (set! (-> s5-1 gun-min-height) (-> s4-1 gun-min-height)) - (set! (-> s5-1 gun-max-height) (-> s4-1 gun-max-height)) + (when (!= (-> s5-0 language) (-> s4-0 language)) + (set! (-> s5-0 language) (-> s4-0 language)) + (case (-> s5-0 language) + (((language-enum uk-english)) + (set-language (language-enum english)) ) (else - (set! (-> s5-1 gun-min-height) (-> s4-1 string-min-height)) - (set! (-> s5-1 gun-max-height) (-> s4-1 string-max-height)) + (set-language (-> s5-0 language)) ) ) - (set! (-> s5-1 string-local-down quad) (-> s4-1 string-local-down quad)) - (set! (-> s5-1 slave-options) (-> s4-1 slave-options)) - (seek! (-> s5-1 matrix-blend-max-angle) (-> s4-1 matrix-blend-max-angle) 182.04445) - (seek! (-> s5-1 matrix-blend-max-partial) (-> s4-1 matrix-blend-max-partial) 0.05) - (set! (-> s5-1 string-spline-max-move) (-> s4-1 string-spline-max-move)) - (set! (-> s5-1 string-spline-accel) (-> s4-1 string-spline-accel)) - (set! (-> s5-1 string-spline-max-move-player) (-> s4-1 string-spline-max-move-player)) - (set! (-> s5-1 string-spline-accel-player) (-> s4-1 string-spline-accel-player)) - (set! (-> s5-1 target-height) (-> s4-1 target-height)) - (set! (-> s5-1 head-offset) (-> s4-1 head-offset)) - (set! (-> s5-1 foot-offset) (-> s4-1 foot-offset)) - (set! (-> s5-1 master-options) (-> s4-1 master-options)) - (set! (-> s5-1 no-intro) (-> s4-1 no-intro)) - (set! (-> s5-1 mouse-input) (-> s4-1 mouse-input)) - (set! (-> s5-1 cpad1-skip-buttons) (-> s4-1 cpad1-skip-buttons)) - (set! (-> s5-1 interp-time) (-> s4-1 interp-time)) - (set! (-> s5-1 1Tinterp-time-priority) (-> s4-1 1Tinterp-time-priority)) - (set! (-> s5-1 string-use-startup-vector) (-> s4-1 string-use-startup-vector)) - (set! (-> s5-1 string-startup-vector quad) (-> s4-1 string-startup-vector quad)) - (set! (-> s5-1 use-look-at-point) (-> s4-1 use-look-at-point)) - (set! (-> s5-1 look-at-point quad) (-> s4-1 look-at-point quad)) - (set! (-> s5-1 use-point-of-interest) (-> s4-1 use-point-of-interest)) - (set! (-> s5-1 point-of-interest quad) (-> s4-1 point-of-interest quad)) - (set! (-> s5-1 use-mouse-tumble-point) (-> s4-1 use-mouse-tumble-point)) - (set! (-> s5-1 mouse-tumble-point quad) (-> s4-1 mouse-tumble-point quad)) - (set! (-> s5-1 handle-of-interest) (-> s4-1 handle-of-interest)) - (let* ((s3-1 (handle->process (-> s5-1 handle-of-interest))) - (a0-147 (the-as process-focusable (if (type? s3-1 process-focusable) - (the-as process-focusable s3-1) - ) - ) - ) - ) - (when (the-as process a0-147) - (set! (-> s5-1 use-point-of-interest) #t) - (set! (-> s5-1 point-of-interest quad) (-> (get-trans a0-147 4) quad)) - ) - ) - (set! (-> obj cam-default point-of-interest quad) (-> s5-1 point-of-interest quad)) - (set! (-> s5-1 butt-handle) (-> s4-1 butt-handle)) - (set! (-> s5-1 butt-angle) (-> s4-1 butt-angle)) - (set! (-> s5-1 extra-follow-height) (-> s4-1 extra-follow-height)) ) - (if (-> s5-1 entity-or-mode-changed) - (cam-master-activate-slave #f) + (set! (-> s5-0 subtitle-language) (-> s4-0 subtitle-language)) + (when (!= (-> s5-0 stereo-mode) (-> s4-0 stereo-mode)) + (set! (-> s5-0 stereo-mode) (-> s4-0 stereo-mode)) + (sound-set-stereo-mode (the-as stereo-mode (-> s5-0 stereo-mode))) + ) + (when (and (!= (-> s4-0 music) (-> s5-0 music)) + (and (zero? (rpc-busy? 1)) + (or (not (-> s4-0 music)) + (and (< 0.0 (-> s5-0 music-volume)) (not (load-in-progress? *level*)) (not (-> s5-0 movie))) + ) + (begin + (countdown (v1-40 3) + (when (not (-> *level* sound-bank v1-40)) + (set! v1-41 #f) + (goto cfg-37) + ) + ) + (set! v1-41 #t) + (label cfg-37) + (and v1-41 (not *master-exit*)) + ) + ) + ) + (cond + ((-> s4-0 music) + (format 0 "Load music ~A~%" (-> s4-0 music)) + (set! (-> s5-0 sound-flava) (the-as uint 0)) + (sound-music-load (string->sound-name (symbol->string (-> s4-0 music)))) + ) + (else + (format 0 "Unload music~%") + (sound-music-unload) + ) ) + (set! (-> s5-0 music) (-> s4-0 music)) + ) + (set! (-> s4-0 sound-excitement) (fmax 0.0 (fmin 0.99 (-> s4-0 sound-excitement)))) + (set! (-> s4-0 sound-reverb) (fmax 0.0 (fmin 1.0 (-> s4-0 sound-reverb)))) + (when (and (nonzero? (-> obj user-default sound-stinger)) + (>= (- (-> *display* base-clock frame-counter) (-> obj sound-stinger-time)) (seconds 0.5)) + ) + (set! (-> obj user-default sound-stinger) 0) + 0 + ) + (when *sound-player-enable* + (cond + ((!= (-> s5-0 sound-flava) (-> s4-0 sound-flava)) + (set! (-> s5-0 sound-flava) (-> s4-0 sound-flava)) + (sound-set-midi-reg 14 (the-as int (-> s5-0 sound-flava))) + ) + ((!= (-> s5-0 sound-reverb) (-> s4-0 sound-reverb)) + (set! (-> s5-0 sound-reverb) (-> s4-0 sound-reverb)) + (sound-set-reverb 4 (-> s5-0 sound-reverb) (-> s5-0 sound-reverb) (the-as uint 3)) + ) + ((!= (-> s5-0 sound-mode) (-> s4-0 sound-mode)) + (set! (-> s5-0 sound-mode) (-> s4-0 sound-mode)) + (sound-set-midi-reg 3 (the-as int (-> s5-0 sound-mode))) + ) + ((!= (-> s5-0 sound-tune) (-> s4-0 sound-tune)) + (set! (-> s5-0 sound-tune) (-> s4-0 sound-tune)) + (sound-set-midi-reg 4 (the-as int (-> s5-0 sound-tune))) + ) + ((!= (-> s5-0 sound-stinger) (-> s4-0 sound-stinger)) + (set! (-> s5-0 sound-stinger) (-> s4-0 sound-stinger)) + (sound-set-midi-reg 0 (-> s5-0 sound-stinger)) + (set! (-> obj sound-stinger-time) (-> *display* base-clock frame-counter)) + ) + ((!= (the int (* 4.0 (-> s4-0 sound-excitement))) (the int (* 4.0 (-> obj sound-excitement-targ)))) + (let ((v1-87 (max 0 (min 3 (the int (* 4.0 (-> s4-0 sound-excitement))))))) + (when (and (< (-> obj sound-excitement-targ) (-> s4-0 sound-excitement)) + (< (the-as int (-> obj sound-excitement-level)) v1-87) + (zero? (-> obj user-default sound-stinger)) + ) + (set! (-> obj sound-stinger-time) (-> *display* base-clock frame-counter)) + (set! (-> obj sound-stinger-change-time v1-87) (-> *display* base-clock frame-counter)) + (set! (-> obj user-default sound-stinger) (+ v1-87 9)) + ) + (cond + ((< (the-as int (-> obj sound-excitement-level)) v1-87) + (set! (-> obj sound-excitement-level) (the-as uint v1-87)) + ) + ((< v1-87 (the-as int (+ (-> obj sound-excitement-level) -1))) + (set! (-> obj sound-excitement-level) (the-as uint (+ v1-87 1))) + ) + ((zero? v1-87) + (set! (-> obj sound-excitement-level) (the-as uint v1-87)) + ) + ) + ) + (set! (-> obj sound-excitement-change-time) (-> *display* base-clock frame-counter)) + (set! (-> obj sound-excitement-targ) (-> s4-0 sound-excitement)) + ) + ((and (!= (the int (* 4.0 (-> s5-0 sound-excitement))) (the int (* 4.0 (-> obj sound-excitement-targ)))) + (>= (- (-> *display* base-clock frame-counter) (-> obj sound-excitement-change-time)) (seconds 0.8)) + ) + (max 0 (min 3 (the int (* 4.0 (-> obj sound-excitement-targ))))) + (sound-set-midi-reg 2 (the int (* 100.0 (-> s5-0 sound-excitement)))) + (set! (-> s5-0 sound-excitement) (-> obj sound-excitement-targ)) + (sound-set-midi-reg 16 (the int (* 100.0 (-> s5-0 sound-excitement)))) + ) + ) + ) + (set! (-> s5-0 mode-sound-bank) (-> s4-0 mode-sound-bank)) + (when (!= (-> s5-0 aspect-ratio) (-> s4-0 aspect-ratio)) + (set! (-> s5-0 aspect-ratio) (-> s4-0 aspect-ratio)) + (set-aspect-ratio (-> s5-0 aspect-ratio)) + ) + (when (!= (-> s5-0 use-progressive-scan) (-> s4-0 use-progressive-scan)) + (set! (-> s5-0 use-progressive-scan) (-> s4-0 use-progressive-scan)) + (set! (-> *video-params* set-video-mode) #t) + ) + (when (!= (-> s5-0 video-mode) (-> s4-0 video-mode)) + (set! (-> s5-0 video-mode) (-> s4-0 video-mode)) + (set-video-mode (-> s5-0 video-mode)) + ) + (when (!= (-> s5-0 display-dx) (-> s4-0 display-dx)) + (set! (-> s5-0 display-dx) (-> s4-0 display-dx)) + (set! (-> *video-params* display-dx) (/ (-> s4-0 display-dx) 2)) + ) + (when (!= (-> s5-0 display-dy) (-> s4-0 display-dy)) + (set! (-> s5-0 display-dy) (-> s4-0 display-dy)) + (set! (-> *video-params* display-dy) (* (/ (-> s4-0 display-dy) 2) 2)) + ) + (set! (-> *blit-displays-work* horizontal-flip-flag) + (logtest? (-> *game-info* secrets) (game-secrets hflip-screen)) + ) + (set! (-> s5-0 allow-blackout) (-> s4-0 allow-blackout)) + (set! (-> s5-0 bg-a-speed) (-> s4-0 bg-a-speed)) + (set! (-> s5-0 bg-a-force) (-> s4-0 bg-a-force)) + (set! (-> s5-0 bg-r) (-> s4-0 bg-r)) + (set! (-> s5-0 bg-g) (-> s4-0 bg-g)) + (set! (-> s5-0 bg-b) (-> s4-0 bg-b)) + (seek! (-> s5-0 bg-a) (-> s4-0 bg-a) (* (-> s4-0 bg-a-speed) (seconds-per-frame))) + (let ((v1-133 *display*)) + (let ((f0-71 (-> s5-0 bg-a))) + (if (!= (-> s5-0 bg-a-force) 0.0) + (set! f0-71 (-> s5-0 bg-a-force)) + ) + (if (not (-> s5-0 allow-blackout)) + (set! f0-71 0.0) + ) + (set! (-> v1-133 bgcolor r) (the int (* 255.0 (-> s5-0 bg-r)))) + (set! (-> v1-133 bgcolor g) (the int (* 255.0 (-> s5-0 bg-g)))) + (set! (-> v1-133 bgcolor b) (the int (* 255.0 (-> s5-0 bg-b)))) + (set! (-> v1-133 pmode alp) (the int (* 255.0 (- 1.0 f0-71)))) + ) + (set! (-> v1-133 run-half-speed) (the-as basic (-> s5-0 half-speed))) + ) + (set! (-> s5-0 spotlight-color) (-> s4-0 spotlight-color)) ) - (-> obj user-current) + (set! (-> *texture-pool* common-page-mask) (-> s5-0 unknown-int32-00)) + (set! (-> *cpad-list* cpads 0 buzz) (the-as basic (-> s5-0 vibration))) + (let ((v1-137 *ocean*)) + (case (-> s5-0 ocean-off) + ((#t) + (set! (-> v1-137 off) #t) + ) + (('mid) + (set! (-> v1-137 mid-off) #t) + ) + (('near) + (set! (-> v1-137 near-off) #t) + ) + ) + ) + (set! (-> *mouse* active) (-> s5-0 mouse)) + (set! (-> *mouse* cursor) (the-as basic (and (-> s5-0 mouse) (-> s5-0 cursor)))) ) + (let ((s5-1 (-> obj cam-current))) + (let ((s4-1 (-> obj cam-target))) + (set! (-> s5-1 entity-or-mode-changed) #f) + (if (and (not (name= (-> s5-1 entity-name) (-> s4-1 entity-name))) + (or (not *target*) (not (logtest? (-> *target* focus-status) (-> s4-1 entity-mask)))) + ) + (set! (-> s4-1 entity-or-mode-changed) #t) + ) + (if (!= (-> s5-1 mode-name) (-> s4-1 mode-name)) + (set! (-> s4-1 entity-or-mode-changed) #t) + ) + (set! (-> s5-1 teleport-on-entity-change) (-> s4-1 teleport-on-entity-change)) + (cam-master-set-entity s4-1) + (cond + ((not (-> s4-1 entity-or-mode-changed)) + ) + ((or (= (-> s5-1 cam-mode) cam-eye) (= (-> s4-1 cam-mode) cam-eye)) + (set! (-> s4-1 no-intro) #t) + (set! (-> s4-1 interp-time) (the-as uint 60)) + (set! (-> s4-1 1Tinterp-time-priority) (the-as uint 2)) + ) + ((= (-> s4-1 cam-mode) cam-endlessfall) + (set! (-> s4-1 no-intro) #t) + (set! (-> s4-1 interp-time) (the-as uint 30)) + (set! (-> s4-1 1Tinterp-time-priority) (the-as uint 2)) + ) + ((or (= (-> s5-1 cam-mode) cam-free-floating) (= (-> s4-1 cam-mode) cam-free-floating)) + (set! (-> s4-1 interp-time) (the-as uint 0)) + (set! (-> s4-1 1Tinterp-time-priority) (the-as uint 2)) + ) + ) + (set! (-> s5-1 entity-name) (-> s4-1 entity-name)) + (set! (-> s5-1 entity-mask) (-> s4-1 entity-mask)) + (set! (-> s5-1 mode-name) (-> s4-1 mode-name)) + (let ((v1-173 (-> s4-1 entity-or-mode-changed))) + (set! (-> s5-1 entity-or-mode-changed) v1-173) + (when v1-173 + (set! (-> s5-1 real-entity-name) (-> s4-1 real-entity-name)) + (set! (-> s5-1 cam-mode) (-> s4-1 cam-mode)) + ) + ) + (+! (-> s5-1 fov) (fmax -182.04445 (fmin 182.04445 (* 0.1 (- (-> s4-1 fov) (-> s5-1 fov)))))) + (set! (-> s5-1 pov-handle) (-> s4-1 pov-handle)) + (set! (-> s5-1 pov-bone) (-> s4-1 pov-bone)) + (set! (-> s5-1 pov-offset quad) (-> s4-1 pov-offset quad)) + (set! (-> s5-1 string-default) (-> s4-1 string-default)) + (set! (-> s5-1 string-max-length-default) (-> s4-1 string-max-length-default)) + (set! (-> s5-1 string-min-length-default) (-> s4-1 string-min-length-default)) + (set! (-> s5-1 string-max-height-default) (-> s4-1 string-max-height-default)) + (set! (-> s5-1 string-min-height-default) (-> s4-1 string-min-height-default)) + (set! (-> s5-1 string-max-length) (-> s4-1 string-max-length)) + (set! (-> s5-1 string-min-length) (-> s4-1 string-min-length)) + (set! (-> s5-1 string-max-height) (-> s4-1 string-max-height)) + (set! (-> s5-1 string-min-height) (-> s4-1 string-min-height)) + (set! (-> s5-1 string-cliff-height) (-> s4-1 string-cliff-height)) + (set! (-> s5-1 string-camera-ceiling) (-> s4-1 string-camera-ceiling)) + (cond + ((-> s5-1 string-default) + (set! (-> s5-1 gun-min-height) (-> s4-1 gun-min-height)) + (set! (-> s5-1 gun-max-height) (-> s4-1 gun-max-height)) + ) + (else + (set! (-> s5-1 gun-min-height) (-> s4-1 string-min-height)) + (set! (-> s5-1 gun-max-height) (-> s4-1 string-max-height)) + ) + ) + (set! (-> s5-1 string-local-down quad) (-> s4-1 string-local-down quad)) + (set! (-> s5-1 slave-options) (-> s4-1 slave-options)) + (seek! (-> s5-1 matrix-blend-max-angle) (-> s4-1 matrix-blend-max-angle) 182.04445) + (seek! (-> s5-1 matrix-blend-max-partial) (-> s4-1 matrix-blend-max-partial) 0.05) + (set! (-> s5-1 string-spline-max-move) (-> s4-1 string-spline-max-move)) + (set! (-> s5-1 string-spline-accel) (-> s4-1 string-spline-accel)) + (set! (-> s5-1 string-spline-max-move-player) (-> s4-1 string-spline-max-move-player)) + (set! (-> s5-1 string-spline-accel-player) (-> s4-1 string-spline-accel-player)) + (set! (-> s5-1 target-height) (-> s4-1 target-height)) + (set! (-> s5-1 head-offset) (-> s4-1 head-offset)) + (set! (-> s5-1 foot-offset) (-> s4-1 foot-offset)) + (set! (-> s5-1 master-options) (-> s4-1 master-options)) + (set! (-> s5-1 no-intro) (-> s4-1 no-intro)) + (set! (-> s5-1 mouse-input) (-> s4-1 mouse-input)) + (set! (-> s5-1 cpad1-skip-buttons) (-> s4-1 cpad1-skip-buttons)) + (set! (-> s5-1 interp-time) (-> s4-1 interp-time)) + (set! (-> s5-1 1Tinterp-time-priority) (-> s4-1 1Tinterp-time-priority)) + (set! (-> s5-1 string-use-startup-vector) (-> s4-1 string-use-startup-vector)) + (set! (-> s5-1 string-startup-vector quad) (-> s4-1 string-startup-vector quad)) + (set! (-> s5-1 use-look-at-point) (-> s4-1 use-look-at-point)) + (set! (-> s5-1 look-at-point quad) (-> s4-1 look-at-point quad)) + (set! (-> s5-1 use-point-of-interest) (-> s4-1 use-point-of-interest)) + (set! (-> s5-1 point-of-interest quad) (-> s4-1 point-of-interest quad)) + (set! (-> s5-1 use-mouse-tumble-point) (-> s4-1 use-mouse-tumble-point)) + (set! (-> s5-1 mouse-tumble-point quad) (-> s4-1 mouse-tumble-point quad)) + (set! (-> s5-1 handle-of-interest) (-> s4-1 handle-of-interest)) + (let* ((s3-1 (handle->process (-> s5-1 handle-of-interest))) + (a0-147 (the-as process-focusable (if (type? s3-1 process-focusable) + (the-as process-focusable s3-1) + ) + ) + ) + ) + (when (the-as process a0-147) + (set! (-> s5-1 use-point-of-interest) #t) + (set! (-> s5-1 point-of-interest quad) (-> (get-trans a0-147 4) quad)) + ) + ) + (set! (-> obj cam-default point-of-interest quad) (-> s5-1 point-of-interest quad)) + (set! (-> s5-1 butt-handle) (-> s4-1 butt-handle)) + (set! (-> s5-1 butt-angle) (-> s4-1 butt-angle)) + (set! (-> s5-1 extra-follow-height) (-> s4-1 extra-follow-height)) + ) + (if (-> s5-1 entity-or-mode-changed) + (cam-master-activate-slave #f) + ) + ) + (-> obj user-current) ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/jak2/engine/game/task/task-arrow_REF.gc b/test/decompiler/reference/jak2/engine/game/task/task-arrow_REF.gc index 0e126fccd5..579fabe24f 100644 --- a/test/decompiler/reference/jak2/engine/game/task/task-arrow_REF.gc +++ b/test/decompiler/reference/jak2/engine/game/task/task-arrow_REF.gc @@ -150,7 +150,7 @@ or collectable items on the ground (jetboard / weapon upgrades / etc)" ) (let ((f0-4 (- (-> obj dist) (-> obj smoothed-dist)))) (if (< (fabs f0-4) 40960.0) - (+! (-> obj smoothed-dist) (* 10.0 (-> self clock seconds-per-frame) f0-4)) + (+! (-> obj smoothed-dist) (* 10.0 (seconds-per-frame) f0-4)) (set! (-> obj smoothed-dist) (-> obj dist)) ) ) @@ -169,7 +169,7 @@ or collectable items on the ground (jetboard / weapon upgrades / etc)" ) (cond ((-> obj moving) - (set! (-> obj rod-of-god-scale) (- (-> obj rod-of-god-scale) (* 8.0 (-> self clock seconds-per-frame)))) + (set! (-> obj rod-of-god-scale) (- (-> obj rod-of-god-scale) (* 8.0 (seconds-per-frame)))) (when (< (-> obj rod-of-god-scale) 0.0) (set! (-> obj rod-of-god-scale) 0.0) (set! (-> obj moving) #f) @@ -189,7 +189,7 @@ or collectable items on the ground (jetboard / weapon upgrades / etc)" ) (else (set! (-> obj pos quad) (-> obj root trans quad)) - (+! (-> obj rod-of-god-scale) (* 8.0 (-> self clock seconds-per-frame))) + (+! (-> obj rod-of-god-scale) (* 8.0 (seconds-per-frame))) (if (< 1.0 (-> obj rod-of-god-scale)) (set! (-> obj rod-of-god-scale) 1.0) ) @@ -203,8 +203,8 @@ or collectable items on the ground (jetboard / weapon upgrades / etc)" (spawn (-> obj part) (-> obj root trans)) ) (else - (+! (-> obj theta) (* 32768.0 (-> self clock seconds-per-frame))) - (+! (-> obj phi) (* 9102.223 (-> self clock seconds-per-frame))) + (+! (-> obj theta) (* 32768.0 (seconds-per-frame))) + (+! (-> obj phi) (* 9102.223 (seconds-per-frame))) (set! (-> obj root trans quad) (-> obj pos quad)) (set! (-> obj root trans y) (+ 28672.0 (* 4096.0 (cos (-> obj theta))) (-> obj pos y))) ) diff --git a/test/decompiler/reference/jak2/engine/geometry/geometry_REF.gc b/test/decompiler/reference/jak2/engine/geometry/geometry_REF.gc index dcc268f3b3..305ec453b0 100644 --- a/test/decompiler/reference/jak2/engine/geometry/geometry_REF.gc +++ b/test/decompiler/reference/jak2/engine/geometry/geometry_REF.gc @@ -538,32 +538,28 @@ ;; definition for function matrix-from-two-vectors-smooth! (defun matrix-from-two-vectors-smooth! ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 float) (arg4 int)) - (with-pp - (let* ((s5-1 (vector-normalize! (vector-cross! (new 'stack-no-clear 'vector) arg2 arg1) 1.0)) - (f0-1 (vector-dot arg1 arg2)) - (f0-2 (acos f0-1)) - (f1-2 (fmin (* arg3 (-> pp clock seconds-per-frame)) (/ (* 5.0 (fabs f0-2)) (the float arg4)))) - (f30-0 (fmax (fmin f0-2 f1-2) (- f1-2))) - ) - (matrix-axis-sin-cos! arg0 s5-1 (sin f30-0) (cos f30-0)) - ) - arg0 + (let* ((s5-1 (vector-normalize! (vector-cross! (new 'stack-no-clear 'vector) arg2 arg1) 1.0)) + (f0-1 (vector-dot arg1 arg2)) + (f0-2 (acos f0-1)) + (f1-2 (fmin (* arg3 (seconds-per-frame)) (/ (* 5.0 (fabs f0-2)) (the float arg4)))) + (f30-0 (fmax (fmin f0-2 f1-2) (- f1-2))) + ) + (matrix-axis-sin-cos! arg0 s5-1 (sin f30-0) (cos f30-0)) ) + arg0 ) ;; definition for function matrix-from-two-vectors-the-long-way-smooth! (defun matrix-from-two-vectors-the-long-way-smooth! ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 float) (arg4 int)) - (with-pp - (let* ((s5-1 (vector-normalize! (vector-cross! (new 'stack-no-clear 'vector) arg2 arg1) 1.0)) - (f0-1 (vector-dot arg1 arg2)) - (f0-3 (- (acos f0-1))) - (f1-2 (fmin (* arg3 (-> pp clock seconds-per-frame)) (/ (* 5.0 (fabs f0-3)) (the float arg4)))) - (f30-0 (fmax (fmin f0-3 f1-2) (- f1-2))) - ) - (matrix-axis-sin-cos! arg0 s5-1 (sin f30-0) (cos f30-0)) - ) - arg0 + (let* ((s5-1 (vector-normalize! (vector-cross! (new 'stack-no-clear 'vector) arg2 arg1) 1.0)) + (f0-1 (vector-dot arg1 arg2)) + (f0-3 (- (acos f0-1))) + (f1-2 (fmin (* arg3 (seconds-per-frame)) (/ (* 5.0 (fabs f0-3)) (the float arg4)))) + (f30-0 (fmax (fmin f0-3 f1-2) (- f1-2))) + ) + (matrix-axis-sin-cos! arg0 s5-1 (sin f30-0) (cos f30-0)) ) + arg0 ) ;; definition for function quaternion-from-two-vectors-smooth! @@ -1449,9 +1445,7 @@ ) ;; definition for function curve-evaluate! -;; WARN: Failed load: (set! vf3 (l.vf (+ v1-9 16))) at op 67 -;; WARN: Failed load: (set! vf4 (l.vf (+ v1-9 32))) at op 69 -;; WARN: Failed load: (set! vf5 (l.vf (+ v1-9 48))) at op 71 +;; ERROR: Failed load: (set! vf3 (l.vf (+ v1-9 16))) at op 67 ;; ERROR: Unsupported inline assembly instruction kind - [addiu v1, s3, -3] ;; ERROR: Unsupported inline assembly instruction kind - [sll v1, v1, 4] (defun curve-evaluate! ((arg0 vector) (arg1 float) (arg2 (inline-array vector)) (arg3 int) (arg4 (pointer float)) (arg5 int)) diff --git a/test/decompiler/reference/jak2/engine/gfx/foreground/lightning_REF.gc b/test/decompiler/reference/jak2/engine/gfx/foreground/lightning_REF.gc index 0c44fe1f82..5c3fb95395 100644 --- a/test/decompiler/reference/jak2/engine/gfx/foreground/lightning_REF.gc +++ b/test/decompiler/reference/jak2/engine/gfx/foreground/lightning_REF.gc @@ -355,7 +355,7 @@ (-> arg0 process 0 clock) (cond ((< (-> arg0 state counter) f0-0) - (+! (-> arg0 state counter) (* 300.0 (-> self clock seconds-per-frame))) + (+! (-> arg0 state counter) (* 300.0 (seconds-per-frame))) (let ((gp-0 (-> arg0 state))) (let* ((s5-0 (-> arg0 spec)) (f30-0 (fmax 0.0 (fmin 1.0 (* (- 1.0 (/ (-> gp-0 counter) f0-0)) (-> s5-0 fade-start-factor))))) @@ -860,7 +860,6 @@ ;; definition for function lightning-draw-all ;; WARN: Return type mismatch int vs none. -;; ERROR: Failed store: (s.w! (+ v1-31 8) 0) at op 89 (defun lightning-draw-all () (when (and *lightning* (not (-> *blit-displays-work* menu-mode))) (when (logtest? (-> *display* vu1-enable-user) (vu1-renderer-mask generic)) diff --git a/test/decompiler/reference/jak2/engine/gfx/mood/mood-funcs2_REF.gc b/test/decompiler/reference/jak2/engine/gfx/mood/mood-funcs2_REF.gc index 36ac60becc..3c36cd3d9c 100644 --- a/test/decompiler/reference/jak2/engine/gfx/mood/mood-funcs2_REF.gc +++ b/test/decompiler/reference/jak2/engine/gfx/mood/mood-funcs2_REF.gc @@ -129,16 +129,16 @@ ) (set! (-> arg0 times 4 w) (+ 1.2 (* 0.2 (cos (-> gp-0 3))))) (when (not (paused?)) - (let ((f0-17 (+ (-> gp-0 0) (* 18204.445 (-> self clock seconds-per-frame))))) + (let ((f0-17 (+ (-> gp-0 0) (* 18204.445 (seconds-per-frame))))) (set! (-> gp-0 0) (- f0-17 (* (the float (the int (/ f0-17 65536.0))) 65536.0))) ) - (let ((f0-20 (+ (-> gp-0 1) (* 196608.0 (-> self clock seconds-per-frame))))) + (let ((f0-20 (+ (-> gp-0 1) (* 196608.0 (seconds-per-frame))))) (set! (-> gp-0 1) (- f0-20 (* (the float (the int (/ f0-20 65536.0))) 65536.0))) ) - (let ((f0-23 (+ (-> gp-0 2) (* 163840.0 (-> self clock seconds-per-frame))))) + (let ((f0-23 (+ (-> gp-0 2) (* 163840.0 (seconds-per-frame))))) (set! (-> gp-0 2) (- f0-23 (* (the float (the int (/ f0-23 65536.0))) 65536.0))) ) - (let ((f0-26 (+ (-> gp-0 3) (* 32768.0 (-> self clock seconds-per-frame))))) + (let ((f0-26 (+ (-> gp-0 3) (* 32768.0 (seconds-per-frame))))) (set! (-> gp-0 3) (- f0-26 (* (the float (the int (/ f0-26 65536.0))) 65536.0))) ) ) @@ -1019,7 +1019,7 @@ (set! (-> arg0 times 7 w) (-> s4-0 turret-value)) (when (not (paused?)) (set! (-> s4-0 turret-value) (fmax 0.0 (+ -0.2 (-> s4-0 turret-value)))) - (seek! (-> s4-0 explosion) 0.0 (* 2.5 (-> self clock seconds-per-frame))) + (seek! (-> s4-0 explosion) 0.0 (* 2.5 (seconds-per-frame))) ) ) (when *ocean-map-sewer* @@ -1240,14 +1240,14 @@ ) ) (when (not (paused?)) - (seek! (-> s5-0 door-current) (-> s5-0 door-target) (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> s5-0 door-current) (-> s5-0 door-target) (* 4.0 (seconds-per-frame))) (cond ((-> s5-0 purple-flag) - (set! (-> s5-0 purple) (fmin 1.9 (+ (-> s5-0 purple) (* 2.0 (-> self clock seconds-per-frame))))) + (set! (-> s5-0 purple) (fmin 1.9 (+ (-> s5-0 purple) (* 2.0 (seconds-per-frame))))) (set! (-> s5-0 purple-noise) (rand-vu-float-range 0.0 (-> s5-0 purple))) ) (else - (set! (-> s5-0 purple) (fmax 0.0 (- (-> s5-0 purple) (* 2.0 (-> self clock seconds-per-frame))))) + (set! (-> s5-0 purple) (fmax 0.0 (- (-> s5-0 purple) (* 2.0 (seconds-per-frame))))) (set! (-> s5-0 purple-noise) 0.0) ) ) @@ -1926,7 +1926,7 @@ (else (set! (-> arg0 times 0 w) 1.0) (set! (-> arg0 times 1 w) 1.0) - (update-mood-pulse arg0 7 0 0.75 0.25 (* 65536.0 (-> self clock seconds-per-frame)) 0.0) + (update-mood-pulse arg0 7 0 0.75 0.25 (* 65536.0 (seconds-per-frame)) 0.0) ) ) 0 @@ -1977,7 +1977,7 @@ (else (set! (-> arg0 times 0 w) 1.0) (set! (-> arg0 times 1 w) 1.0) - (update-mood-pulse arg0 7 16 0.75 0.25 (* 65536.0 (-> self clock seconds-per-frame)) 0.0) + (update-mood-pulse arg0 7 16 0.75 0.25 (* 65536.0 (seconds-per-frame)) 0.0) (update-mood-electricity arg0 6 20 0.8 1.0) (let ((s5-0 (the-as fordumpa-states (-> arg0 state)))) (set! (-> arg0 times 2 w) (-> s5-0 turret-value 0)) @@ -2063,12 +2063,12 @@ ((begin (set! (-> arg0 times 0 w) 1.0) (set! (-> arg0 times 1 w) 1.0) - (update-mood-pulse arg0 3 4 0.75 0.25 (* 65536.0 (-> self clock seconds-per-frame)) 0.0) + (update-mood-pulse arg0 3 4 0.75 0.25 (* 65536.0 (seconds-per-frame)) 0.0) (-> arg0 state 0) ) (set! (-> arg0 times 2 w) 0.0) - (update-mood-pulse arg0 4 8 0.75 0.25 (* 65536.0 (-> self clock seconds-per-frame)) 16384.0) - (update-mood-strobe arg0 5 12 85 (* 16.0 (-> self clock seconds-per-frame))) + (update-mood-pulse arg0 4 8 0.75 0.25 (* 65536.0 (seconds-per-frame)) 16384.0) + (update-mood-strobe arg0 5 12 85 (* 16.0 (seconds-per-frame))) ) (else (set! (-> arg0 times 2 w) 1.0) @@ -2135,7 +2135,7 @@ (set! (-> arg0 times 1 w) 1.0) (update-mood-electricity arg0 5 4 0.8 1.0) (update-mood-electricity arg0 6 20 0.8 1.0) - (update-mood-pulse arg0 7 0 0.75 0.25 (* 65536.0 (-> self clock seconds-per-frame)) 0.0) + (update-mood-pulse arg0 7 0 0.75 0.25 (* 65536.0 (seconds-per-frame)) 0.0) ) ) 0 @@ -2308,12 +2308,12 @@ (set! (-> arg0 times 2 w) (-> gp-0 torture)) (when (not (paused?)) (set! (-> gp-0 pulse) (+ 1.125 (* 0.125 (cos (-> gp-0 angle))))) - (let ((f0-14 (+ (-> gp-0 angle) (* 32768.0 (-> self clock seconds-per-frame))))) + (let ((f0-14 (+ (-> gp-0 angle) (* 32768.0 (seconds-per-frame))))) (set! (-> gp-0 angle) (- f0-14 (* (the float (the int (/ f0-14 65536.0))) 65536.0))) ) (if (-> gp-0 torture-flag) - (seek! (-> gp-0 torture) 1.0 (-> self clock seconds-per-frame)) - (seek! (-> gp-0 torture) 0.0 (-> self clock seconds-per-frame)) + (seek! (-> gp-0 torture) 1.0 (seconds-per-frame)) + (seek! (-> gp-0 torture) 0.0 (seconds-per-frame)) ) ) ) @@ -2526,9 +2526,9 @@ (set! (-> arg0 times 5 w) 0.0) ) (when (not (paused?)) - (+! (-> gp-0 time) (* 300.0 (-> self clock seconds-per-frame))) - (+! (-> gp-0 rot) (* 32768.0 (-> self clock seconds-per-frame))) - (+! (-> gp-0 rot2) (* 16384.0 (-> self clock seconds-per-frame))) + (+! (-> gp-0 time) (* 300.0 (seconds-per-frame))) + (+! (-> gp-0 rot) (* 32768.0 (seconds-per-frame))) + (+! (-> gp-0 rot2) (* 16384.0 (seconds-per-frame))) (set! (-> gp-0 flicker) (rand-vu-float-range 0.0 0.1)) ) ) @@ -2844,7 +2844,7 @@ (s0-0 0.85) ) (set! sv-16 0.15) - (let ((t1-0 (* 182.04445 (-> self clock seconds-per-frame) (rand-vu-float-range 60.0 200.0))) + (let ((t1-0 (* 182.04445 (seconds-per-frame) (rand-vu-float-range 60.0 200.0))) (t2-0 0.0) ) (s4-0 s3-0 s2-0 s1-0 s0-0 sv-16 t1-0 t2-0) @@ -2857,7 +2857,7 @@ (s0-1 0.85) ) (set! sv-32 0.15) - (let ((t1-1 (* 182.04445 (-> self clock seconds-per-frame) (rand-vu-float-range 120.0 180.0))) + (let ((t1-1 (* 182.04445 (seconds-per-frame) (rand-vu-float-range 120.0 180.0))) (t2-1 16384.0) ) (s4-1 s3-1 s2-1 s1-1 s0-1 sv-32 t1-1 t2-1) @@ -2878,7 +2878,7 @@ ) (when (not (paused?)) (set! (-> gp-0 drillbit) (rand-vu-float-range 0.5 1.0)) - (seek! (-> gp-0 explosion) 0.0 (* 2.5 (-> self clock seconds-per-frame))) + (seek! (-> gp-0 explosion) 0.0 (* 2.5 (seconds-per-frame))) ) ) ) @@ -3145,12 +3145,12 @@ (set! (-> arg0 times 1 w) 1.0) (update-mood-caustics arg0 2 (-> gp-1 rot) 10922.667 0.75 0.25) (update-mood-caustics arg0 3 (-> gp-1 rot) 0.0 0.75 0.25) - (update-mood-pulse arg0 4 0 0.875 0.125 (* 196608.0 (-> self clock seconds-per-frame)) 0.0) + (update-mood-pulse arg0 4 0 0.875 0.125 (* 196608.0 (seconds-per-frame)) 0.0) (set! (-> arg0 times 5 w) (+ (-> gp-1 purple) (-> gp-1 purple-noise))) (when (not (paused?)) - (seek! (-> gp-1 purple) 0.0 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> gp-1 purple) 0.0 (* 4.0 (seconds-per-frame))) (set! (-> gp-1 purple-noise) (rand-vu-float-range 0.0 (* 0.2 (-> gp-1 purple)))) - (+! (-> gp-1 rot) (* 16384.0 (-> self clock seconds-per-frame))) + (+! (-> gp-1 rot) (* 16384.0 (seconds-per-frame))) ) ) ) @@ -3232,14 +3232,14 @@ (cond ((zero? v1-9) (set! (-> gp-1 flicker) (rand-vu-float-range 0.2 0.4)) - (set! (-> gp-1 flicker-count) (- (-> gp-1 flicker-count) (-> self clock seconds-per-frame))) + (set! (-> gp-1 flicker-count) (- (-> gp-1 flicker-count) (seconds-per-frame))) (when (>= 0.0 (-> gp-1 flicker-count)) (set! (-> gp-1 flicker-count) (rand-vu-float-range 0.25 1.0)) (set! (-> gp-1 flicker-state) 1) ) ) ((= v1-9 1) - (set! (-> gp-1 flicker-count) (- (-> gp-1 flicker-count) (-> self clock seconds-per-frame))) + (set! (-> gp-1 flicker-count) (- (-> gp-1 flicker-count) (seconds-per-frame))) (when (>= 0.0 (-> gp-1 flicker-count)) (set! (-> gp-1 flicker-count) (rand-vu-float-range 0.1 0.5)) (set! (-> gp-1 flicker-state) 2) @@ -3247,14 +3247,14 @@ ) ((= v1-9 2) (set! (-> gp-1 flicker) (rand-vu-float-range 0.25 0.75)) - (set! (-> gp-1 flicker-count) (- (-> gp-1 flicker-count) (-> self clock seconds-per-frame))) + (set! (-> gp-1 flicker-count) (- (-> gp-1 flicker-count) (seconds-per-frame))) (when (>= 0.0 (-> gp-1 flicker-count)) (set! (-> gp-1 flicker-count) (rand-vu-float-range 0.25 1.0)) (set! (-> gp-1 flicker-state) 3) ) ) (else - (set! (-> gp-1 flicker-count) (- (-> gp-1 flicker-count) (-> self clock seconds-per-frame))) + (set! (-> gp-1 flicker-count) (- (-> gp-1 flicker-count) (seconds-per-frame))) (when (>= 0.0 (-> gp-1 flicker-count)) (set! (-> gp-1 flicker-count) (rand-vu-float-range 0.1 0.5)) (set! (-> gp-1 flicker-state) 0) @@ -3406,12 +3406,12 @@ (set! (-> arg0 times 6 y) f0-7) ) (set! (-> arg0 times 6 w) 1.0) - (update-mood-pulse arg0 4 8 1.15 0.15 (* 43690.668 (-> self clock seconds-per-frame)) 0.0) - (update-mood-pulse arg0 5 24 1.3 0.2 (* 54613.332 (-> self clock seconds-per-frame)) 0.0) + (update-mood-pulse arg0 4 8 1.15 0.15 (* 43690.668 (seconds-per-frame)) 0.0) + (update-mood-pulse arg0 5 24 1.3 0.2 (* 54613.332 (seconds-per-frame)) 0.0) (update-mood-electricity arg0 7 0 0.9 1.0) (when (not (paused?)) - (+! (-> s5-0 rot) (* 13107.2 (-> self clock seconds-per-frame))) - (+! (-> s5-0 robot-rot) (* 32768.0 (-> self clock seconds-per-frame))) + (+! (-> s5-0 rot) (* 13107.2 (seconds-per-frame))) + (+! (-> s5-0 robot-rot) (* 32768.0 (seconds-per-frame))) ) ) ) diff --git a/test/decompiler/reference/jak2/engine/gfx/mood/mood-funcs_REF.gc b/test/decompiler/reference/jak2/engine/gfx/mood/mood-funcs_REF.gc index 7a5adfda0e..4ec95aee66 100644 --- a/test/decompiler/reference/jak2/engine/gfx/mood/mood-funcs_REF.gc +++ b/test/decompiler/reference/jak2/engine/gfx/mood/mood-funcs_REF.gc @@ -902,7 +902,7 @@ (set! (-> arg0 times 6 w) (-> gp-1 shield)) (set! (-> arg0 times 7 w) 1.0) (when (not (paused?)) - (+! (-> gp-1 shield-count) (* 262144.0 (-> self clock seconds-per-frame))) + (+! (-> gp-1 shield-count) (* 262144.0 (seconds-per-frame))) (set! (-> gp-1 shield) (+ 0.875 (* 0.125 (cos (-> gp-1 shield-count))))) ) ) @@ -1219,7 +1219,7 @@ (update-mood-light arg0 5 0 1.0 0.0 arg1 0.0 2.0) (set! (-> arg0 times 7 w) (-> s4-1 explosion)) (if (not (paused?)) - (seek! (-> s4-1 explosion) 0.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> s4-1 explosion) 0.0 (* 2.0 (seconds-per-frame))) ) ) ) @@ -1339,12 +1339,12 @@ (if (and (task-node-closed? (game-task-node drill-mech-smash-consoles)) (not (task-node-closed? (game-task-node drill-mech-resolution))) ) - (update-mood-pulse arg0 7 52 0.75 0.25 (* 65536.0 (-> self clock seconds-per-frame)) 16384.0) + (update-mood-pulse arg0 7 52 0.75 0.25 (* 65536.0 (seconds-per-frame)) 16384.0) ) (when (not (paused?)) (if (-> gp-1 fire-floor-flag) - (seek! (-> gp-1 fire-floor-fade) 1.5 (* 3.0 (-> self clock seconds-per-frame))) - (seek! (-> gp-1 fire-floor-fade) 0.5 (* 3.0 (-> self clock seconds-per-frame))) + (seek! (-> gp-1 fire-floor-fade) 1.5 (* 3.0 (seconds-per-frame))) + (seek! (-> gp-1 fire-floor-fade) 0.5 (* 3.0 (seconds-per-frame))) ) (set! (-> gp-1 fire-floor) (+ (-> gp-1 fire-floor-fade) (* (-> gp-1 fire-floor-fade) (rand-vu-float-range 0.0 0.1))) @@ -1400,11 +1400,7 @@ (let ((s5-1 *math-camera*)) (set! (-> arg0 times 5 w) 1.0) (if (not (paused?)) - (quaternion-rotate-y! - (-> s5-1 quat-other) - (-> s5-1 quat-other) - (* 273.06668 (-> self clock seconds-per-frame)) - ) + (quaternion-rotate-y! (-> s5-1 quat-other) (-> s5-1 quat-other) (* 273.06668 (seconds-per-frame))) ) ) ) @@ -1463,12 +1459,12 @@ (if (and (task-node-closed? (game-task-node drill-mech-smash-consoles)) (not (task-node-closed? (game-task-node drill-mech-resolution))) ) - (update-mood-pulse arg0 7 12 0.75 0.25 (* 65536.0 (-> self clock seconds-per-frame)) 16384.0) + (update-mood-pulse arg0 7 12 0.75 0.25 (* 65536.0 (seconds-per-frame)) 16384.0) ) (when (not (paused?)) (if (-> gp-0 fire-floor-flag) - (seek! (-> gp-0 fire-floor-fade) 1.5 (* 3.0 (-> self clock seconds-per-frame))) - (seek! (-> gp-0 fire-floor-fade) 0.5 (* 3.0 (-> self clock seconds-per-frame))) + (seek! (-> gp-0 fire-floor-fade) 1.5 (* 3.0 (seconds-per-frame))) + (seek! (-> gp-0 fire-floor-fade) 0.5 (* 3.0 (seconds-per-frame))) ) (set! (-> gp-0 fire-floor) (+ (-> gp-0 fire-floor-fade) (* (-> gp-0 fire-floor-fade) (rand-vu-float-range 0.0 0.1))) @@ -1557,7 +1553,7 @@ (set! (-> arg0 times 6 w) 1.0) (set! (-> arg0 times 7 w) 0.0) (if (not (paused?)) - (set! (-> s4-1 explosion) (- (-> s4-1 explosion) (-> self clock seconds-per-frame))) + (set! (-> s4-1 explosion) (- (-> s4-1 explosion) (seconds-per-frame))) ) ) ) @@ -1679,11 +1675,7 @@ (update-mood-flames arg0 6 2 8 0.5 0.0009765625 1.5) (let ((gp-1 *math-camera*)) (if (not (paused?)) - (quaternion-rotate-y! - (-> gp-1 quat-other) - (-> gp-1 quat-other) - (* 273.06668 (-> self clock seconds-per-frame)) - ) + (quaternion-rotate-y! (-> gp-1 quat-other) (-> gp-1 quat-other) (* 273.06668 (seconds-per-frame))) ) ) ) @@ -1855,11 +1847,11 @@ (when (not (paused?)) (cond ((-> s5-1 green-flag) - (set! (-> s5-1 green) (fmin 1.9 (+ (-> s5-1 green) (* 2.0 (-> self clock seconds-per-frame))))) + (set! (-> s5-1 green) (fmin 1.9 (+ (-> s5-1 green) (* 2.0 (seconds-per-frame))))) (set! (-> s5-1 green-noise) (rand-vu-float-range 0.0 (-> s5-1 green))) ) (else - (set! (-> s5-1 green) (fmax 0.0 (- (-> s5-1 green) (* 2.0 (-> self clock seconds-per-frame))))) + (set! (-> s5-1 green) (fmax 0.0 (- (-> s5-1 green) (* 2.0 (seconds-per-frame))))) (set! (-> s5-1 green-noise) 0.0) ) ) @@ -1942,7 +1934,7 @@ ) (when (not (paused?)) (if (-> gp-1 interp-flag) - (seek! (-> gp-1 interp) 1.0 (* 0.5 (-> self clock seconds-per-frame))) + (seek! (-> gp-1 interp) 1.0 (* 0.5 (seconds-per-frame))) ) ) ) @@ -2040,7 +2032,7 @@ (update-mood-light arg0 5 0 1.0 0.0 arg1 0.0 2.0) (set! (-> arg0 times 6 w) (-> s4-1 flash)) (if (not (paused?)) - (set! (-> s4-1 flash) (fmax 0.0 (- (-> s4-1 flash) (* 2.0 (-> self clock seconds-per-frame))))) + (set! (-> s4-1 flash) (fmax 0.0 (- (-> s4-1 flash) (* 2.0 (seconds-per-frame))))) ) ) ) diff --git a/test/decompiler/reference/jak2/engine/gfx/mood/mood_REF.gc b/test/decompiler/reference/jak2/engine/gfx/mood/mood_REF.gc index aced4ff3ba..eba40a2d2a 100644 --- a/test/decompiler/reference/jak2/engine/gfx/mood/mood_REF.gc +++ b/test/decompiler/reference/jak2/engine/gfx/mood/mood_REF.gc @@ -1326,131 +1326,129 @@ Returns the current value of `lightning-id`" ;; WARN: disable def twice: 141. This may happen when a cond (no else) is nested inside of another conditional, but it should be rare. (defmethod gen-lightning-and-thunder! mood-control ((obj mood-control)) (local-vars (a1-1 (array float))) - (with-pp - (let ((v1-3 (-> obj mood-channel-group data (-> obj lightning-index) vecs)) - (a1-0 (-> obj lightning-val)) - (a0-4 (/ (-> obj lightning-time) 2)) - (f0-0 (-> obj lightning-time2)) + (let ((v1-3 (-> obj mood-channel-group data (-> obj lightning-index) vecs)) + (a1-0 (-> obj lightning-val)) + (a0-4 (/ (-> obj lightning-time) 2)) + (f0-0 (-> obj lightning-time2)) + ) + (set! (-> obj lightning-flash) 0.0) + (cond + ((>= 0.0 f0-0) + (cond + ((zero? a1-0) + (set! a1-1 *flash0*) ) - (set! (-> obj lightning-flash) 0.0) - (cond - ((>= 0.0 f0-0) - (cond - ((zero? a1-0) - (set! a1-1 *flash0*) - ) - ((= a1-0 1) - (set! a1-1 *flash1*) - ) - ((= a1-0 2) - (set! a1-1 *flash2*) - ) - ((= a1-0 3) - (set! a1-1 *flash3*) - ) - ((= a1-0 4) - (set! a1-1 *flash4*) - ) - ((= a1-0 5) - (set! a1-1 *flash5*) - ) - ((= a1-0 6) - (set! a1-1 *flash6*) - ) - (else - (set! a1-1 *flash7*) - ) - ) - (cond - ((< a0-4 (-> a1-1 length)) - (let ((f30-0 (-> a1-1 a0-4)) - (s5-0 (new 'stack-no-clear 'vector)) - ) - (cond - ((= (-> obj lightning-index) 4) - (set! (-> obj lightning-flash) f30-0) - ) - ((= (-> obj lightning-index) 5) - (set! (-> obj lightning-flash) f30-0) - (dotimes (s4-0 8) - (set-vector! s5-0 255.0 255.0 255.0 128.0) - (vector4-lerp! - (the-as vector (-> obj mood-fog-table data s4-0)) - (the-as vector (-> obj mood-fog-table data s4-0)) - s5-0 - f30-0 - ) - ) - ) - (else - (set! (-> obj lightning-flash) (* 1.9921875 f30-0)) - (set-vector! (-> v1-3 0) 1.0 1.0 1.0 1.0) - (set! (-> v1-3 1 quad) (-> v1-3 0 quad)) - (set! (-> v1-3 2 quad) (-> v1-3 0 quad)) - (set! (-> v1-3 3 quad) (-> v1-3 0 quad)) - (set! (-> v1-3 4 quad) (-> v1-3 0 quad)) - (set! (-> v1-3 5 quad) (-> v1-3 0 quad)) - ) - ) - ) - (when (not (paused?)) - (let ((v0-2 (the-as number (+ (-> obj lightning-time) 1)))) - (set! (-> obj lightning-time) (the-as int v0-2)) - v0-2 - ) - ) - ) - ((and (level-get-target-inside *level*) (= (-> (level-get-target-inside *level*) name) 'nest)) - (set! (-> obj lightning-time2) (rand-vu-float-range 3.0 5.0)) - ) - (else - (set! (-> obj lightning-time2) (rand-vu-float-range 15.0 20.0)) - ) + ((= a1-0 1) + (set! a1-1 *flash1*) + ) + ((= a1-0 2) + (set! a1-1 *flash2*) + ) + ((= a1-0 3) + (set! a1-1 *flash3*) + ) + ((= a1-0 4) + (set! a1-1 *flash4*) + ) + ((= a1-0 5) + (set! a1-1 *flash5*) + ) + ((= a1-0 6) + (set! a1-1 *flash6*) + ) + (else + (set! a1-1 *flash7*) ) ) - (else - (when (not (paused?)) - (set! (-> obj lightning-time2) (- (-> obj lightning-time2) (-> pp clock seconds-per-frame))) - (when (>= 0.0 (-> obj lightning-time2)) - (set! (-> obj lightning-index) (mod (the-as int (rand-uint31-gen *random-generator*)) 6)) - (set! (-> obj lightning-val) (the-as int (logand (rand-uint31-gen *random-generator*) 7))) - (set! (-> obj lightning-time) 0) - (cond - ((zero? (-> obj lightning-index)) - (play-or-stop-lightning! - obj - (static-sound-spec "thunder-b") - (new 'static 'vector :x 37109760.0 :y 16261120.0 :z 5857280.0) - ) - ) - ((= (-> obj lightning-index) 1) - (play-or-stop-lightning! - obj - (static-sound-spec "thunder-b") - (new 'static 'vector :x 20480000.0 :y 33341440.0 :z 12124160.0) - ) - ) - ((= (-> obj lightning-index) 2) - (play-or-stop-lightning! - obj - (static-sound-spec "thunder-b") - (new 'static 'vector :x -20480000.0 :y 33341440.0 :z 12124160.0) - ) - ) - ((= (-> obj lightning-index) 3) - (play-or-stop-lightning! - obj - (static-sound-spec "thunder-b") - (new 'static 'vector :x -37109760.0 :y 16261120.0 :z 5857280.0) - ) - ) - ((= (-> obj lightning-index) 4) - (play-or-stop-lightning! obj (static-sound-spec "thunder-c") (new 'static 'vector :y 40960000.0)) - ) - ((= (-> obj lightning-index) 5) - (play-or-stop-lightning! obj (static-sound-spec "thunder-a") (new 'static 'vector :y 40960000.0)) - ) + (cond + ((< a0-4 (-> a1-1 length)) + (let ((f30-0 (-> a1-1 a0-4)) + (s5-0 (new 'stack-no-clear 'vector)) ) + (cond + ((= (-> obj lightning-index) 4) + (set! (-> obj lightning-flash) f30-0) + ) + ((= (-> obj lightning-index) 5) + (set! (-> obj lightning-flash) f30-0) + (dotimes (s4-0 8) + (set-vector! s5-0 255.0 255.0 255.0 128.0) + (vector4-lerp! + (the-as vector (-> obj mood-fog-table data s4-0)) + (the-as vector (-> obj mood-fog-table data s4-0)) + s5-0 + f30-0 + ) + ) + ) + (else + (set! (-> obj lightning-flash) (* 1.9921875 f30-0)) + (set-vector! (-> v1-3 0) 1.0 1.0 1.0 1.0) + (set! (-> v1-3 1 quad) (-> v1-3 0 quad)) + (set! (-> v1-3 2 quad) (-> v1-3 0 quad)) + (set! (-> v1-3 3 quad) (-> v1-3 0 quad)) + (set! (-> v1-3 4 quad) (-> v1-3 0 quad)) + (set! (-> v1-3 5 quad) (-> v1-3 0 quad)) + ) + ) + ) + (when (not (paused?)) + (let ((v0-2 (the-as number (+ (-> obj lightning-time) 1)))) + (set! (-> obj lightning-time) (the-as int v0-2)) + v0-2 + ) + ) + ) + ((and (level-get-target-inside *level*) (= (-> (level-get-target-inside *level*) name) 'nest)) + (set! (-> obj lightning-time2) (rand-vu-float-range 3.0 5.0)) + ) + (else + (set! (-> obj lightning-time2) (rand-vu-float-range 15.0 20.0)) + ) + ) + ) + (else + (when (not (paused?)) + (set! (-> obj lightning-time2) (- (-> obj lightning-time2) (seconds-per-frame))) + (when (>= 0.0 (-> obj lightning-time2)) + (set! (-> obj lightning-index) (mod (the-as int (rand-uint31-gen *random-generator*)) 6)) + (set! (-> obj lightning-val) (the-as int (logand (rand-uint31-gen *random-generator*) 7))) + (set! (-> obj lightning-time) 0) + (cond + ((zero? (-> obj lightning-index)) + (play-or-stop-lightning! + obj + (static-sound-spec "thunder-b") + (new 'static 'vector :x 37109760.0 :y 16261120.0 :z 5857280.0) + ) + ) + ((= (-> obj lightning-index) 1) + (play-or-stop-lightning! + obj + (static-sound-spec "thunder-b") + (new 'static 'vector :x 20480000.0 :y 33341440.0 :z 12124160.0) + ) + ) + ((= (-> obj lightning-index) 2) + (play-or-stop-lightning! + obj + (static-sound-spec "thunder-b") + (new 'static 'vector :x -20480000.0 :y 33341440.0 :z 12124160.0) + ) + ) + ((= (-> obj lightning-index) 3) + (play-or-stop-lightning! + obj + (static-sound-spec "thunder-b") + (new 'static 'vector :x -37109760.0 :y 16261120.0 :z 5857280.0) + ) + ) + ((= (-> obj lightning-index) 4) + (play-or-stop-lightning! obj (static-sound-spec "thunder-c") (new 'static 'vector :y 40960000.0)) + ) + ((= (-> obj lightning-index) 5) + (play-or-stop-lightning! obj (static-sound-spec "thunder-a") (new 'static 'vector :y 40960000.0)) + ) ) ) ) @@ -1564,17 +1562,15 @@ Returns the current value of `lightning-id`" (seek! (-> obj current-interp cloud) (-> obj target-interp cloud) - (* (/ 1.0 (-> obj speed-interp cloud)) (-> self clock seconds-per-frame)) + (* (/ 1.0 (-> obj speed-interp cloud)) (seconds-per-frame)) ) (seek! (-> obj current-interp fog) (-> obj target-interp fog) - (* (/ 1.0 (-> obj speed-interp fog)) (-> self clock seconds-per-frame)) + (* (/ 1.0 (-> obj speed-interp fog)) (seconds-per-frame)) ) (when (!= (-> obj time-until-random cloud) -99.0) - (set! (-> obj time-until-random cloud) - (- (-> obj time-until-random cloud) (* 300.0 (-> self clock seconds-per-frame))) - ) + (set! (-> obj time-until-random cloud) (- (-> obj time-until-random cloud) (* 300.0 (seconds-per-frame)))) (when (< (-> obj time-until-random cloud) 0.0) (set! (-> obj time-until-random cloud) (rand-vu-float-range (-> obj time-until-random-min cloud) (-> obj time-until-random-max cloud)) @@ -1604,9 +1600,7 @@ Returns the current value of `lightning-id`" ) ) (when (!= (-> obj time-until-random fog) -99.0) - (set! (-> obj time-until-random fog) - (- (-> obj time-until-random fog) (* 300.0 (-> self clock seconds-per-frame))) - ) + (set! (-> obj time-until-random fog) (- (-> obj time-until-random fog) (* 300.0 (seconds-per-frame)))) (when (< (-> obj time-until-random fog) 0.0) (set! (-> obj time-until-random fog) (rand-vu-float-range (-> obj time-until-random-min fog) (-> obj time-until-random-max fog)) @@ -1694,11 +1688,11 @@ Returns the current value of `lightning-id`" (format *stdcon* "time until random cloud ~f~%" (* 0.0033333334 (-> obj time-until-random cloud))) (format *stdcon* "current cloud ~f~%" (-> obj current-interp cloud)) (format *stdcon* "target cloud ~f~%" (-> obj target-interp cloud)) - (format *stdcon* "speed cloud ~f~%" (* (/ 1.0 (-> obj speed-interp cloud)) (-> self clock seconds-per-frame))) + (format *stdcon* "speed cloud ~f~%" (* (/ 1.0 (-> obj speed-interp cloud)) (seconds-per-frame))) (format *stdcon* "time until random fog ~f~%" (* 0.0033333334 (-> obj time-until-random fog))) (format *stdcon* "current fog ~f~%" (-> obj current-interp fog)) (format *stdcon* "target fog ~f~%" (-> obj target-interp fog)) - (format *stdcon* "speed fog ~f~%" (* (/ 1.0 (-> obj speed-interp fog)) (-> self clock seconds-per-frame))) + (format *stdcon* "speed fog ~f~%" (* (/ 1.0 (-> obj speed-interp fog)) (seconds-per-frame))) ) ) ) diff --git a/test/decompiler/reference/jak2/engine/gfx/mood/weather-part_REF.gc b/test/decompiler/reference/jak2/engine/gfx/mood/weather-part_REF.gc index 43e1e25249..f499b9807a 100644 --- a/test/decompiler/reference/jak2/engine/gfx/mood/weather-part_REF.gc +++ b/test/decompiler/reference/jak2/engine/gfx/mood/weather-part_REF.gc @@ -371,22 +371,8 @@ (set! (-> *part-id-table* 56 init-specs 1 initial-valuef) (* 4.0 f0-0)) ) (set! (-> *part-id-table* 56 init-specs 19 initial-valuef) (+ 32768.0 (vector-y-angle arg2))) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 58)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> arg1 quad)) - (t9-2 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 56)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> arg1 quad)) - (t9-3 a0-4 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 58) arg1) + (launch-particles (-> *part-id-table* 56) arg1) 0 (none) ) @@ -661,45 +647,17 @@ (set! (-> *part-id-table* 62 init-specs 22 initial-valuef) (- 16384.0 (vector-x-angle (-> gp-0 vector 1)))) (set! (-> *part-id-table* 62 init-specs 16 initial-valuef) f30-0) ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 62) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 62) gp-0 :origin-is-matrix #t) (case (-> arg1 datab 3) ((11 10) (sound-play "sizzle-drips") - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 66) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 65) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 66) gp-0 :origin-is-matrix #t) + (launch-particles (-> *part-id-table* 65) gp-0 :origin-is-matrix #t) ) (else (sound-play "dry-drips") (set! (-> *part-id-table* 64 init-specs 10 initial-valuef) (-> arg1 omega)) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 64) - gp-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 64) gp-0 :origin-is-matrix #t) ) ) ) @@ -758,22 +716,8 @@ ) (set! (-> *part-id-table* 60 init-specs 2 initial-valuef) arg0) (set! (-> *part-id-table* 61 init-specs 2 initial-valuef) (* 4.0 arg0)) - (let ((t9-6 sp-launch-particles-var) - (a0-10 *sp-particle-system-2d*) - (a1-7 (-> *part-id-table* 60)) - (a2-5 *launch-matrix*) - ) - (set! (-> a2-5 trans quad) (-> gp-1 quad)) - (t9-6 a0-10 a1-7 a2-5 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-7 sp-launch-particles-var) - (a0-11 *sp-particle-system-2d*) - (a1-8 (-> *part-id-table* 61)) - (a2-6 *launch-matrix*) - ) - (set! (-> a2-6 trans quad) (-> gp-1 quad)) - (t9-7 a0-11 a1-8 a2-6 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 60) gp-1) + (launch-particles (-> *part-id-table* 61) gp-1) ) ) 0 @@ -947,7 +891,3 @@ (:func 'sparticle-track-sun) ) ) - - - - diff --git a/test/decompiler/reference/jak2/engine/gfx/ocean/ocean-texture_REF.gc b/test/decompiler/reference/jak2/engine/gfx/ocean/ocean-texture_REF.gc index b816654594..51e2f1b62c 100644 --- a/test/decompiler/reference/jak2/engine/gfx/ocean/ocean-texture_REF.gc +++ b/test/decompiler/reference/jak2/engine/gfx/ocean/ocean-texture_REF.gc @@ -315,24 +315,22 @@ ;; definition for method 91 of type ocean ;; WARN: Return type mismatch int vs none. (defmethod do-tex-scroll! ocean ((obj ocean)) - (with-pp - (when (not (paused?)) - (+! (-> obj st-scroll x) (* 8.0 (-> pp clock seconds-per-frame))) - (set! (-> obj st-scroll y) (- (-> obj st-scroll y) (* 8.0 (-> pp clock seconds-per-frame)))) - (if (< 128.0 (-> obj st-scroll x)) - (+! (-> obj st-scroll x) -128.0) - ) - (if (< (-> obj st-scroll y) 0.0) - (+! (-> obj st-scroll y) 128.0) - ) - ) - (set! (-> obj uv-scroll-0 x) (the int (* 16.0 (-> obj st-scroll x)))) - (set! (-> obj uv-scroll-0 y) (the int (* 16.0 (+ 256.0 (-> obj st-scroll y))))) - (set! (-> obj uv-scroll-1 x) (the int (* 16.0 (+ 256.0 (-> obj st-scroll x))))) - (set! (-> obj uv-scroll-1 y) (the int (* 16.0 (-> obj st-scroll y)))) - 0 - (none) + (when (not (paused?)) + (+! (-> obj st-scroll x) (* 8.0 (seconds-per-frame))) + (set! (-> obj st-scroll y) (- (-> obj st-scroll y) (* 8.0 (seconds-per-frame)))) + (if (< 128.0 (-> obj st-scroll x)) + (+! (-> obj st-scroll x) -128.0) + ) + (if (< (-> obj st-scroll y) 0.0) + (+! (-> obj st-scroll y) 128.0) + ) ) + (set! (-> obj uv-scroll-0 x) (the int (* 16.0 (-> obj st-scroll x)))) + (set! (-> obj uv-scroll-0 y) (the int (* 16.0 (+ 256.0 (-> obj st-scroll y))))) + (set! (-> obj uv-scroll-1 x) (the int (* 16.0 (+ 256.0 (-> obj st-scroll x))))) + (set! (-> obj uv-scroll-1 y) (the int (* 16.0 (-> obj st-scroll y)))) + 0 + (none) ) ;; definition for method 81 of type ocean diff --git a/test/decompiler/reference/jak2/engine/gfx/ocean/ocean_REF.gc b/test/decompiler/reference/jak2/engine/gfx/ocean/ocean_REF.gc index 8aaf7bb65d..139aa0deb2 100644 --- a/test/decompiler/reference/jak2/engine/gfx/ocean/ocean_REF.gc +++ b/test/decompiler/reference/jak2/engine/gfx/ocean/ocean_REF.gc @@ -1348,134 +1348,132 @@ ;; definition for method 13 of type ocean ;; WARN: Return type mismatch int vs none. (defmethod update-map ocean ((obj ocean)) - (with-pp - (set! (-> obj heights) #f) - (set! (-> obj verts) #f) - (let ((s5-0 *mood-control*)) - (set! (-> obj constant w) (if (and (-> s5-0 overide-weather-flag) (not (movie?))) - (-> s5-0 overide cloud) - (-> s5-0 current-interp cloud) - ) + (set! (-> obj heights) #f) + (set! (-> obj verts) #f) + (let ((s5-0 *mood-control*)) + (set! (-> obj constant w) (if (and (-> s5-0 overide-weather-flag) (not (movie?))) + (-> s5-0 overide cloud) + (-> s5-0 current-interp cloud) + ) + ) + ) + (set! (-> obj constant w) (fmin 1.0 (* 2.0 (-> obj constant w)))) + (let ((f0-5 1.0) + (f30-0 1.0) + ) + (when (= (-> *bigmap* bigmap-index) 13) + (set! f0-5 0.333) + (set! f30-0 0.75) + ) + (set! (-> obj frame-speed) (* (+ 4.0 (-> *setting-control* user-current rain)) f0-5)) + (set! (-> obj frame-speed2) (* (+ 5.0 (-> *setting-control* user-current rain)) f0-5)) + (when (not (paused?)) + (let ((f0-8 (+ (-> obj frame-num) (* (-> obj frame-speed) (seconds-per-frame))))) + (set! (-> obj frame-num) (- f0-8 (* (the float (the int (/ f0-8 64.0))) 64.0))) + ) + (let ((f0-11 (+ (-> obj frame-num2) (* (-> obj frame-speed2) (seconds-per-frame))))) + (set! (-> obj frame-num2) (- f0-11 (* (the float (the int (/ f0-11 64.0))) 64.0))) + ) + ) + (let ((s5-1 (-> *display* frames (-> *display* on-screen) global-buf))) + (set! (-> obj heights) (the-as ocean-height-array (-> s5-1 base))) + (interp-wave obj (the-as ocean-wave-info (-> obj heights)) (the-as uint (-> obj frame-num)) (* 0.08325 f30-0)) + (&+! (-> s5-1 base) 4096) + (set! (-> obj heights2) (the-as ocean-height-array (-> s5-1 base))) + (interp-wave + obj + (the-as ocean-wave-info (-> obj heights2)) + (the-as uint (-> obj frame-num2)) + (* 0.01665 f30-0) + ) + (&+! (-> s5-1 base) 4096) + (ocean-method-15 obj (the-as matrix (-> obj heights)) (the-as matrix (-> obj heights2))) + (set! (-> obj verts) (the-as ocean-vert-array (-> s5-1 base))) + (&+! (-> s5-1 base) #x8000) + ) + ) + (when (not (or (-> obj off) (-> *blit-displays-work* menu-mode))) + (when (logtest? (-> *display* vu1-enable-user) (vu1-renderer-mask ocean)) + (mem-copy! (the-as pointer (-> obj cloud-lights)) (the-as pointer (-> *sky-work* cloud-lights)) 156) + (mem-copy! (the-as pointer (-> obj haze-lights)) (the-as pointer (-> *sky-work* haze-lights)) 124) + (vector4-scale! + (the-as vector4 (-> obj sky-color)) + (the-as vector4 (-> *time-of-day-context* current-sky-color)) + 0.0078125 + ) + (generate-verts obj (-> obj verts) (-> obj heights)) + (let* ((s4-0 (-> *display* frames (-> *display* on-screen) global-buf)) + (s5-2 (-> s4-0 base)) + ) + (if (-> *time-of-day-context* sky) + (ocean-method-89 obj s4-0) + ) + (draw-ocean-texture obj s4-0 (the-as int (-> obj verts))) + (ocean-method-79 obj s4-0) + (init-buffer! obj s4-0) + (if (-> obj far-on) + (draw-ocean-far obj s4-0) + ) + (if (not (-> obj mid-off)) + (draw-ocean-mid obj s4-0) + ) + (end-buffer! obj s4-0) + (set-dirty-mask! (-> *level* default-level) 9 #xc0000 #x2a000) + (let ((a3-3 (-> s4-0 base))) + (let ((v1-87 (the-as object (-> s4-0 base)))) + (set! (-> (the-as dma-packet v1-87) dma) (new 'static 'dma-tag :id (dma-tag-id next))) + (set! (-> (the-as dma-packet v1-87) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet v1-87) vif1) (new 'static 'vif-tag)) + (set! (-> s4-0 base) (&+ (the-as pointer v1-87) 16)) + ) + (dma-bucket-insert-tag + (-> *display* frames (-> *display* on-screen) bucket-group) + (bucket-id ocean-mid-far) + s5-2 + (the-as (pointer dma-tag) a3-3) ) - ) - (set! (-> obj constant w) (fmin 1.0 (* 2.0 (-> obj constant w)))) - (let ((f0-5 1.0) - (f30-0 1.0) - ) - (when (= (-> *bigmap* bigmap-index) 13) - (set! f0-5 0.333) - (set! f30-0 0.75) - ) - (set! (-> obj frame-speed) (* (+ 4.0 (-> *setting-control* user-current rain)) f0-5)) - (set! (-> obj frame-speed2) (* (+ 5.0 (-> *setting-control* user-current rain)) f0-5)) - (when (not (paused?)) - (let ((f0-8 (+ (-> obj frame-num) (* (-> obj frame-speed) (-> pp clock seconds-per-frame))))) - (set! (-> obj frame-num) (- f0-8 (* (the float (the int (/ f0-8 64.0))) 64.0))) - ) - (let ((f0-11 (+ (-> obj frame-num2) (* (-> obj frame-speed2) (-> pp clock seconds-per-frame))))) - (set! (-> obj frame-num2) (- f0-11 (* (the float (the int (/ f0-11 64.0))) 64.0))) ) ) - (let ((s5-1 (-> *display* frames (-> *display* on-screen) global-buf))) - (set! (-> obj heights) (the-as ocean-height-array (-> s5-1 base))) - (interp-wave obj (the-as ocean-wave-info (-> obj heights)) (the-as uint (-> obj frame-num)) (* 0.08325 f30-0)) - (&+! (-> s5-1 base) 4096) - (set! (-> obj heights2) (the-as ocean-height-array (-> s5-1 base))) - (interp-wave - obj - (the-as ocean-wave-info (-> obj heights2)) - (the-as uint (-> obj frame-num2)) - (* 0.01665 f30-0) - ) - (&+! (-> s5-1 base) 4096) - (ocean-method-15 obj (the-as matrix (-> obj heights)) (the-as matrix (-> obj heights2))) - (set! (-> obj verts) (the-as ocean-vert-array (-> s5-1 base))) - (&+! (-> s5-1 base) #x8000) - ) - ) - (when (not (or (-> obj off) (-> *blit-displays-work* menu-mode))) - (when (logtest? (-> *display* vu1-enable-user) (vu1-renderer-mask ocean)) - (mem-copy! (the-as pointer (-> obj cloud-lights)) (the-as pointer (-> *sky-work* cloud-lights)) 156) - (mem-copy! (the-as pointer (-> obj haze-lights)) (the-as pointer (-> *sky-work* haze-lights)) 124) - (vector4-scale! - (the-as vector4 (-> obj sky-color)) - (the-as vector4 (-> *time-of-day-context* current-sky-color)) - 0.0078125 - ) - (generate-verts obj (-> obj verts) (-> obj heights)) - (let* ((s4-0 (-> *display* frames (-> *display* on-screen) global-buf)) - (s5-2 (-> s4-0 base)) + (when (not (or (-> obj near-off) + (or (-> obj mid-off) (< 196608.0 (fabs (- (-> obj start-corner y) (-> *math-camera* trans y))))) + ) + ) + (let* ((s4-1 (-> *display* frames (-> *display* on-screen) global-buf)) + (s5-3 (-> s4-1 base)) ) - (if (-> *time-of-day-context* sky) - (ocean-method-89 obj s4-0) - ) - (draw-ocean-texture obj s4-0 (the-as int (-> obj verts))) - (ocean-method-79 obj s4-0) - (init-buffer! obj s4-0) - (if (-> obj far-on) - (draw-ocean-far obj s4-0) - ) - (if (not (-> obj mid-off)) - (draw-ocean-mid obj s4-0) - ) - (end-buffer! obj s4-0) - (set-dirty-mask! (-> *level* default-level) 9 #xc0000 #x2a000) - (let ((a3-3 (-> s4-0 base))) - (let ((v1-87 (the-as object (-> s4-0 base)))) - (set! (-> (the-as dma-packet v1-87) dma) (new 'static 'dma-tag :id (dma-tag-id next))) - (set! (-> (the-as dma-packet v1-87) vif0) (new 'static 'vif-tag)) - (set! (-> (the-as dma-packet v1-87) vif1) (new 'static 'vif-tag)) - (set! (-> s4-0 base) (&+ (the-as pointer v1-87) 16)) + (draw-ocean-texture obj s4-1 (the-as int (-> obj verts))) + (draw-ocean-near obj s4-1) + (end-buffer! obj s4-1) + (set-dirty-mask! (-> *level* default-level) 7 #xc0000 #x2a000) + (let ((a3-5 (-> s4-1 base))) + (let ((v1-113 (the-as object (-> s4-1 base)))) + (set! (-> (the-as dma-packet v1-113) dma) (new 'static 'dma-tag :id (dma-tag-id next))) + (set! (-> (the-as dma-packet v1-113) vif0) (new 'static 'vif-tag)) + (set! (-> (the-as dma-packet v1-113) vif1) (new 'static 'vif-tag)) + (set! (-> s4-1 base) (&+ (the-as pointer v1-113) 16)) ) (dma-bucket-insert-tag (-> *display* frames (-> *display* on-screen) bucket-group) - (bucket-id ocean-mid-far) - s5-2 - (the-as (pointer dma-tag) a3-3) - ) - ) - ) - (when (not (or (-> obj near-off) - (or (-> obj mid-off) (< 196608.0 (fabs (- (-> obj start-corner y) (-> *math-camera* trans y))))) - ) - ) - (let* ((s4-1 (-> *display* frames (-> *display* on-screen) global-buf)) - (s5-3 (-> s4-1 base)) - ) - (draw-ocean-texture obj s4-1 (the-as int (-> obj verts))) - (draw-ocean-near obj s4-1) - (end-buffer! obj s4-1) - (set-dirty-mask! (-> *level* default-level) 7 #xc0000 #x2a000) - (let ((a3-5 (-> s4-1 base))) - (let ((v1-113 (the-as object (-> s4-1 base)))) - (set! (-> (the-as dma-packet v1-113) dma) (new 'static 'dma-tag :id (dma-tag-id next))) - (set! (-> (the-as dma-packet v1-113) vif0) (new 'static 'vif-tag)) - (set! (-> (the-as dma-packet v1-113) vif1) (new 'static 'vif-tag)) - (set! (-> s4-1 base) (&+ (the-as pointer v1-113) 16)) - ) - (dma-bucket-insert-tag - (-> *display* frames (-> *display* on-screen) bucket-group) - (bucket-id ocean-near) - s5-3 - (the-as (pointer dma-tag) a3-5) - ) + (bucket-id ocean-near) + s5-3 + (the-as (pointer dma-tag) a3-5) ) ) ) ) ) - (when (not (paused?)) - (set! (-> obj off) #f) - (set! (-> obj mid-off) #f) - (set! (-> obj near-off) (if obj - (not (-> obj ocean-near-translucent?)) - #f - ) - ) - ) - 0 - (none) ) + (when (not (paused?)) + (set! (-> obj off) #f) + (set! (-> obj mid-off) #f) + (set! (-> obj near-off) (if obj + (not (-> obj ocean-near-translucent?)) + #f + ) + ) + ) + 0 + (none) ) ;; definition for method 12 of type ocean diff --git a/test/decompiler/reference/jak2/engine/gfx/sprite/particles/sparticle-launcher_REF.gc b/test/decompiler/reference/jak2/engine/gfx/sprite/particles/sparticle-launcher_REF.gc index 7380db0163..8b856b288b 100644 --- a/test/decompiler/reference/jak2/engine/gfx/sprite/particles/sparticle-launcher_REF.gc +++ b/test/decompiler/reference/jak2/engine/gfx/sprite/particles/sparticle-launcher_REF.gc @@ -839,14 +839,7 @@ (dotimes (s4-0 (-> gp-0 in-use)) (let ((v1-4 (-> gp-0 queue s4-0))) (set! (-> s5-0 trans quad) (-> v1-4 pos quad)) - (sp-launch-particles-var - (-> v1-4 sp-system) - (-> v1-4 sp-launcher) - s5-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system (-> v1-4 sp-system) (-> v1-4 sp-launcher) s5-0 :origin-is-matrix #t) ) ) (set! (-> gp-0 in-use) 0) @@ -1437,16 +1430,17 @@ ) (cond ((logtest? (-> v1-33 flags) (sp-group-item-flag bit7)) - (sp-launch-particles-var - (if (logtest? (-> v1-33 flags) (sp-group-item-flag is-3d)) + (launch-particles + :system (if (logtest? (-> v1-33 flags) (sp-group-item-flag is-3d)) *sp-particle-system-3d* *sp-particle-system-2d* ) a1-4 (-> obj origin) - a3-0 - obj - f0-5 + :launch-state a3-0 + :launch-control obj + :rate f0-5 + :origin-is-matrix #t ) ) (else @@ -1522,14 +1516,7 @@ (set! (-> s2-0 quad) (-> (the-as vector s0-0) quad)) (set! (-> s2-0 w) 1.0) (vector-matrix*! (-> s3-0 trans) s2-0 s3-0) - (sp-launch-particles-var - gp-0 - sv-96 - s3-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system gp-0 sv-96 s3-0 :origin-is-matrix #t) ) ) ) diff --git a/test/decompiler/reference/jak2/engine/gfx/texture/texture-anim-funcs_REF.gc b/test/decompiler/reference/jak2/engine/gfx/texture/texture-anim-funcs_REF.gc index d9406dddb1..96bb14657f 100644 --- a/test/decompiler/reference/jak2/engine/gfx/texture/texture-anim-funcs_REF.gc +++ b/test/decompiler/reference/jak2/engine/gfx/texture/texture-anim-funcs_REF.gc @@ -59,21 +59,19 @@ ;; definition for function cloud-texture-anim-func (defun cloud-texture-anim-func ((arg0 dma-buffer) (arg1 texture-anim)) - (with-pp - (when (>= (+ (-> arg1 frame-time) (* (-> arg1 frame-delta) (-> pp clock seconds-per-frame))) (-> arg1 frame-mod)) - (let ((s5-0 (-> arg1 data 0 tex)) - (s4-0 (-> arg1 data 1 tex)) - (s3-0 (-> arg1 data 0 tex w)) - ) - (when (not (paused?)) - (set! (-> arg1 data 0 tex) s4-0) - (set! (-> arg1 data 1 tex) s5-0) - (make-noise-texture (the-as pointer (-> s5-0 pad 0)) s3-0 s3-0 s3-0) + (when (>= (+ (-> arg1 frame-time) (* (-> arg1 frame-delta) (seconds-per-frame))) (-> arg1 frame-mod)) + (let ((s5-0 (-> arg1 data 0 tex)) + (s4-0 (-> arg1 data 1 tex)) + (s3-0 (-> arg1 data 0 tex w)) ) + (when (not (paused?)) + (set! (-> arg1 data 0 tex) s4-0) + (set! (-> arg1 data 1 tex) s5-0) + (make-noise-texture (the-as pointer (-> s5-0 pad 0)) s3-0 s3-0 s3-0) ) ) - 0 ) + 0 ) ;; definition for function fog-texture-anim-init @@ -244,7 +242,3 @@ (defun fog-texture-anim-func ((arg0 dma-buffer) (arg1 texture-anim)) (real-fog-texture-anim-func arg0 arg1) ) - - - - diff --git a/test/decompiler/reference/jak2/engine/gfx/texture/texture-anim_REF.gc b/test/decompiler/reference/jak2/engine/gfx/texture/texture-anim_REF.gc index 7b9c2ae4b1..57f720177a 100644 --- a/test/decompiler/reference/jak2/engine/gfx/texture/texture-anim_REF.gc +++ b/test/decompiler/reference/jak2/engine/gfx/texture/texture-anim_REF.gc @@ -488,104 +488,102 @@ ;; WARN: Function update-texture-anim has a return type of none, but the expression builder found a return statement. (defun update-texture-anim ((bucket bucket-id) (anim-array texture-anim-array)) (local-vars (tex-height int) (fbp-for-tex uint) (layer-idx int)) - (with-pp - (if (-> *blit-displays-work* menu-mode) - (return #f) - ) - (with-dma-buffer-add-bucket ((dma-buf (-> *display* frames (-> *display* on-screen) global-buf)) - bucket - ) - (dotimes (anim-idx (-> anim-array length)) - (let* ((anim (-> anim-array array-data anim-idx)) - (dest-tex (-> anim tex)) + (if (-> *blit-displays-work* menu-mode) + (return #f) + ) + (with-dma-buffer-add-bucket ((dma-buf (-> *display* frames (-> *display* on-screen) global-buf)) + bucket + ) + (dotimes (anim-idx (-> anim-array length)) + (let* ((anim (-> anim-array array-data anim-idx)) + (dest-tex (-> anim tex)) + ) + (when dest-tex + 0 + (let ((tex-width (-> dest-tex w))) + (set! tex-height (-> dest-tex h)) + (cond + ((or (= (-> dest-tex psm) (gs-psm ct32)) (= (-> dest-tex psm) (gs-psm mt8h))) + (set! fbp-for-tex (shr (-> dest-tex dest 0) 5)) + fbp-for-tex ) - (when dest-tex - 0 - (let ((tex-width (-> dest-tex w))) - (set! tex-height (-> dest-tex h)) - (cond - ((or (= (-> dest-tex psm) (gs-psm ct32)) (= (-> dest-tex psm) (gs-psm mt8h))) - (set! fbp-for-tex (shr (-> dest-tex dest 0) 5)) - fbp-for-tex - ) - (else - (set! fbp-for-tex (shr (-> dest-tex clutdest) 5)) - (set! tex-width 16) - (set! tex-height 16) - tex-height - ) - ) - (when (and (nonzero? tex-width) (nonzero? tex-height)) - (dma-buffer-add-gs-set-flusha dma-buf - (scissor-1 (new 'static 'gs-scissor :scax1 (+ tex-width -1) :scay1 (+ tex-height -1))) - (xyoffset-1 (new 'static 'gs-xy-offset :ofx #x8000 :ofy #x8000)) - (frame-1 (new 'static 'gs-frame :fbw (/ (+ tex-width 63) 64) :fbp fbp-for-tex)) - (test-1 (-> anim test)) - (alpha-1 (-> anim alpha)) - (clamp-1 (-> anim clamp)) - (texa (new 'static 'gs-texa :ta0 #x80 :ta1 #x80)) - (zbuf-1 (new 'static 'gs-zbuf :zbp #x130 :psm (gs-psm ct24) :zmsk #x1)) - (texflush 0) - ) - (let ((a1-32 (-> dma-buf base)) - (a3-0 2048) - (a2-7 2048) - (v1-25 (+ tex-width 2048)) - (a0-16 (+ tex-height 2048)) - ) - (set! (-> (the-as (pointer uint128) a1-32)) (-> *texture-anim-work* erase-tmpl dma-vif quad)) - (set! (-> (the-as (pointer uint128) a1-32) 1) (-> *texture-anim-work* erase-tmpl quad 1)) - (set-vector! - (the-as vector4w (&+ a1-32 32)) - (the-as int (-> anim color r)) - (the-as int (-> anim color g)) - (the-as int (-> anim color b)) - (the-as int (-> anim color a)) - ) - (set-vector! (the-as vector4w (&+ a1-32 48)) (* a3-0 16) (* a2-7 16) #xffffff 0) - (set-vector! (the-as vector4w (&+ a1-32 64)) (* v1-25 16) (* a0-16 16) #xffffff 0) - ) - (&+! (-> dma-buf base) 80) - ) - (let ((v1-32 (/ (the-as int fbp-for-tex) 2)) - (a0-19 (* (/ (+ tex-width 63) 64) (/ (+ tex-height 63) 64))) - ) - (if (and (logtest? fbp-for-tex 1) (< 32 tex-width)) - (+! a0-19 1) - ) - (dotimes (a1-43 a0-19) - (set! (-> *texture-pool* ids (+ v1-32 a1-43)) (the-as uint 0)) - ) - ) - (set! layer-idx 0) - (while (< layer-idx (the-as int (-> anim num-layers))) - (let ((layer (-> anim data layer-idx))) - ((-> layer func) dma-buf fbp-for-tex tex-width tex-height layer (-> anim frame-time)) - ) - (set! layer-idx (+ layer-idx 1)) + (else + (set! fbp-for-tex (shr (-> dest-tex clutdest) 5)) + (set! tex-width 16) + (set! tex-height 16) + tex-height ) ) - (if (-> anim func) - ((-> anim func) dma-buf anim) - ) - (when (not (paused?)) - (let ((f0-2 (+ (-> anim frame-time) (* (-> anim frame-delta) (-> pp clock seconds-per-frame)))) - (f1-2 (-> anim frame-mod)) + (when (and (nonzero? tex-width) (nonzero? tex-height)) + (dma-buffer-add-gs-set-flusha dma-buf + (scissor-1 (new 'static 'gs-scissor :scax1 (+ tex-width -1) :scay1 (+ tex-height -1))) + (xyoffset-1 (new 'static 'gs-xy-offset :ofx #x8000 :ofy #x8000)) + (frame-1 (new 'static 'gs-frame :fbw (/ (+ tex-width 63) 64) :fbp fbp-for-tex)) + (test-1 (-> anim test)) + (alpha-1 (-> anim alpha)) + (clamp-1 (-> anim clamp)) + (texa (new 'static 'gs-texa :ta0 #x80 :ta1 #x80)) + (zbuf-1 (new 'static 'gs-zbuf :zbp #x130 :psm (gs-psm ct24) :zmsk #x1)) + (texflush 0) + ) + (let ((a1-32 (-> dma-buf base)) + (a3-0 2048) + (a2-7 2048) + (v1-25 (+ tex-width 2048)) + (a0-16 (+ tex-height 2048)) ) - (set! (-> anim frame-time) (- f0-2 (* (the float (the int (/ f0-2 f1-2))) f1-2))) - ) - (if (< (-> anim frame-time) 0.0) - (+! (-> anim frame-time) (-> anim frame-mod)) + (set! (-> (the-as (pointer uint128) a1-32)) (-> *texture-anim-work* erase-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) a1-32) 1) (-> *texture-anim-work* erase-tmpl quad 1)) + (set-vector! + (the-as vector4w (&+ a1-32 32)) + (the-as int (-> anim color r)) + (the-as int (-> anim color g)) + (the-as int (-> anim color b)) + (the-as int (-> anim color a)) ) + (set-vector! (the-as vector4w (&+ a1-32 48)) (* a3-0 16) (* a2-7 16) #xffffff 0) + (set-vector! (the-as vector4w (&+ a1-32 64)) (* v1-25 16) (* a0-16 16) #xffffff 0) + ) + (&+! (-> dma-buf base) 80) ) + (let ((v1-32 (/ (the-as int fbp-for-tex) 2)) + (a0-19 (* (/ (+ tex-width 63) 64) (/ (+ tex-height 63) 64))) + ) + (if (and (logtest? fbp-for-tex 1) (< 32 tex-width)) + (+! a0-19 1) + ) + (dotimes (a1-43 a0-19) + (set! (-> *texture-pool* ids (+ v1-32 a1-43)) (the-as uint 0)) + ) + ) + (set! layer-idx 0) + (while (< layer-idx (the-as int (-> anim num-layers))) + (let ((layer (-> anim data layer-idx))) + ((-> layer func) dma-buf fbp-for-tex tex-width tex-height layer (-> anim frame-time)) + ) + (set! layer-idx (+ layer-idx 1)) + ) + ) + (if (-> anim func) + ((-> anim func) dma-buf anim) + ) + (when (not (paused?)) + (let ((f0-2 (+ (-> anim frame-time) (* (-> anim frame-delta) (seconds-per-frame)))) + (f1-2 (-> anim frame-mod)) + ) + (set! (-> anim frame-time) (- f0-2 (* (the float (the int (/ f0-2 f1-2))) f1-2))) + ) + (if (< (-> anim frame-time) 0.0) + (+! (-> anim frame-time) (-> anim frame-mod)) + ) ) ) ) - (reset-display-gs-state *display* dma-buf) ) - 0 - (none) + (reset-display-gs-state *display* dma-buf) ) + 0 + (none) ) ;; definition for function no-alpha-texture-anim-layer-func @@ -1364,7 +1362,3 @@ (set! (-> obj tex) #f) obj ) - - - - diff --git a/test/decompiler/reference/jak2/engine/gfx/texture/texture_REF.gc b/test/decompiler/reference/jak2/engine/gfx/texture/texture_REF.gc index 650a929548..7dd8f31500 100644 --- a/test/decompiler/reference/jak2/engine/gfx/texture/texture_REF.gc +++ b/test/decompiler/reference/jak2/engine/gfx/texture/texture_REF.gc @@ -1261,8 +1261,8 @@ ((= cat (tpage-category sky)) (cond ((and (level-get-target-inside *level*) (= (-> (level-get-target-inside *level*) info taskname) 'nest)) - (let ((f30-0 (-> pp clock seconds-per-frame))) - (set! (-> pp clock seconds-per-frame) (* 10.0 (-> pp clock seconds-per-frame))) + (let ((f30-0 (seconds-per-frame))) + (set! (-> pp clock seconds-per-frame) (* 10.0 (seconds-per-frame))) (if s2-0 (update-texture-anim bucket s2-0) ) diff --git a/test/decompiler/reference/jak2/engine/math/transformq_REF.gc b/test/decompiler/reference/jak2/engine/math/transformq_REF.gc index e8ccaaedbc..20c2380f7f 100644 --- a/test/decompiler/reference/jak2/engine/math/transformq_REF.gc +++ b/test/decompiler/reference/jak2/engine/math/transformq_REF.gc @@ -32,31 +32,29 @@ ;; definition for method 9 of type trsqv (defmethod seek-toward-heading-vec! trsqv ((obj trsqv) (arg0 vector) (arg1 float) (arg2 time-frame)) - (with-pp - (let* ((f0-0 (deg-diff (quaternion-y-angle (-> obj quat)) (vector-y-angle arg0))) - (f1-2 (fmin (* arg1 (-> pp clock seconds-per-frame)) (/ (* 5.0 (fabs f0-0)) (the float arg2)))) - (f30-0 (fmax (fmin f0-0 f1-2) (- f1-2))) - ) - (let ((f0-2 (-> obj old-y-angle-diff))) - (set! f30-0 - (cond - ((or (= f0-2 0.0) - (and (< 0.0 f30-0) (< 0.0 f0-2)) - (or (and (< f30-0 0.0) (< f0-2 0.0)) (>= (- (current-time) (-> obj angle-change-time)) (seconds 0.2))) - ) - (set! (-> obj angle-change-time) (current-time)) - f30-0 - ) - (else - (* 0.000000001 f30-0) - ) + (let* ((f0-0 (deg-diff (quaternion-y-angle (-> obj quat)) (vector-y-angle arg0))) + (f1-2 (fmin (* arg1 (seconds-per-frame)) (/ (* 5.0 (fabs f0-0)) (the float arg2)))) + (f30-0 (fmax (fmin f0-0 f1-2) (- f1-2))) + ) + (let ((f0-2 (-> obj old-y-angle-diff))) + (set! f30-0 + (cond + ((or (= f0-2 0.0) + (and (< 0.0 f30-0) (< 0.0 f0-2)) + (or (and (< f30-0 0.0) (< f0-2 0.0)) (>= (- (current-time) (-> obj angle-change-time)) (seconds 0.2))) + ) + (set! (-> obj angle-change-time) (current-time)) + f30-0 + ) + (else + (* 0.000000001 f30-0) ) ) - ) - (set! (-> obj old-y-angle-diff) f30-0) - (let ((a1-2 (get-quaternion obj))) - (quaternion-rotate-y! a1-2 a1-2 f30-0) - ) + ) + ) + (set! (-> obj old-y-angle-diff) f30-0) + (let ((a1-2 (get-quaternion obj))) + (quaternion-rotate-y! a1-2 a1-2 f30-0) ) ) ) diff --git a/test/decompiler/reference/jak2/engine/math/vector_REF.gc b/test/decompiler/reference/jak2/engine/math/vector_REF.gc index 975d8427fd..a3edc94567 100644 --- a/test/decompiler/reference/jak2/engine/math/vector_REF.gc +++ b/test/decompiler/reference/jak2/engine/math/vector_REF.gc @@ -484,49 +484,37 @@ ;; definition for function vector-v! (defun vector-v! ((arg0 vector)) - (with-pp - (vector-float*! arg0 arg0 (-> pp clock seconds-per-frame)) - arg0 - ) + (vector-float*! arg0 arg0 (seconds-per-frame)) + arg0 ) ;; definition for function vector-v+! (defun vector-v+! ((arg0 vector) (arg1 vector) (arg2 vector)) - (with-pp - (vector+float*! arg0 arg1 arg2 (-> pp clock seconds-per-frame)) - arg0 - ) + (vector+float*! arg0 arg1 arg2 (seconds-per-frame)) + arg0 ) ;; definition for function vector-v*float+! (defun vector-v*float+! ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 float)) - (with-pp - (vector+float*! arg0 arg1 arg2 (* arg3 (-> pp clock seconds-per-frame))) - arg0 - ) + (vector+float*! arg0 arg1 arg2 (* arg3 (seconds-per-frame))) + arg0 ) ;; definition for function vector-v++! (defun vector-v++! ((arg0 vector) (arg1 vector)) - (with-pp - (vector+float*! arg0 arg0 arg1 (-> pp clock seconds-per-frame)) - arg0 - ) + (vector+float*! arg0 arg0 arg1 (seconds-per-frame)) + arg0 ) ;; definition for function vector-v*float! (defun vector-v*float! ((arg0 vector) (arg1 vector) (arg2 float)) - (with-pp - (vector-float*! arg0 arg1 (* arg2 (-> pp clock seconds-per-frame))) - ) + (vector-float*! arg0 arg1 (* arg2 (seconds-per-frame))) ) ;; definition for function vector-v*float++! (defun vector-v*float++! ((arg0 vector) (arg1 vector) (arg2 float)) - (with-pp - (vector+float*! arg0 arg0 arg1 (* arg2 (-> pp clock seconds-per-frame))) - arg0 - ) + (vector+float*! arg0 arg0 arg1 (* arg2 (seconds-per-frame))) + arg0 ) ;; definition for function vector-to-ups! @@ -554,22 +542,20 @@ ;; definition for function vector-from-ups! (defun vector-from-ups! ((arg0 vector) (arg1 vector)) (local-vars (at-0 int)) - (with-pp - (rlet ((vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (.lvf vf1 (&-> arg1 quad)) - (let ((f0-0 (-> pp clock seconds-per-frame))) - (.mov at-0 f0-0) - ) - (.mov vf2 at-0) - (.mov.vf vf1 vf0 :mask #b1000) - (.mul.x.vf vf1 vf1 vf2 :mask #b111) - (.svf (&-> arg0 quad) vf1) - arg0 + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (.lvf vf1 (&-> arg1 quad)) + (let ((f0-0 (seconds-per-frame))) + (.mov at-0 f0-0) ) + (.mov vf2 at-0) + (.mov.vf vf1 vf0 :mask #b1000) + (.mul.x.vf vf1 vf1 vf2 :mask #b111) + (.svf (&-> arg0 quad) vf1) + arg0 ) ) diff --git a/test/decompiler/reference/jak2/engine/nav/nav-enemy_REF.gc b/test/decompiler/reference/jak2/engine/nav/nav-enemy_REF.gc index 6e5fdcd66e..0a923ba197 100644 --- a/test/decompiler/reference/jak2/engine/nav/nav-enemy_REF.gc +++ b/test/decompiler/reference/jak2/engine/nav/nav-enemy_REF.gc @@ -152,65 +152,63 @@ ;; WARN: Return type mismatch vector vs symbol. (defmethod enemy-method-100 nav-enemy ((obj nav-enemy)) (local-vars (v0-1 vector)) - (with-pp - (when (not (-> obj enemy-info move-to-ground)) - (enemy-method-103 obj) - (return (the-as symbol #f)) - ) - (when (not (logtest? (enemy-flag directed) (-> obj enemy-flags))) - (let ((s5-0 (-> obj root))) - (if (focus-test? obj under-water) - (enemy-method-47 obj (-> s5-0 transv)) - (+! (-> s5-0 transv y) (* (-> obj enemy-info movement-gravity) (-> pp clock seconds-per-frame))) - ) - (let ((a2-0 (new 'stack-no-clear 'move-above-ground-params))) - (let ((v1-16 (-> obj enemy-info))) - (set! (-> a2-0 gnd-collide-with) (-> v1-16 recover-gnd-collide-with)) - (set! (-> a2-0 popup) 8192.0) - (set! (-> a2-0 dont-move-if-overlaps?) #t) - (set! (-> a2-0 hover-if-no-ground?) (-> v1-16 hover-if-no-ground)) - (set! (-> a2-0 overlaps-params options) (overlaps-others-options oo0 oo2)) - (set! (-> a2-0 overlaps-params collide-with-filter) (-> v1-16 overlaps-others-collide-with-filter)) - ) - (set! (-> a2-0 overlaps-params tlist) *touching-list*) - (-> a2-0 overlaps-params) - (enemy-method-128 obj (-> s5-0 transv) a2-0) + (when (not (-> obj enemy-info move-to-ground)) + (enemy-method-103 obj) + (return (the-as symbol #f)) + ) + (when (not (logtest? (enemy-flag directed) (-> obj enemy-flags))) + (let ((s5-0 (-> obj root))) + (if (focus-test? obj under-water) + (enemy-method-47 obj (-> s5-0 transv)) + (+! (-> s5-0 transv y) (* (-> obj enemy-info movement-gravity) (seconds-per-frame))) ) + (let ((a2-0 (new 'stack-no-clear 'move-above-ground-params))) + (let ((v1-16 (-> obj enemy-info))) + (set! (-> a2-0 gnd-collide-with) (-> v1-16 recover-gnd-collide-with)) + (set! (-> a2-0 popup) 8192.0) + (set! (-> a2-0 dont-move-if-overlaps?) #t) + (set! (-> a2-0 hover-if-no-ground?) (-> v1-16 hover-if-no-ground)) + (set! (-> a2-0 overlaps-params options) (overlaps-others-options oo0 oo2)) + (set! (-> a2-0 overlaps-params collide-with-filter) (-> v1-16 overlaps-others-collide-with-filter)) + ) + (set! (-> a2-0 overlaps-params tlist) *touching-list*) + (-> a2-0 overlaps-params) + (enemy-method-128 obj (-> s5-0 transv) a2-0) ) ) - (logclear! (-> obj enemy-flags) (enemy-flag directed)) - (if (and (enemy-method-102 obj) (not (logtest? (-> obj focus-status) (focus-status dead)))) - (kill-prefer-falling obj) - ) - (the-as symbol (when (logtest? (-> obj nav state flags) (nav-state-flag in-mesh)) - (let ((s5-1 (-> obj root)) - (a1-2 (new 'stack-no-clear 'collide-query)) - (s3-0 (new 'stack-no-clear 'vector)) - (s4-0 (new 'stack-no-clear 'vector)) - ) - (set! (-> s3-0 quad) (-> s5-1 gspot-pos quad)) - (set! (-> s4-0 quad) (-> s5-1 gspot-normal quad)) - (cond - ((find-ground s5-1 a1-2 (-> obj enemy-info gnd-collide-with) 8192.0 81920.0 1024.0) - (let ((f0-4 (- (-> s5-1 trans y) (-> s5-1 gspot-pos y)))) - (when (>= 409.6 (fabs f0-4)) - (enemy-method-103 obj) - (return (the-as symbol #f)) - v0-1 - ) + ) + (logclear! (-> obj enemy-flags) (enemy-flag directed)) + (if (and (enemy-method-102 obj) (not (logtest? (-> obj focus-status) (focus-status dead)))) + (kill-prefer-falling obj) + ) + (the-as symbol (when (logtest? (-> obj nav state flags) (nav-state-flag in-mesh)) + (let ((s5-1 (-> obj root)) + (a1-2 (new 'stack-no-clear 'collide-query)) + (s3-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> s3-0 quad) (-> s5-1 gspot-pos quad)) + (set! (-> s4-0 quad) (-> s5-1 gspot-normal quad)) + (cond + ((find-ground s5-1 a1-2 (-> obj enemy-info gnd-collide-with) 8192.0 81920.0 1024.0) + (let ((f0-4 (- (-> s5-1 trans y) (-> s5-1 gspot-pos y)))) + (when (>= 409.6 (fabs f0-4)) + (enemy-method-103 obj) + (return (the-as symbol #f)) + v0-1 ) ) - (else - (set! (-> s5-1 gspot-pos quad) (-> s3-0 quad)) - (set! v0-1 (-> s5-1 gspot-normal)) - (set! (-> v0-1 quad) (-> s4-0 quad)) - v0-1 - ) + ) + (else + (set! (-> s5-1 gspot-pos quad) (-> s3-0 quad)) + (set! v0-1 (-> s5-1 gspot-normal)) + (set! (-> v0-1 quad) (-> s4-0 quad)) + v0-1 ) ) ) - ) - ) + ) + ) ) ;; definition for method 55 of type nav-enemy @@ -595,48 +593,46 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod nav-enemy-method-143 nav-enemy ((obj nav-enemy) (arg0 nav-control)) - (with-pp - (let ((v1-0 (new 'stack-no-clear 'vector))) - (let ((a2-0 (-> arg0 state))) - (set! (-> v1-0 quad) (-> a2-0 velocity quad)) - ) - (let ((a0-3 (-> obj root transv))) - (set! (-> a0-3 x) (-> v1-0 x)) - (set! (-> a0-3 z) (-> v1-0 z)) - ) + (let ((v1-0 (new 'stack-no-clear 'vector))) + (let ((a2-0 (-> arg0 state))) + (set! (-> v1-0 quad) (-> a2-0 velocity quad)) ) - (cond - ((-> obj enemy-info move-to-ground) - (if (focus-test? obj under-water) - (enemy-method-47 obj (-> obj root transv)) - (+! (-> obj root transv y) (* (-> obj enemy-info movement-gravity) (-> pp clock seconds-per-frame))) - ) - (let ((a2-3 (new 'stack-no-clear 'move-above-ground-params))) - (let ((v1-14 (-> obj enemy-info))) - (set! (-> a2-3 gnd-collide-with) (the-as collide-spec (-> obj gnd-collide))) - (set! (-> a2-3 popup) 8192.0) - (set! (-> a2-3 dont-move-if-overlaps?) #t) - (set! (-> a2-3 hover-if-no-ground?) (-> v1-14 hover-if-no-ground)) - (set! (-> a2-3 overlaps-params options) (overlaps-others-options oo0 oo2)) - (set! (-> a2-3 overlaps-params collide-with-filter) (-> v1-14 overlaps-others-collide-with-filter)) - ) - (set! (-> a2-3 overlaps-params tlist) *touching-list*) - (-> a2-3 overlaps-params) - (enemy-method-128 obj (-> obj root transv) a2-3) - ) - ) - (else - (let ((a2-4 (new 'stack-no-clear 'overlaps-others-params))) - (set! (-> a2-4 options) (overlaps-others-options oo0)) - (set! (-> a2-4 collide-with-filter) (-> obj enemy-info overlaps-others-collide-with-filter)) - (set! (-> a2-4 tlist) *touching-list*) - (integrate-for-enemy-no-mtg (-> obj root) (-> obj root transv) a2-4) - ) - ) + (let ((a0-3 (-> obj root transv))) + (set! (-> a0-3 x) (-> v1-0 x)) + (set! (-> a0-3 z) (-> v1-0 z)) ) - 0 - (none) ) + (cond + ((-> obj enemy-info move-to-ground) + (if (focus-test? obj under-water) + (enemy-method-47 obj (-> obj root transv)) + (+! (-> obj root transv y) (* (-> obj enemy-info movement-gravity) (seconds-per-frame))) + ) + (let ((a2-3 (new 'stack-no-clear 'move-above-ground-params))) + (let ((v1-14 (-> obj enemy-info))) + (set! (-> a2-3 gnd-collide-with) (the-as collide-spec (-> obj gnd-collide))) + (set! (-> a2-3 popup) 8192.0) + (set! (-> a2-3 dont-move-if-overlaps?) #t) + (set! (-> a2-3 hover-if-no-ground?) (-> v1-14 hover-if-no-ground)) + (set! (-> a2-3 overlaps-params options) (overlaps-others-options oo0 oo2)) + (set! (-> a2-3 overlaps-params collide-with-filter) (-> v1-14 overlaps-others-collide-with-filter)) + ) + (set! (-> a2-3 overlaps-params tlist) *touching-list*) + (-> a2-3 overlaps-params) + (enemy-method-128 obj (-> obj root transv) a2-3) + ) + ) + (else + (let ((a2-4 (new 'stack-no-clear 'overlaps-others-params))) + (set! (-> a2-4 options) (overlaps-others-options oo0)) + (set! (-> a2-4 collide-with-filter) (-> obj enemy-info overlaps-others-collide-with-filter)) + (set! (-> a2-4 tlist) *touching-list*) + (integrate-for-enemy-no-mtg (-> obj root) (-> obj root transv) a2-4) + ) + ) + ) + 0 + (none) ) ;; definition for symbol *nav-enemy-null-callback-info*, type nav-callback-info @@ -1651,7 +1647,7 @@ This commonly includes things such as: (defbehavior nav-enemy-debug-control-post nav-enemy () (let ((gp-0 *nav-enemy-debug-control-info*)) (let ((f30-0 (analog-input (the-as int (-> *cpad-list* cpads 0 leftx)) 128.0 48.0 110.0 -1.0))) - (seek! (-> gp-0 steering) (fmax -1.0 (fmin 1.0 f30-0)) (-> self clock seconds-per-frame)) + (seek! (-> gp-0 steering) (fmax -1.0 (fmin 1.0 f30-0)) (seconds-per-frame)) (if (cpad-hold? 0 x) (set! (-> gp-0 throttle) 1.0) (set! (-> gp-0 throttle) 0.0) diff --git a/test/decompiler/reference/jak2/engine/nav/nav-mesh_REF.gc b/test/decompiler/reference/jak2/engine/nav/nav-mesh_REF.gc index b3ae06c85e..23cbfd67b8 100644 --- a/test/decompiler/reference/jak2/engine/nav/nav-mesh_REF.gc +++ b/test/decompiler/reference/jak2/engine/nav/nav-mesh_REF.gc @@ -447,7 +447,7 @@ (gp-0 (let ((v1-0 arg0)) (.lvf vf1 (&-> arg2 quad)) - (let ((f0-0 (-> pp clock seconds-per-frame))) + (let ((f0-0 (seconds-per-frame))) (.mov at-0 f0-0) ) (.mov vf2 at-0) diff --git a/test/decompiler/reference/jak2/engine/physics/rigid-body-queue_REF.gc b/test/decompiler/reference/jak2/engine/physics/rigid-body-queue_REF.gc index 9df0efe9ca..85436dbd9d 100644 --- a/test/decompiler/reference/jak2/engine/physics/rigid-body-queue_REF.gc +++ b/test/decompiler/reference/jak2/engine/physics/rigid-body-queue_REF.gc @@ -39,7 +39,7 @@ (defmethod rigid-body-queue-method-10 rigid-body-queue ((obj rigid-body-queue)) (local-vars (s4-0 process)) (with-pp - (let ((f0-0 (-> pp clock seconds-per-frame)) + (let ((f0-0 (seconds-per-frame)) (v1-1 (-> obj count)) ) (b! #t cfg-9 :delay (nop!)) diff --git a/test/decompiler/reference/jak2/engine/physics/rigid-body_REF.gc b/test/decompiler/reference/jak2/engine/physics/rigid-body_REF.gc index 7339fbbd70..a0ac79fb02 100644 --- a/test/decompiler/reference/jak2/engine/physics/rigid-body_REF.gc +++ b/test/decompiler/reference/jak2/engine/physics/rigid-body_REF.gc @@ -882,7 +882,6 @@ ) ;; definition for method 10 of type rigid-body-control -;; INFO: this function exists in multiple non-identical object files ;; WARN: Return type mismatch int vs object. (defmethod rigid-body-control-method-10 rigid-body-control ((obj rigid-body-control) (arg0 rigid-body-object) (arg1 float) (arg2 float)) (let* ((s4-1 (max 1 (min 4 (+ (the int (* 0.9999 (/ arg1 arg2))) 1)))) @@ -968,12 +967,10 @@ ;; definition for method 30 of type rigid-body-object ;; WARN: Return type mismatch int vs none. (defmethod rigid-body-object-method-30 rigid-body-object ((obj rigid-body-object)) - (with-pp - (rigid-body-control-method-10 (-> obj rbody) obj (-> pp clock seconds-per-frame) (-> obj max-time-step)) - (logclear! (-> obj flags) (rigid-body-object-flag player-impulse-force player-contact-force)) - 0 - (none) - ) + (rigid-body-control-method-10 (-> obj rbody) obj (seconds-per-frame) (-> obj max-time-step)) + (logclear! (-> obj flags) (rigid-body-object-flag player-impulse-force player-contact-force)) + 0 + (none) ) ;; definition for method 51 of type rigid-body-object diff --git a/test/decompiler/reference/jak2/engine/process-drawable/process-drawable_REF.gc b/test/decompiler/reference/jak2/engine/process-drawable/process-drawable_REF.gc index 16c4902479..00cab50f71 100644 --- a/test/decompiler/reference/jak2/engine/process-drawable/process-drawable_REF.gc +++ b/test/decompiler/reference/jak2/engine/process-drawable/process-drawable_REF.gc @@ -835,9 +835,8 @@ (set-vector! s2-0 0.0 0.0 0.0 1.0) ) (when (logtest? arg0 (align-opts adjust-x-vel)) - (set! (-> a1-5 x) (+ (* (-> arg1 trans x) (-> arg2 x) (-> pp clock frames-per-second)) - (* (-> s2-0 x) (-> pp clock seconds-per-frame)) - ) + (set! (-> a1-5 x) + (+ (* (-> arg1 trans x) (-> arg2 x) (-> pp clock frames-per-second)) (* (-> s2-0 x) (seconds-per-frame))) ) (if (not (logtest? arg0 (align-opts adjust-xz-vel keep-other-velocities))) (set! (-> a1-5 z) 0.0) @@ -846,15 +845,13 @@ (if (and (logtest? arg0 (align-opts adjust-y-vel)) (not (and (logtest? arg0 (align-opts ignore-y-if-zero)) (= (-> arg1 trans y) 0.0))) ) - (set! (-> a1-5 y) (+ (* (-> arg1 trans y) (-> arg2 y) (-> pp clock frames-per-second)) - (* (-> s2-0 y) (-> pp clock seconds-per-frame)) - ) + (set! (-> a1-5 y) + (+ (* (-> arg1 trans y) (-> arg2 y) (-> pp clock frames-per-second)) (* (-> s2-0 y) (seconds-per-frame))) ) ) (when (logtest? arg0 (align-opts adjust-xz-vel)) - (set! (-> a1-5 z) (+ (* (-> arg1 trans z) (-> arg2 z) (-> pp clock frames-per-second)) - (* (-> s2-0 z) (-> pp clock seconds-per-frame)) - ) + (set! (-> a1-5 z) + (+ (* (-> arg1 trans z) (-> arg2 z) (-> pp clock frames-per-second)) (* (-> s2-0 z) (seconds-per-frame))) ) (if (not (logtest? arg0 (align-opts adjust-x-vel keep-other-velocities))) (set! (-> a1-5 x) 0.0) @@ -1509,7 +1506,7 @@ (cond ((= (-> obj interp) 0.0) (when s5-0 - (seek! (-> s5-0 frame-interp 1) 0.0 (* 8.0 (-> pp clock seconds-per-frame))) + (seek! (-> s5-0 frame-interp 1) 0.0 (* 8.0 (seconds-per-frame))) (if s3-0 (set! (-> s3-0 frame-interp 1) (fmin (-> s3-0 frame-interp 1) (-> s5-0 frame-interp 1))) ) diff --git a/test/decompiler/reference/jak2/engine/scene/scene_REF.gc b/test/decompiler/reference/jak2/engine/scene/scene_REF.gc index 4d1c31b71f..79cfc10746 100644 --- a/test/decompiler/reference/jak2/engine/scene/scene_REF.gc +++ b/test/decompiler/reference/jak2/engine/scene/scene_REF.gc @@ -1149,7 +1149,7 @@ *screen-filter* (new 'static 'vector) (new 'static 'vector :w 128.0) - (* 30.0 (-> self clock seconds-per-frame)) + (* 30.0 (seconds-per-frame)) (bucket-id screen-filter) ) (let ((gp-0 (current-time))) @@ -1606,10 +1606,7 @@ ) (else (set! (-> self targ-speed) - (fmax - -10.0 - (fmin 10.0 (+ (-> self targ-speed) (* (-> self speed-change-speed) (-> self clock seconds-per-frame)))) - ) + (fmax -10.0 (fmin 10.0 (+ (-> self targ-speed) (* (-> self speed-change-speed) (seconds-per-frame))))) ) (if (< (- (current-time) (-> self speed-change-time)) (seconds 3)) (format diff --git a/test/decompiler/reference/jak2/engine/target/board/board-states_REF.gc b/test/decompiler/reference/jak2/engine/target/board/board-states_REF.gc index e5c376b7e4..0181696c81 100644 --- a/test/decompiler/reference/jak2/engine/target/board/board-states_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/board/board-states_REF.gc @@ -35,8 +35,8 @@ ) (let ((f0-1 (lerp-scale 1.0 -1.0 f28-0 -32768.0 32768.0))) (if (or (< (fabs f0-1) 0.1) (< (-> self control turn-to-magnitude) 0.3)) - (seek! (-> self board turn-anim-mag) 0.0 (* 8.0 (-> self clock seconds-per-frame))) - (seek! (-> self board turn-anim-mag) f0-1 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self board turn-anim-mag) 0.0 (* 8.0 (seconds-per-frame))) + (seek! (-> self board turn-anim-mag) f0-1 (* 2.0 (seconds-per-frame))) ) ) (set! (-> self board turn-anim-targ) (+ (lerp-scale @@ -80,16 +80,14 @@ ) ) (set! (-> self board turn-anim-duck-vel) (* 0.98 (-> self board turn-anim-duck-vel))) - (+! (-> self board turn-anim-duck-vel) (* -8.0 (-> self clock seconds-per-frame))) + (+! (-> self board turn-anim-duck-vel) (* -8.0 (seconds-per-frame))) (when (and (board-on-ground?) (>= (- (current-time) (-> self board unknown-time-frame02)) (seconds 0.2))) (if (logtest? (-> self control status) (collide-status impact-surface)) (+! (-> self board turn-anim-duck-vel) (lerp-scale 0.0 15.0 (-> self control normal-impact-vel) 0.0 81920.0)) ) (let ((f0-38 (vector-dot (the-as vector (-> self board up-vector)) (-> self board up-vector 1)))) (if (< f0-38 1.0) - (+! (-> self board turn-anim-duck-vel) - (* (lerp-scale 400.0 0.0 f0-38 0.6 1.0) (-> self clock seconds-per-frame)) - ) + (+! (-> self board turn-anim-duck-vel) (* (lerp-scale 400.0 0.0 f0-38 0.6 1.0) (seconds-per-frame))) ) ) ) @@ -164,7 +162,7 @@ (if (not (-> self control danger-mode)) (target-danger-set! 'board-spin #f) ) - (+! (-> self board trotyv) (* (-> self board spin-control) (-> self clock seconds-per-frame))) + (+! (-> self board trotyv) (* (-> self board spin-control) (seconds-per-frame))) (when (and (< (fabs f28-0) 1092266.6) (< (fabs (-> self board spin-control)) 1092266.6) (< (* 0.9 (fabs (-> self board flip-control))) (fabs f30-0)) @@ -2372,14 +2370,7 @@ (set! (-> *part-id-table* 431 init-specs 1 initial-valuef) (lerp-scale 0.1 2.0 (fabs (-> self board ride-speed)) 0.0 (* 0.3 (-> self control mod-surface transv-max))) ) - (let ((t9-10 sp-launch-particles-var) - (a0-42 *sp-particle-system-2d*) - (a1-12 (-> *part-id-table* 431)) - (a2-9 *launch-matrix*) - ) - (set! (-> a2-9 trans quad) (-> gp-1 quad)) - (t9-10 a0-42 a1-12 a2-9 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 431) gp-1) ) ) (none) @@ -2486,7 +2477,7 @@ (-> self control transv) (-> self control transv) (-> self control dynam gravity-normal) - (* 122880.0 (-> self clock seconds-per-frame)) + (* 122880.0 (seconds-per-frame)) ) ) (when (jump-hit-ground-stuck?) @@ -2792,7 +2783,7 @@ :post (behavior () (set! (-> self control bend-speed) 0.0) (set! (-> self control bend-target) 0.0) - (vector-seek! (-> self control draw-offset) *null-vector* (* 16384.0 (-> self clock seconds-per-frame))) + (vector-seek! (-> self control draw-offset) *null-vector* (* 16384.0 (seconds-per-frame))) (target-no-move-post) (target-board-effect) (none) @@ -2991,7 +2982,7 @@ :post (behavior () (set! (-> self control bend-speed) 0.0) (set! (-> self control bend-target) 0.0) - (vector-seek! (-> self control draw-offset) *null-vector* (* 16384.0 (-> self clock seconds-per-frame))) + (vector-seek! (-> self control draw-offset) *null-vector* (* 16384.0 (seconds-per-frame))) (target-post) (target-board-effect) (none) diff --git a/test/decompiler/reference/jak2/engine/target/board/target-board_REF.gc b/test/decompiler/reference/jak2/engine/target/board/target-board_REF.gc index 850cdcbb4d..5f495384bc 100644 --- a/test/decompiler/reference/jak2/engine/target/board/target-board_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/board/target-board_REF.gc @@ -214,7 +214,7 @@ (case arg3 ((1) (when (!= (-> *cpad-list* cpads (-> self control cpad number) stick0-speed) 0.0) - (let* ((f30-0 (* 122880.0 (-> self control turn-to-magnitude) (-> self clock seconds-per-frame))) + (let* ((f30-0 (* 122880.0 (-> self control turn-to-magnitude) (seconds-per-frame))) (a2-1 (-> self board ride-dir)) (v1-12 (vector-flatten! (new 'stack-no-clear 'vector) (-> self control to-target-pt-xz) a2-1)) ) @@ -519,12 +519,7 @@ ) 1.0 ) - (vector+float*! - s5-1 - (-> self control trans) - (-> self control c-R-w vector 2) - (* 40960.0 (-> self clock seconds-per-frame)) - ) + (vector+float*! s5-1 (-> self control trans) (-> self control c-R-w vector 2) (* 40960.0 (seconds-per-frame))) (let* ((t9-8 vector-segment-overlap) (a1-8 (-> gp-1 world-vertex)) (a2-3 (-> gp-1 world-vertex 1)) @@ -915,14 +910,11 @@ ) (when (not (or (= (-> self control current-surface vel-turn) 0.0) (< (-> gp-0 z) 0.0))) (let ((f0-22 (atan (-> gp-0 x) (-> gp-0 z)))) - (vector-rotate-y! - gp-0 - gp-0 - (fmin - (* 0.03 (-> self clock time-adjust-ratio) (- f0-22)) - (* (-> self control current-surface vel-turn) (-> self clock seconds-per-frame)) - ) - ) + (vector-rotate-y! gp-0 gp-0 (fmin + (* 0.03 (-> self clock time-adjust-ratio) (- f0-22)) + (* (-> self control current-surface vel-turn) (seconds-per-frame)) + ) + ) ) ) (let* ((f0-28 (* f30-0 (-> self board thrust-scale) (lerp-scale 0.4 1.0 f28-0 0.3 1.0))) @@ -955,9 +947,9 @@ ) ) ) - (+! (-> gp-0 z) (* f0-28 (-> self clock seconds-per-frame))) + (+! (-> gp-0 z) (* f0-28 (seconds-per-frame))) (when (!= f1-23 0.0) - (let ((f0-33 (- 1.0 (/ (* f30-0 (-> self clock seconds-per-frame)) f1-23)))) + (let ((f0-33 (- 1.0 (/ (* f30-0 (seconds-per-frame)) f1-23)))) (set! (-> gp-0 x) (* (-> gp-0 x) f0-33)) (set! (-> gp-0 z) (* (-> gp-0 z) f0-33)) ) @@ -1088,17 +1080,17 @@ ) ) (if (board-on-ground?) - (seek! (-> self board sound-air-knob) 0.0 (* 16.0 (-> self clock seconds-per-frame))) + (seek! (-> self board sound-air-knob) 0.0 (* 16.0 (seconds-per-frame))) (seek! (-> self board sound-air-knob) (lerp-scale 0.0 1.0 (target-height-above-ground) 409.6 28672.0) - (* 2.0 (-> self clock seconds-per-frame)) + (* 2.0 (seconds-per-frame)) ) ) (let ((f30-0 (fabs (/ (-> self board turn-anim-frame) (-> *TARGET_BOARD-bank* turn-frames))))) (seek! (-> self board sound-bank-knob) f30-0 (if (< (-> self board sound-bank-knob) f30-0) - (* 0.5 (-> self clock seconds-per-frame)) - (-> self clock seconds-per-frame) + (* 0.5 (seconds-per-frame)) + (seconds-per-frame) ) ) (set! (-> self board engine-sound-volume) (lerp-scale 0.8 1.0 f30-0 0.0 1.0)) @@ -1150,12 +1142,12 @@ (seek! (-> self board spin-sound-volume) (lerp-scale 0.0 1.0 (fabs (-> self board trotyv)) 0.0 91022.22) - (* 8.0 (-> self clock seconds-per-frame)) + (* 8.0 (seconds-per-frame)) ) (seek! (-> self board spin-sound-pitch) (lerp-scale 0.0 0.3 (fabs (-> self board trotyv)) 36408.89 91022.22) - (-> self clock seconds-per-frame) + (seconds-per-frame) ) (when *sound-player-enable* (let ((v1-89 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) @@ -1176,17 +1168,14 @@ ) (when (= (-> self board upper-body mode) (joint-mod-mode rotate)) (set! (-> self board upper-body-rotyv) - (* 0.95 - (fmax - (fmin (-> self board upper-body-rotyv) (-> self board upper-body-rotyv-max)) - (- (-> self board upper-body-rotyv-max)) - ) + (* 0.95 (fmax + (fmin (-> self board upper-body-rotyv) (-> self board upper-body-rotyv-max)) + (- (-> self board upper-body-rotyv-max)) + ) ) ) - (+! (-> self board upper-body-rotyv) - (* -10.0 (-> self clock seconds-per-frame) (-> self board upper-body-roty)) - ) - (let ((f1-21 (* (-> self board upper-body-rotyv) (-> self clock seconds-per-frame))) + (+! (-> self board upper-body-rotyv) (* -10.0 (seconds-per-frame) (-> self board upper-body-roty))) + (let ((f1-21 (* (-> self board upper-body-rotyv) (seconds-per-frame))) (f0-65 (-> self board upper-body-roty)) ) (+! (-> self board upper-body-roty) f1-21) @@ -1228,9 +1217,9 @@ (set! (-> self board up-vector 1 quad) (-> self board up-vector 0 quad)) ) (+! (-> self board shock-offsetv) - (+ (* -10.0 (-> self clock seconds-per-frame) (-> self board shock-offset)) + (+ (* -10.0 (seconds-per-frame) (-> self board shock-offset)) (if (board-on-ground?) - (* (-> self control dynam gravity-length) (-> self clock seconds-per-frame) f30-0) + (* (-> self control dynam gravity-length) (seconds-per-frame) f30-0) 0.0 ) ) @@ -1246,7 +1235,7 @@ ) (!= (-> self control mod-surface mode) 'air) ) - (+! (-> self board shock-offset) (* (-> self board shock-offsetv) (-> self clock seconds-per-frame))) + (+! (-> self board shock-offset) (* (-> self board shock-offsetv) (seconds-per-frame))) ) ) (set! (-> self board shock-offset) @@ -1630,7 +1619,7 @@ (or (= v1-126 'target-board-trickx) (= v1-126 'target-board-hold)) ) ) - (seek! (-> self control dynam gravity-length) 245760.0 (* 30.0 (-> self clock seconds-per-frame))) + (seek! (-> self control dynam gravity-length) 245760.0 (* 30.0 (seconds-per-frame))) ) ((= (-> self control mod-surface name) 'spin) (set! (-> self control dynam gravity-length) @@ -1653,7 +1642,7 @@ (set! (-> self control dynam gravity-length) 245760.0) ) ((>= (- (current-time) (-> self control last-time-on-surface)) (seconds 0.1)) - (seek! (-> self control dynam gravity-length) 245760.0 (* 245760.0 (-> self clock seconds-per-frame))) + (seek! (-> self control dynam gravity-length) 245760.0 (* 245760.0 (seconds-per-frame))) ) (else (set! (-> self control dynam gravity-length) 81920.0) @@ -1850,12 +1839,12 @@ (set! (-> self board trotyv) (* 0.95 (fmax (fmin (-> self board trotyv) (-> self board trotyv-max)) (- (-> self board trotyv-max)))) ) - (let ((f0-15 (* (-> self board trotyv) (-> self clock seconds-per-frame)))) + (let ((f0-15 (* (-> self board trotyv) (seconds-per-frame)))) (set! (-> self board troty) (the float (sar (shl (the int (+ (-> self board troty) f0-15)) 48) 48))) (set! (-> self board unknown-deg00) (-> self board troty-cum)) (+! (-> self board troty-cum) f0-15) ) - (seek! (-> self board trotyv-max) 91022.22 (* 91022.22 (-> self clock seconds-per-frame))) + (seek! (-> self board trotyv-max) 91022.22 (* 91022.22 (seconds-per-frame))) (mode-set! (-> self board main) (joint-mod-mode rotate)) (twist-set! (-> self board main) (the-as float #f) (-> self board troty) (the-as float #f)) (mode-set! (-> self board board 0 main) (joint-mod-mode rotate)) @@ -1934,7 +1923,7 @@ (pre-collide-setup) (cond ((and (-> self next-state) (= (-> self next-state name) 'target-board-get-off)) - (seek! (-> self board cushion-offset) 0.0 (* 20480.0 (-> self clock seconds-per-frame))) + (seek! (-> self board cushion-offset) 0.0 (* 20480.0 (seconds-per-frame))) ) ((and (logtest? (-> self control mod-surface flags) (surface-flag air)) (not (logtest? (-> self control status) (collide-status on-surface))) @@ -1942,22 +1931,18 @@ (seek! (-> self board cushion-offset) (lerp-scale (-> *TARGET_BOARD-bank* cushion) 0.0 (target-height-above-ground) 0.0 12288.0) - (* 20480.0 (-> self clock seconds-per-frame)) + (* 20480.0 (seconds-per-frame)) ) ) ((focus-test? self on-water) (seek! (-> self board cushion-offset) (+ 2048.0 (-> *TARGET_BOARD-bank* cushion)) - (* 20480.0 (-> self clock seconds-per-frame)) + (* 20480.0 (seconds-per-frame)) ) ) (else - (seek! - (-> self board cushion-offset) - (-> *TARGET_BOARD-bank* cushion) - (* 8192.0 (-> self clock seconds-per-frame)) - ) + (seek! (-> self board cushion-offset) (-> *TARGET_BOARD-bank* cushion) (* 8192.0 (seconds-per-frame))) ) ) (target-board-collision) @@ -2083,9 +2068,9 @@ (let* ((f30-0 (deg- (vector-y-angle (-> self board ride-dir)) (-> self board ride-rot-abs 0))) (f30-1 (* f30-0 (lerp-scale 10.0 100.0 (fabs f30-0) 1820.4445 3640.889))) ) - (+! (-> self board ride-rtv-abs) (* f30-1 (-> self clock seconds-per-frame))) + (+! (-> self board ride-rtv-abs) (* f30-1 (seconds-per-frame))) (set! (-> self board ride-rtv-abs) (* 0.9 (-> self board ride-rtv-abs))) - (+! (-> self board ride-rot-abs 0) (* (-> self board ride-rtv-abs) (-> self clock seconds-per-frame))) + (+! (-> self board ride-rot-abs 0) (* (-> self board ride-rtv-abs) (seconds-per-frame))) (when (>= 0.0 (* f30-1 (deg- (vector-y-angle (-> self board ride-dir)) (-> self board ride-rot-abs 0)))) (set! (-> self board ride-rtv-abs) 0.0) (set! (-> self board ride-rot-abs 0) (vector-y-angle (-> self board ride-dir))) @@ -2200,7 +2185,7 @@ (let ((f0-25 (vector-vector-distance (-> self control trans) s4-1))) (when #t (let ((s3-5 (vector-! (new 'stack-no-clear 'vector) s4-1 (-> self control trans)))) - (let ((f1-9 (* 12288.0 (-> self clock seconds-per-frame)))) + (let ((f1-9 (* 12288.0 (seconds-per-frame)))) (if (and (not (-> self board ride-lock-on)) (< f1-9 f0-25)) (vector-normalize! s3-5 f1-9) (set! (-> self board ride-lock-on) #t) @@ -2300,9 +2285,7 @@ (set! sv-768 (the-as int (-> s3-8 best-other-tri pat))) ) (when (and (< (+ (the float (-> self board ride-vertex-length)) (/ 0.0 f28-3)) - (+ (-> self board ride-vertex-index) - (/ (* (-> self board ride-speed) (-> self clock seconds-per-frame)) f28-3) - ) + (+ (-> self board ride-vertex-index) (/ (* (-> self board ride-speed) (seconds-per-frame)) f28-3)) ) (>= f28-3 3686.4) (and (or (>= f26-1 6963.2) (and (>= f26-1 2048.0) (zero? (shr (shl sv-768 54) 61)))) @@ -2317,9 +2300,7 @@ f26-1 sv-768 (+ (-> self board ride-vertex-index) - (/ (* (-> self board ride-speed) (-> self clock seconds-per-frame)) - (vector-length (-> self board ride-segment)) - ) + (/ (* (-> self board ride-speed) (seconds-per-frame)) (vector-length (-> self board ride-segment))) ) (+ (the float (-> self board ride-vertex-length)) (/ 0.0 f28-3)) ) @@ -2441,44 +2422,40 @@ ;; WARN: Return type mismatch int vs none. (defbehavior board-ride-add-thrust target ((arg0 vector) (arg1 float)) (let* ((f30-0 (-> self board ride-speed)) - (f0-4 - (lerp-scale - (-> self control current-surface fric) - (* 0.2 (-> self control current-surface fric)) - f30-0 - 0.0 - (-> self control current-surface transv-max) - ) - ) - (f30-1 (seek f30-0 0.0 (* f0-4 (-> self clock seconds-per-frame)))) - (f28-0 (vector-dot (-> self board ride-dir) arg0)) - (f0-19 - (+ f30-1 - (* (if (< 0.0 f28-0) - (* f28-0 - (lerp-scale - (-> self control current-surface target-speed) - 0.0 - (-> self board ride-speed) - 0.0 - (-> self control current-surface transv-max) - ) - arg1 - ) - (* 40960.0 arg1 f28-0) - ) - (-> self clock seconds-per-frame) + (f0-4 (lerp-scale + (-> self control current-surface fric) + (* 0.2 (-> self control current-surface fric)) + f30-0 + 0.0 + (-> self control current-surface transv-max) ) - ) - ) + ) + (f30-1 (seek f30-0 0.0 (* f0-4 (seconds-per-frame)))) + (f28-0 (vector-dot (-> self board ride-dir) arg0)) + (f0-19 (+ f30-1 (* (if (< 0.0 f28-0) + (* f28-0 + (lerp-scale + (-> self control current-surface target-speed) + 0.0 + (-> self board ride-speed) + 0.0 + (-> self control current-surface transv-max) + ) + arg1 + ) + (* 40960.0 arg1 f28-0) + ) + (seconds-per-frame) + ) + ) + ) (v1-21 (-> self control to-target-pt-xz)) (f1-6 (vector-dot (-> self control dynam gravity-normal) v1-21)) - (f0-20 - (if (< f1-6 0.0) - (+ f0-19 (* (- f1-6) (-> self control current-surface slope-down-factor) (-> self clock seconds-per-frame))) - (+ f0-19 (* (- f1-6) (-> self control current-surface slope-up-factor) (-> self clock seconds-per-frame))) - ) - ) + (f0-20 (if (< f1-6 0.0) + (+ f0-19 (* (- f1-6) (-> self control current-surface slope-down-factor) (seconds-per-frame))) + (+ f0-19 (* (- f1-6) (-> self control current-surface slope-up-factor) (seconds-per-frame))) + ) + ) ) (set! (-> self board ride-speed) (fmax 0.0 (fmin f0-20 (-> self control current-surface transv-max)))) ) @@ -2520,9 +2497,7 @@ (set! f0-16 0.0) ) (set! (-> self board ride-lean-targ) f0-16) - (+! (-> self board ride-leanv) - (* 100.0 (-> self clock seconds-per-frame) (- f0-16 (-> self board ride-lean))) - ) + (+! (-> self board ride-leanv) (* 100.0 (seconds-per-frame) (- f0-16 (-> self board ride-lean)))) ) ) ) @@ -2530,9 +2505,9 @@ (seek! (-> self board ride-lean-mag) (fabs (analog-input (the-as int (-> self control cpad leftx)) 128.0 32.0 110.0 1.0)) - (* 2.0 (-> self clock seconds-per-frame)) + (* 2.0 (seconds-per-frame)) ) - (+! (-> self board ride-lean) (* (-> self board ride-leanv) (-> self clock seconds-per-frame))) + (+! (-> self board ride-lean) (* (-> self board ride-leanv) (seconds-per-frame))) (cond ((< (-> self board ride-lean) -1.0) (set! (-> self board ride-lean) -1.0) @@ -2549,7 +2524,7 @@ (target-board-compute-edge) (do-rotations2) (pre-collide-setup) - (seek! (-> self board cushion-offset) 1638.4 (* 16384.0 (-> self clock seconds-per-frame))) + (seek! (-> self board cushion-offset) 1638.4 (* 16384.0 (seconds-per-frame))) (let ((s5-3 (new 'stack-no-clear 'vector))) (set! (-> s5-3 quad) (-> self control transv quad)) (let ((s4-1 (new 'stack-no-clear 'vector))) @@ -2630,7 +2605,7 @@ (-> self board ride-vertex) (-> self board ride-vertex-length) (the-as float s4-1) - (* (-> self board ride-speed) (-> self clock seconds-per-frame)) + (* (-> self board ride-speed) (seconds-per-frame)) ) ) ) @@ -2759,7 +2734,7 @@ 0.0 (* 0.3 (-> self board transv-max)) ) - (-> self clock seconds-per-frame) + (seconds-per-frame) ) ) (set! (-> self board turn-anim-vel) @@ -2773,7 +2748,7 @@ ) ) ) - (+! (-> self board turn-anim-frame) (* (-> self board turn-anim-vel) (-> self clock seconds-per-frame))) + (+! (-> self board turn-anim-frame) (* (-> self board turn-anim-vel) (seconds-per-frame))) (set! (-> self board turn-anim-frame) (fmax (fmin (-> self board turn-anim-frame) (-> *TARGET_BOARD-bank* turn-frames)) @@ -2815,14 +2790,14 @@ (let ((f0-59 (fmin (if (logtest? (-> self control status) (collide-status on-surface)) - (seek (-> self board turn-anim-duck) 0.0 (-> self clock seconds-per-frame)) + (seek (-> self board turn-anim-duck) 0.0 (seconds-per-frame)) (-> self board turn-anim-duck) ) (lerp-scale 0.0 -1.0 (the float (- (current-time) (-> self control last-time-on-surface))) 30.0 120.0) ) ) ) - (+! (-> self board turn-anim-duck) (* (-> self board turn-anim-duck-vel) (-> self clock seconds-per-frame))) + (+! (-> self board turn-anim-duck) (* (-> self board turn-anim-duck-vel) (seconds-per-frame))) (cond ((< (-> self board turn-anim-duck) f0-59) (set! (-> self board turn-anim-duck) f0-59) diff --git a/test/decompiler/reference/jak2/engine/target/collide-reaction-target_REF.gc b/test/decompiler/reference/jak2/engine/target/collide-reaction-target_REF.gc index bb4d36740c..802d7a0e21 100644 --- a/test/decompiler/reference/jak2/engine/target/collide-reaction-target_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/collide-reaction-target_REF.gc @@ -604,11 +604,7 @@ (vector-float*! (new 'stack-no-clear 'vector) (-> self control edge-grab-across-edge-dir) - (seek - (vector-length (-> self control additional-decaying-velocity)) - 40960.0 - (* 81920.0 (-> self clock seconds-per-frame)) - ) + (seek (vector-length (-> self control additional-decaying-velocity)) 40960.0 (* 81920.0 (seconds-per-frame))) ) (seconds 0.3) ) diff --git a/test/decompiler/reference/jak2/engine/target/gun/gun-blue-shot_REF.gc b/test/decompiler/reference/jak2/engine/target/gun/gun-blue-shot_REF.gc index d356fcf3e2..2e042276c8 100644 --- a/test/decompiler/reference/jak2/engine/target/gun/gun-blue-shot_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/gun/gun-blue-shot_REF.gc @@ -101,27 +101,13 @@ (set! (-> s4-1 initial-valuef) (y-angle (-> obj root))) ) ) - (let ((t9-7 sp-launch-particles-var) - (a0-19 *sp-particle-system-2d*) - (a1-9 (-> *part-id-table* 196)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s5-1 quad)) - (t9-7 a0-19 a1-9 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 196) s5-1) (let ((s4-2 (get-field-spec-by-id (-> *part-id-table* 195) (sp-field-id spt-rotate-y)))) (if s4-2 (set! (-> s4-2 initial-valuef) (y-angle (-> obj root))) ) ) - (let ((t9-10 sp-launch-particles-var) - (a0-22 *sp-particle-system-2d*) - (a1-11 (-> *part-id-table* 195)) - (a2-4 *launch-matrix*) - ) - (set! (-> a2-4 trans quad) (-> s5-1 quad)) - (t9-10 a0-22 a1-11 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 195) s5-1) ) 0 (none) diff --git a/test/decompiler/reference/jak2/engine/target/gun/gun-dark-shot_REF.gc b/test/decompiler/reference/jak2/engine/target/gun/gun-dark-shot_REF.gc index 4d2afe1dae..33ba18e4ca 100644 --- a/test/decompiler/reference/jak2/engine/target/gun/gun-dark-shot_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/gun/gun-dark-shot_REF.gc @@ -564,22 +564,8 @@ 0 40960.0 ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 215)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> self root trans quad)) - (t9-2 a0-3 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 216)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> self root trans quad)) - (t9-3 a0-4 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 215) (-> self root trans)) + (launch-particles (-> *part-id-table* 216) (-> self root trans)) (let ((gp-0 (-> *part-id-table* 430))) (when gp-0 (let ((v1-14 (get-field-spec-by-id gp-0 (sp-field-id spt-timer)))) diff --git a/test/decompiler/reference/jak2/engine/target/gun/gun-part_REF.gc b/test/decompiler/reference/jak2/engine/target/gun/gun-part_REF.gc index 92cb8e4dc9..09b1f86919 100644 --- a/test/decompiler/reference/jak2/engine/target/gun/gun-part_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/gun/gun-part_REF.gc @@ -525,22 +525,8 @@ (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg1 omega) (-> arg2 z) 1.0) (set! (-> *part-id-table* 199 init-specs 11 initial-valuef) (-> gp-0 y)) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 199)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 203)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 199) gp-0) + (launch-particles (-> *part-id-table* 203) gp-0) ) ) 0 @@ -555,22 +541,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg1 omega) (-> arg2 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 200)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 203)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 200) gp-0) + (launch-particles (-> *part-id-table* 203) gp-0) ) ) 0 diff --git a/test/decompiler/reference/jak2/engine/target/gun/gun-red-shot_REF.gc b/test/decompiler/reference/jak2/engine/target/gun/gun-red-shot_REF.gc index 0ee438f917..5e2134626d 100644 --- a/test/decompiler/reference/jak2/engine/target/gun/gun-red-shot_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/gun/gun-red-shot_REF.gc @@ -73,14 +73,7 @@ ) ) ) - (let ((t9-3 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 190)) - (a2-0 *launch-matrix*) - ) - (set! (-> a2-0 trans quad) (-> gp-0 fire-point quad)) - (t9-3 a0-3 a1-2 a2-0 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 190) (-> gp-0 fire-point)) (let ((s5-2 (new 'stack-no-clear 'vector))) (let ((v1-10 (-> gp-0 fire-point))) (let ((a0-4 (-> gp-0 fire-dir-out))) diff --git a/test/decompiler/reference/jak2/engine/target/gun/gun-util_REF.gc b/test/decompiler/reference/jak2/engine/target/gun/gun-util_REF.gc index 11d9e1884c..eb0af44fd5 100644 --- a/test/decompiler/reference/jak2/engine/target/gun/gun-util_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/gun/gun-util_REF.gc @@ -479,7 +479,7 @@ (trs-set! (-> self mag gp-1) (the-as vector #f) (the-as quaternion #f) *zero-vector*) ) (else - (seek! (-> self mag-scale gp-1) 1.0 (* 8.0 (-> self clock seconds-per-frame))) + (seek! (-> self mag-scale gp-1) 1.0 (* 8.0 (seconds-per-frame))) (let* ((f30-0 (-> self mag-scale gp-1)) (s5-3 (-> self mag gp-1)) (s4-2 (method-of-object s5-3 trs-set!)) @@ -1080,33 +1080,12 @@ (>= (-> obj fire-range) (vector-vector-distance s2-1 s5-0)) ) (vector+! s2-1 s2-1 s1-0) - (let ((t9-5 sp-launch-particles-var) - (a0-31 *sp-particle-system-2d*) - (a1-12 (-> *part-id-table* 185)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s2-1 quad)) - (t9-5 a0-31 a1-12 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-6 sp-launch-particles-var) - (a0-32 *sp-particle-system-2d*) - (a1-13 (-> *part-id-table* 184)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s2-1 quad)) - (t9-6 a0-32 a1-13 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 185) s2-1) + (launch-particles (-> *part-id-table* 184) s2-1) ) (else (vector+! s2-1 s2-1 s1-0) - (let ((t9-7 sp-launch-particles-var) - (a0-35 *sp-particle-system-2d*) - (a1-15 (-> *part-id-table* 186)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s2-1 quad)) - (t9-7 a0-35 a1-15 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 186) s2-1) ) ) ) @@ -1132,23 +1111,9 @@ (when (< 0.0 f28-1) (vector+! s3-1 s3-1 v1-47) (set! (-> *part-id-table* 183 init-specs 13 initial-valuef) f28-1) - (let ((t9-12 sp-launch-particles-var) - (a0-46 *sp-particle-system-2d*) - (a1-23 (-> *part-id-table* 183)) - (a2-5 *launch-matrix*) - ) - (set! (-> a2-5 trans quad) (-> s3-1 quad)) - (t9-12 a0-46 a1-23 a2-5 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 183) s3-1) (set! (-> *part-id-table* 182 init-specs 13 initial-valuef) f28-1) - (let ((t9-13 sp-launch-particles-var) - (a0-47 *sp-particle-system-2d*) - (a1-24 (-> *part-id-table* 182)) - (a2-6 *launch-matrix*) - ) - (set! (-> a2-6 trans quad) (-> s3-1 quad)) - (t9-13 a0-47 a1-24 a2-6 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 182) s3-1) ) ) ) diff --git a/test/decompiler/reference/jak2/engine/target/gun/gun-yellow-shot_REF.gc b/test/decompiler/reference/jak2/engine/target/gun/gun-yellow-shot_REF.gc index 894d2e8d0f..f6a58d3e62 100644 --- a/test/decompiler/reference/jak2/engine/target/gun/gun-yellow-shot_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/gun/gun-yellow-shot_REF.gc @@ -124,14 +124,7 @@ (set! (-> *part-id-table* 223 init-specs 4 initial-valuef) f28-0) ) (vector-normalize! s5-1 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-5 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 224)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-2 a0-5 a1-2 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 224) gp-0) (let ((s3-0 (new 'stack-no-clear 'matrix)) (f28-1 (* 0.000015258789 f30-0)) (f30-1 (-> *part-id-table* 226 init-specs 3 initial-valuef)) @@ -139,14 +132,7 @@ (forward-up->inv-matrix s3-0 s5-1 *up-vector*) (set! (-> s3-0 trans quad) (-> s4-0 quad)) (set! (-> *part-id-table* 226 init-specs 3 initial-valuef) (* f28-1 f30-1)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 226) - s3-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 226) s3-0 :origin-is-matrix #t) (set! (-> *part-id-table* 226 init-specs 3 initial-valuef) f30-1) ) (let ((f0-6 (vector-dot s5-1 (-> (camera-matrix) vector 2)))) @@ -157,14 +143,7 @@ ) (set! (-> *part-id-table* 225 init-specs 8 initial-valuef) (* f30-2 f0-7)) (set! (-> *part-id-table* 225 init-specs 8 random-rangef) (* f28-2 f0-7)) - (let ((t9-6 sp-launch-particles-var) - (a0-9 *sp-particle-system-2d*) - (a1-5 (-> *part-id-table* 225)) - (a2-6 *launch-matrix*) - ) - (set! (-> a2-6 trans quad) (-> gp-0 quad)) - (t9-6 a0-9 a1-5 a2-6 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 225) gp-0) (set! (-> *part-id-table* 225 init-specs 8 initial-valuef) f30-2) (set! (-> *part-id-table* 225 init-specs 8 random-rangef) f28-2) ) diff --git a/test/decompiler/reference/jak2/engine/target/logic-target_REF.gc b/test/decompiler/reference/jak2/engine/target/logic-target_REF.gc index 7a0594046f..9bee16723a 100644 --- a/test/decompiler/reference/jak2/engine/target/logic-target_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/logic-target_REF.gc @@ -816,14 +816,11 @@ ) (else (let ((f0-10 (atan (-> arg0 x) (-> arg0 z)))) - (vector-rotate-y! - arg0 - arg0 - (fmin - (* 0.03 (-> self clock time-adjust-ratio) (- f0-10)) - (* (-> self control current-surface vel-turn) (-> self clock seconds-per-frame)) - ) - ) + (vector-rotate-y! arg0 arg0 (fmin + (* 0.03 (-> self clock time-adjust-ratio) (- f0-10)) + (* (-> self control current-surface vel-turn) (seconds-per-frame)) + ) + ) ) ) ) @@ -957,7 +954,7 @@ (set! (-> s3-1 z) (fmax 0.0 (fmin (-> s3-1 z) (-> s4-0 z)))) ) (if (< 0.2 (-> self control blocked-factor)) - (vector-seek! s3-1 s4-0 (* 122880.0 (-> self clock seconds-per-frame))) + (vector-seek! s3-1 s4-0 (* 122880.0 (seconds-per-frame))) ) (vector-matrix*! s2-0 s3-1 (-> self control c-R-w)) (let ((f28-0 (vector-vector-xz-distance s3-1 s4-0))) @@ -1006,7 +1003,7 @@ (set! (-> gp-0 z) 0.0) ) (let ((s4-2 (vector-! (new-stack-vector0) s5-0 gp-0))) - (let ((f0-45 (* f30-0 (-> self clock seconds-per-frame)))) + (let ((f0-45 (* f30-0 (seconds-per-frame)))) (set! (-> s4-2 y) 0.0) (let ((v1-104 s4-2)) (if (< f0-45 (sqrtf (+ (* (-> v1-104 x) (-> v1-104 x)) (* (-> v1-104 z) (-> v1-104 z))))) @@ -1167,7 +1164,7 @@ (s4-0 (forward-up-nopitch->quaternion (new-stack-quaternion0) gp-0 s3-0)) (s3-1 (forward-up-nopitch->quaternion (new-stack-quaternion0) s5-0 s3-0)) (f0-2 (acos (vector-dot gp-0 s5-0))) - (f1-2 (* (-> self control current-surface turnvv) (-> self clock seconds-per-frame))) + (f1-2 (* (-> self control current-surface turnvv) (seconds-per-frame))) ) (quaternion-slerp! (-> self control dir-targ) @@ -1445,7 +1442,7 @@ (.svf (&-> a1-9 quad) vf6) ) (let ((f0-13 (lerp-scale 1.0 0.0 (- (-> s2-0 y) (-> self control gspot-pos y)) 819.2 2048.0))) - (seek! (-> self leg-ik s5-0 user-blend) f0-13 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> self leg-ik s5-0 user-blend) f0-13 (* 4.0 (seconds-per-frame))) ) (let ((a1-12 (-> gp-0 start-pos))) (let ((v1-63 s2-0)) @@ -1525,11 +1522,7 @@ (if (>= (current-time) (-> self control additional-decaying-velocity-decay-start-time)) (vector-normalize! (-> self control additional-decaying-velocity) - (seek - (vector-length (-> self control additional-decaying-velocity)) - 0.0 - (* 40960.0 (-> self clock seconds-per-frame)) - ) + (seek (vector-length (-> self control additional-decaying-velocity)) 0.0 (* 40960.0 (seconds-per-frame))) ) ) (cond @@ -1546,10 +1539,10 @@ (f0-3 (vector-dot (-> self control transv) v1-22)) ) (if (< f0-3 0.0) - (set! f30-0 (seek f30-0 0.0 (* -1.0 (-> self clock seconds-per-frame) f0-3))) + (set! f30-0 (seek f30-0 0.0 (* -1.0 (seconds-per-frame) f0-3))) ) ) - (let ((f0-7 (seek f30-0 0.0 (* 28672.0 (-> self clock seconds-per-frame))))) + (let ((f0-7 (seek f30-0 0.0 (* 28672.0 (seconds-per-frame))))) (vector-normalize! (-> self control additional-decaying-velocity) f0-7) ) ) @@ -1856,23 +1849,23 @@ (seek! (-> self hair 0 twist-max z) (lerp-scale 0.0 1820.4445 (vector-length (-> self control transv)) 0.0 122880.0) - (* 65536.0 (-> self clock seconds-per-frame)) + (* 65536.0 (seconds-per-frame)) ) (seek! (-> self hair 0 twist-speed-x) (lerp-scale 0.5 4.0 (vector-length (-> self control transv)) 0.0 122880.0) - (* 10.0 (-> self clock seconds-per-frame)) + (* 10.0 (seconds-per-frame)) ) - (let ((f0-9 (+ (-> self hair 0 twist z) (* (-> self hair 0 twist-speed-x) (-> self clock seconds-per-frame))))) + (let ((f0-9 (+ (-> self hair 0 twist z) (* (-> self hair 0 twist-speed-x) (seconds-per-frame))))) (set! (-> self hair 0 twist z) (- f0-9 (* (the float (the int (/ f0-9 1.0))) 1.0))) ) (if (and (focus-test? self pilot) (nonzero? (-> self pilot)) (= (-> self pilot stance) 1)) (seek! (-> self hair 0 twist-max w) (lerp-scale 0.0 9102.223 (vector-length (-> self control transv)) 0.0 122880.0) - (* 65536.0 (-> self clock seconds-per-frame)) + (* 65536.0 (seconds-per-frame)) ) - (seek! (-> self hair 0 twist-max w) 0.0 (* 65536.0 (-> self clock seconds-per-frame))) + (seek! (-> self hair 0 twist-max w) 0.0 (* 65536.0 (seconds-per-frame))) ) (trs-set! (-> self hair 0) @@ -1887,14 +1880,14 @@ (seek! (-> self hair 1 twist-max z) (lerp-scale 0.0 5461.3335 (vector-length (-> self control transv)) 4096.0 122880.0) - (* 65536.0 (-> self clock seconds-per-frame)) + (* 65536.0 (seconds-per-frame)) ) (seek! (-> self hair 1 twist-speed-x) (lerp-scale 1.0 8.0 (vector-length (-> self control transv)) 4096.0 122880.0) - (* 10.0 (-> self clock seconds-per-frame)) + (* 10.0 (seconds-per-frame)) ) - (let ((f0-33 (+ (-> self hair 1 twist z) (* (-> self hair 1 twist-speed-x) (-> self clock seconds-per-frame))))) + (let ((f0-33 (+ (-> self hair 1 twist z) (* (-> self hair 1 twist-speed-x) (seconds-per-frame))))) (set! (-> self hair 1 twist z) (- f0-33 (* (the float (the int (/ f0-33 1.0))) 1.0))) ) (trs-set! @@ -1929,7 +1922,7 @@ ) ) ) - (seek! (-> self control bend-amount) f0-1 (* (-> self control bend-speed) (-> self clock seconds-per-frame))) + (seek! (-> self control bend-amount) f0-1 (* (-> self control bend-speed) (seconds-per-frame))) ) (set! (-> self control dynam gravity-normal quad) (-> self control standard-dynamics gravity-normal quad)) (vector-float*! @@ -2079,10 +2072,10 @@ ((-> s5-0 pilot-edge-grab?) (case (-> s5-0 pilot-edge-grab?) (('target-jump) - (seek! (-> s5-0 pilot-grab-interp) 1.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> s5-0 pilot-grab-interp) 1.0 (* 2.0 (seconds-per-frame))) ) (else - (seek! (-> s5-0 pilot-grab-interp) 1.0 (* 1.5 (-> self clock seconds-per-frame))) + (seek! (-> s5-0 pilot-grab-interp) 1.0 (* 1.5 (seconds-per-frame))) ) ) (let* ((f0-11 (fmin 1.0 (* 1.5 (-> s5-0 pilot-grab-interp)))) @@ -2421,12 +2414,12 @@ ) (cond ((>= f0-1 (-> self excitement)) - (seek! (-> self excitement) f0-1 (* 6.0 (-> self clock seconds-per-frame))) + (seek! (-> self excitement) f0-1 (* 6.0 (seconds-per-frame))) ) ((focus-test? self dead ignore hit) ) (else - (seek! (-> self excitement) f0-1 (* 0.25 (-> self clock seconds-per-frame))) + (seek! (-> self excitement) f0-1 (* 0.25 (seconds-per-frame))) ) ) ) @@ -3446,7 +3439,3 @@ (kill-by-name "tobot" *active-pool*) 0 ) - - - - diff --git a/test/decompiler/reference/jak2/engine/target/mech/mech-part_REF.gc b/test/decompiler/reference/jak2/engine/target/mech/mech-part_REF.gc index 60f48c9d6b..ebbe0c9d9f 100644 --- a/test/decompiler/reference/jak2/engine/target/mech/mech-part_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/mech/mech-part_REF.gc @@ -191,50 +191,15 @@ ) ) ) - (let ((t9-5 sp-launch-particles-var) - (a0-7 *sp-particle-system-2d*) - (a1-8 (-> *part-id-table* 945)) - (a2-5 *launch-matrix*) - ) - (set! (-> a2-5 trans quad) (-> arg1 quad)) - (t9-5 a0-7 a1-8 a2-5 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-6 sp-launch-particles-var) - (a0-8 *sp-particle-system-2d*) - (a1-9 (-> *part-id-table* 940)) - (a2-6 *launch-matrix*) - ) - (set! (-> a2-6 trans quad) (-> arg1 quad)) - (t9-6 a0-8 a1-9 a2-6 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 945) arg1) + (launch-particles (-> *part-id-table* 940) arg1) (cond ((!= (-> *setting-control* user-current under-water-pitch-mod) 0.0) - (let ((t9-7 sp-launch-particles-var) - (a0-9 *sp-particle-system-2d*) - (a1-10 (-> *part-id-table* 945)) - (a2-7 *launch-matrix*) - ) - (set! (-> a2-7 trans quad) (-> arg1 quad)) - (t9-7 a0-9 a1-10 a2-7 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 945) arg1) ) (else - (let ((t9-8 sp-launch-particles-var) - (a0-10 *sp-particle-system-2d*) - (a1-11 (-> *part-id-table* 941)) - (a2-8 *launch-matrix*) - ) - (set! (-> a2-8 trans quad) (-> arg1 quad)) - (t9-8 a0-10 a1-11 a2-8 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-9 sp-launch-particles-var) - (a0-11 *sp-particle-system-2d*) - (a1-12 (-> *part-id-table* 943)) - (a2-9 *launch-matrix*) - ) - (set! (-> a2-9 trans quad) (-> arg1 quad)) - (t9-9 a0-11 a1-12 a2-9 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 941) arg1) + (launch-particles (-> *part-id-table* 943) arg1) ) ) 0 diff --git a/test/decompiler/reference/jak2/engine/target/mech/mech-states_REF.gc b/test/decompiler/reference/jak2/engine/target/mech/mech-states_REF.gc index f3a3812435..d88146dfb3 100644 --- a/test/decompiler/reference/jak2/engine/target/mech/mech-states_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/mech/mech-states_REF.gc @@ -125,20 +125,18 @@ (let ((f26-1 (* (deg-diff f26-0 (y-angle (-> self control))) (-> self clock frames-per-second)))) (cond ((< 910.2222 (fabs f26-1)) - (set! f28-0 (seek f28-0 1.0 (* 16.0 (-> self clock seconds-per-frame)))) + (set! f28-0 (seek f28-0 1.0 (* 16.0 (seconds-per-frame)))) (set! gp-1 #t) ) (else - (set! f28-0 (seek f28-0 0.0 (* 6.0 (-> self clock seconds-per-frame)))) + (set! f28-0 (seek f28-0 0.0 (* 6.0 (seconds-per-frame)))) (when (and gp-1 (= f28-0 0.0)) (set! gp-1 #f) (sound-play "mech-twitch") ) ) ) - (set! f30-0 - (seek f30-0 (lerp-scale 1.0 0.0 (fabs f26-1) 3640.889 16384.0) (* 10.0 (-> self clock seconds-per-frame))) - ) + (set! f30-0 (seek f30-0 (lerp-scale 1.0 0.0 (fabs f26-1) 3640.889 16384.0) (* 10.0 (seconds-per-frame)))) (let ((v1-41 (-> self skel effect))) (set! (-> v1-41 channel-offset) (cond ((< 0.8 (- 1.0 f28-0)) @@ -303,17 +301,11 @@ (set! (-> self control unknown-word04) (the-as uint (+ (the-as float (-> self control unknown-word04)) f26-1)) ) - (set! f30-0 (seek - f30-0 - (lerp-scale 0.0 1.0 (-> self control ctrl-xz-vel) 16384.0 32768.0) - (* 2.0 (-> self clock seconds-per-frame)) - ) + (set! f30-0 + (seek f30-0 (lerp-scale 0.0 1.0 (-> self control ctrl-xz-vel) 16384.0 32768.0) (* 2.0 (seconds-per-frame))) ) - (set! f28-0 (seek - f28-0 - (lerp-scale 1.0 0.0 (-> self control ctrl-xz-vel) 0.0 12288.0) - (* 2.0 (-> self clock seconds-per-frame)) - ) + (set! f28-0 + (seek f28-0 (lerp-scale 1.0 0.0 (-> self control ctrl-xz-vel) 0.0 12288.0) (* 2.0 (seconds-per-frame))) ) (let ((v1-39 (-> self skel effect))) (set! (-> v1-39 channel-offset) (if (< 0.5 f30-0) @@ -699,7 +691,7 @@ ) (cond ((< (-> self mech forward-vel) 0.0) - (seek! (-> self mech forward-vel) -0.04096 (* 122880.0 (-> self clock seconds-per-frame))) + (seek! (-> self mech forward-vel) -0.04096 (* 122880.0 (seconds-per-frame))) ) ((let ((a0-43 (ja-group))) (and a0-43 (or (= a0-43 (-> self draw art-group data 335)) (= a0-43 (-> self draw art-group data 353)))) @@ -722,7 +714,7 @@ ((and a0-50 (= a0-50 (-> self draw art-group data 333))) (cond ((< v1-142 (seconds 0.465)) - (seek! (-> self mech forward-vel) 0.0 (* 20480.0 (-> self clock seconds-per-frame))) + (seek! (-> self mech forward-vel) 0.0 (* 20480.0 (seconds-per-frame))) (set! s3-2 #f) ) ((< v1-142 (seconds 0.53)) @@ -734,7 +726,7 @@ ) ) ((< v1-142 (seconds 0.465)) - (seek! (-> self mech forward-vel) 0.0 (* 20480.0 (-> self clock seconds-per-frame))) + (seek! (-> self mech forward-vel) 0.0 (* 20480.0 (seconds-per-frame))) (set! s3-2 #f) ) ((< v1-142 (seconds 0.53)) @@ -828,7 +820,7 @@ ((cpad-hold? (-> self control cpad number) x) (cond ((= f0-2 0.0) - (seek! (-> self mech jump-thrust) 0.0 (* 245760.0 (-> self clock seconds-per-frame))) + (seek! (-> self mech jump-thrust) 0.0 (* 245760.0 (seconds-per-frame))) ) ((!= f0-2 (-> *TARGET-bank* mech-jump-thrust-fuel)) (let ((f26-0 @@ -841,7 +833,7 @@ (seek! (-> self mech jump-thrust) (- (- (-> self control dynam gravity-length) f30-0) f26-0) - (* 8192000.0 (-> self clock seconds-per-frame)) + (* 8192000.0 (seconds-per-frame)) ) (set! (-> self mech thruster-flame-width) (* 0.75 f28-0)) (set! (-> self mech thruster-flame-length) f28-0) @@ -856,7 +848,7 @@ (seek! (-> self mech jump-thrust-fuel) 0.0 (the float (- (current-time) (-> self clock old-frame-counter)))) ) (else - (seek! (-> self mech jump-thrust) 0.0 (* 491520.0 (-> self clock seconds-per-frame))) + (seek! (-> self mech jump-thrust) 0.0 (* 491520.0 (seconds-per-frame))) (set! (-> self mech thruster-flame-width) (* 0.021428572 (-> self mech jump-thrust))) (set! (-> self mech thruster-flame-length) (* 0.028571429 (-> self mech jump-thrust))) ) @@ -869,7 +861,7 @@ ) (let* ((f0-37 (vector-length v1-85)) (f1-9 f0-37) - (f2-2 (+ f30-0 (* (-> self mech jump-thrust) (-> self clock seconds-per-frame)))) + (f2-2 (+ f30-0 (* (-> self mech jump-thrust) (seconds-per-frame)))) ) (vector+! (-> self control transv) @@ -1221,7 +1213,7 @@ (set! (-> self trans-hook) (lambda :behavior target () - (vector-seek! (-> self draw color-mult) *zero-vector* (-> self clock seconds-per-frame)) + (vector-seek! (-> self draw color-mult) *zero-vector* (seconds-per-frame)) (let ((v1-2 (new-stack-vector0)) (f0-2 (the-as number (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))) ) @@ -1376,7 +1368,7 @@ (vector-seek! (-> self draw color-mult) (new 'static 'vector :x 0.5 :y 0.5 :z 0.5 :w 1.0) - (* 5.0 (-> self clock seconds-per-frame)) + (* 5.0 (seconds-per-frame)) ) (suspend) (ja :num! (seek!)) @@ -1629,7 +1621,7 @@ (else (ja-no-eval :num! (seek! (ja-aframe 8.0 0))) (while (not (ja-done? 0)) - (set! f30-0 (seek f30-0 f28-0 (* 5.0 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 f28-0 (* 5.0 (seconds-per-frame)))) (let ((v1-120 (-> self skel root-channel 1))) (set! (-> v1-120 frame-interp 1) f30-0) (set! (-> v1-120 frame-interp 0) f30-0) @@ -1670,7 +1662,7 @@ (sound-play "mech-servo-up") (ja-no-eval :num! (seek!)) (while (not (ja-done? 0)) - (set! f30-0 (seek f30-0 f28-0 (* 5.0 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 f28-0 (* 5.0 (seconds-per-frame)))) (let ((v1-174 (-> self skel root-channel 1))) (set! (-> v1-174 frame-interp 1) f30-0) (set! (-> v1-174 frame-interp 0) f30-0) @@ -1801,7 +1793,7 @@ (let ((s5-5 (the-as carry-info (send-event-function (handle->process (-> self carry other)) a1-10)))) (when s5-5 (if (< 20.0 (ja-aframe-num 0)) - (seek! (-> s5-5 grab-trans-blend) 1.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> s5-5 grab-trans-blend) 1.0 (* 2.0 (seconds-per-frame))) ) (let ((s3-0 (-> s5-5 process 0 control)) (s5-6 (new 'stack-no-clear 'collide-query)) @@ -1967,8 +1959,8 @@ (suspend) (let ((f28-1 (* (deg-diff f28-0 (y-angle (-> self control))) (-> self clock frames-per-second)))) (set! f30-0 (if (< 910.2222 (fabs f28-1)) - (seek f30-0 1.0 (* 16.0 (-> self clock seconds-per-frame))) - (seek f30-0 0.0 (* 6.0 (-> self clock seconds-per-frame))) + (seek f30-0 1.0 (* 16.0 (seconds-per-frame))) + (seek f30-0 0.0 (* 6.0 (seconds-per-frame))) ) ) (let* ((f0-9 (current-cycle-distance (-> self skel))) @@ -2086,11 +2078,8 @@ (set! (-> self control unknown-word04) (the-as uint (+ (the-as float (-> self control unknown-word04)) f28-1)) ) - (set! f30-0 (seek - f30-0 - (lerp-scale 1.0 0.0 (-> self control ctrl-xz-vel) 0.0 8192.0) - (* 2.0 (-> self clock seconds-per-frame)) - ) + (set! f30-0 + (seek f30-0 (lerp-scale 1.0 0.0 (-> self control ctrl-xz-vel) 0.0 8192.0) (* 2.0 (seconds-per-frame))) ) (ja :num! (loop! f28-1)) ) @@ -2242,7 +2231,7 @@ (set! (-> self control unknown-word04) (the-as uint #f)) (set! f28-0 32768.0) ) - (seek f28-0 0.0 (* 65536.0 (-> self clock seconds-per-frame))) + (seek f28-0 0.0 (* 65536.0 (seconds-per-frame))) ) ((< 0.0 f0-2) (let ((v1-47 (ja-group))) @@ -2257,7 +2246,7 @@ (ja :group! (-> self draw art-group data 345) :num! (identity (ja-aframe f26-0 0)) :dist 16384.0) ) ) - (seek f28-0 49152.0 (* 24576.0 (-> self clock seconds-per-frame))) + (seek f28-0 49152.0 (* 24576.0 (seconds-per-frame))) ) ((< f0-2 0.0) (let ((v1-71 (ja-group))) @@ -2272,10 +2261,10 @@ (ja :group! (-> self draw art-group data 346) :num! (identity (ja-aframe f26-0 0)) :dist 16384.0) ) ) - (seek f28-0 -49152.0 (* 24576.0 (-> self clock seconds-per-frame))) + (seek f28-0 -49152.0 (* 24576.0 (seconds-per-frame))) ) (else - (seek f28-0 0.0 (* 32768.0 (-> self clock seconds-per-frame))) + (seek f28-0 0.0 (* 32768.0 (seconds-per-frame))) ) ) ) @@ -2293,7 +2282,7 @@ 0.0 49152.0 ) - (* 2.0 (-> self clock seconds-per-frame)) + (* 2.0 (seconds-per-frame)) ) ) (sound-play-by-name @@ -2312,7 +2301,7 @@ (seek! (-> self mech jump-thrust) (lerp-scale 0.0 245760.0 (fabs f28-0) 0.0 49152.0) - (* 491520.0 (-> self clock seconds-per-frame)) + (* 491520.0 (seconds-per-frame)) ) (set! (-> self mech thruster-flame-width) (* 0.021428572 (-> self mech jump-thrust))) (set! (-> self mech thruster-flame-length) (* 0.028571429 (-> self mech jump-thrust))) @@ -2566,7 +2555,7 @@ (set! (-> a1-3 message) 'carry-info) (let ((gp-1 (the-as carry-info (send-event-function (handle->process (-> self carry other)) a1-3)))) (if gp-1 - (seek! (-> gp-1 grab-trans-blend) 1.0 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> gp-1 grab-trans-blend) 1.0 (* 4.0 (seconds-per-frame))) ) ) ) diff --git a/test/decompiler/reference/jak2/engine/target/mech/mech_REF.gc b/test/decompiler/reference/jak2/engine/target/mech/mech_REF.gc index b1d15f5b62..4214a201e3 100644 --- a/test/decompiler/reference/jak2/engine/target/mech/mech_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/mech/mech_REF.gc @@ -473,7 +473,7 @@ This commonly includes things such as: ) :code (behavior () (while (< 0.0 (-> self root scale x)) - (seek! (-> self root scale x) 0.0 (* 8.0 (-> self clock seconds-per-frame))) + (seek! (-> self root scale x) 0.0 (* 8.0 (seconds-per-frame))) (set! (-> self root scale y) (-> self root scale x)) (ja-post) (suspend) @@ -511,15 +511,15 @@ This commonly includes things such as: (let ((f30-0 0.0)) (logclear! (-> self draw status) (draw-control-status no-draw)) (while (< (-> self root scale x) 1.0) - (seek! (-> self root scale x) 1.0 (* 8.0 (-> self clock seconds-per-frame))) + (seek! (-> self root scale x) 1.0 (* 8.0 (seconds-per-frame))) (set! (-> self root scale y) (-> self root scale x)) - (set! f30-0 (seek f30-0 1.0 (* 2.0 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 1.0 (* 2.0 (seconds-per-frame)))) (ja :num! (loop! f30-0)) (ja-post) (suspend) ) (until #f - (set! f30-0 (seek f30-0 1.0 (* 0.25 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 1.0 (* 0.25 (seconds-per-frame)))) (ja :num! (loop! f30-0)) (ja-post) (suspend) diff --git a/test/decompiler/reference/jak2/engine/target/sidekick_REF.gc b/test/decompiler/reference/jak2/engine/target/sidekick_REF.gc index b3b5d92bca..4dcb151edc 100644 --- a/test/decompiler/reference/jak2/engine/target/sidekick_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/sidekick_REF.gc @@ -79,10 +79,10 @@ (* (lerp-scale 0.0 5.0 (fabs (-> gp-0 board trotyv)) 0.0 182044.44) (-> self special-anim-interp)) ) (set! (-> self special-anim-frame) (-> arg1 z)) - (seek! (-> self special-anim-interp) 1.0 (* 8.0 (-> self clock seconds-per-frame))) + (seek! (-> self special-anim-interp) 1.0 (* 8.0 (seconds-per-frame))) ) (else - (seek! (-> self special-anim-interp) 0.0 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> self special-anim-interp) 0.0 (* 4.0 (seconds-per-frame))) (set! (-> arg1 z) (* (-> self special-anim-frame) (-> self special-anim-interp))) ) ) diff --git a/test/decompiler/reference/jak2/engine/target/target-anim_REF.gc b/test/decompiler/reference/jak2/engine/target/target-anim_REF.gc index cb900c0142..aca425ff4e 100644 --- a/test/decompiler/reference/jak2/engine/target/target-anim_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-anim_REF.gc @@ -295,7 +295,7 @@ ) ) (until (ja-done? 0) - (seek! (-> self control bend-target) 0.0 (-> self clock seconds-per-frame)) + (seek! (-> self control bend-target) 0.0 (seconds-per-frame)) (suspend) (ja :num! (seek!)) ) @@ -319,7 +319,7 @@ ) ) (until (ja-done? 0) - (seek! (-> self control bend-target) 0.0 (-> self clock seconds-per-frame)) + (seek! (-> self control bend-target) 0.0 (seconds-per-frame)) (suspend) (ja :num! (seek!)) ) @@ -339,7 +339,7 @@ ) ) (until (ja-done? 0) - (seek! (-> self control bend-target) 0.0 (-> self clock seconds-per-frame)) + (seek! (-> self control bend-target) 0.0 (seconds-per-frame)) (suspend) (ja :num! (seek!)) ) @@ -931,7 +931,7 @@ ) (until (ja-done? 0) (suspend) - (ja :num! (seek! max (/ (* (fmax 20480.0 (-> self control ctrl-xz-vel)) (-> self clock seconds-per-frame)) + (ja :num! (seek! max (/ (* (fmax 20480.0 (-> self control ctrl-xz-vel)) (seconds-per-frame)) (/ (-> *TARGET-bank* run-up-cycle-dist) (-> *TARGET-bank* run-cycle-length)) ) ) @@ -1139,15 +1139,12 @@ (set! f26-0 (seek f26-0 (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ -16384.0 (-> self control ctrl-xz-vel))))) - (* 2.0 (-> self clock seconds-per-frame)) + (* 2.0 (seconds-per-frame)) ) ) (if (and (focus-test? self dark) (nonzero? (-> self darkjak))) - (set! f26-0 (seek - f26-0 - (lerp-scale f26-0 (* 0.7 f26-0) sv-16 1820.4445 3640.889) - (* 2.0 (-> self clock seconds-per-frame)) - ) + (set! f26-0 + (seek f26-0 (lerp-scale f26-0 (* 0.7 f26-0) sv-16 1820.4445 3640.889) (* 2.0 (seconds-per-frame))) ) ) (cond @@ -1304,7 +1301,7 @@ (set! (-> s5-0 param 0) (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 54)) frames num-frames) -1)) ) - (let ((f30-1 (seek f30-0 1.0 (* 0.5 (-> self clock seconds-per-frame))))) + (let ((f30-1 (seek f30-0 1.0 (* 0.5 (seconds-per-frame))))) (set! (-> s5-0 param 1) f30-1) (set! (-> s5-0 frame-num) 0.0) (joint-control-channel-group! s5-0 (the-as art-joint-anim (-> self draw art-group data 54)) num-func-seek!) @@ -1370,7 +1367,7 @@ (suspend) (let ((s5-1 (-> self skel root-channel 0))) (set! (-> s5-1 param 0) (the float (+ (-> s5-1 frame-group frames num-frames) -1))) - (set! f30-1 (seek f30-1 1.0 (* 0.5 (-> self clock seconds-per-frame)))) + (set! f30-1 (seek f30-1 1.0 (* 0.5 (seconds-per-frame)))) (set! (-> s5-1 param 1) f30-1) (joint-control-channel-group-eval! s5-1 (the-as art-joint-anim #f) num-func-seek!) ) @@ -1792,7 +1789,7 @@ (quaternion-rotate-y! (-> self control quat-for-control) (-> self control quat-for-control) - (* f30-0 (-> self clock seconds-per-frame)) + (* f30-0 (seconds-per-frame)) ) (suspend) (ja :num! (loop!)) @@ -1810,7 +1807,7 @@ (quaternion-rotate-y! (-> self control quat-for-control) (-> self control quat-for-control) - (* f30-0 (-> self clock seconds-per-frame)) + (* f30-0 (seconds-per-frame)) ) ) (else diff --git a/test/decompiler/reference/jak2/engine/target/target-carry_REF.gc b/test/decompiler/reference/jak2/engine/target/target-carry_REF.gc index c6fb6294b8..51b767e05d 100644 --- a/test/decompiler/reference/jak2/engine/target/target-carry_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-carry_REF.gc @@ -235,7 +235,7 @@ (target-danger-set! 'harmless #f) (ja-no-eval :num! (seek! (ja-aframe 5.0 0))) (while (not (ja-done? 0)) - (set! f30-0 (seek f30-0 f28-0 (* 5.0 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 f28-0 (* 5.0 (seconds-per-frame)))) (let ((v1-45 (-> self skel root-channel 1))) (set! (-> v1-45 frame-interp 1) f30-0) (set! (-> v1-45 frame-interp 0) f30-0) @@ -247,7 +247,7 @@ (target-collide-set! 'carry 0.0) (ja-no-eval :num! (seek!)) (while (not (ja-done? 0)) - (set! f30-0 (seek f30-0 f28-0 (* 5.0 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 f28-0 (* 5.0 (seconds-per-frame)))) (let ((v1-70 (-> self skel root-channel 1))) (set! (-> v1-70 frame-interp 1) f30-0) (set! (-> v1-70 frame-interp 0) f30-0) @@ -259,7 +259,7 @@ (set! (-> a1-22 message) 'carry-info) (let ((gp-4 (the-as carry-info (send-event-function (handle->process (-> self carry other)) a1-22)))) (if gp-4 - (seek! (-> gp-4 grab-trans-blend) 0.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> gp-4 grab-trans-blend) 0.0 (* 2.0 (seconds-per-frame))) ) ) ) @@ -357,7 +357,7 @@ (let ((gp-4 (the-as carry-info (send-event-function (handle->process (-> self carry other)) a1-9)))) (when gp-4 (if (< 22.0 (ja-aframe-num 0)) - (seek! (-> gp-4 grab-trans-blend) 1.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> gp-4 grab-trans-blend) 1.0 (* 2.0 (seconds-per-frame))) ) (let ((s4-0 (-> gp-4 process 0 control)) (gp-5 (new 'stack-no-clear 'collide-query)) @@ -388,7 +388,7 @@ (set! (-> a1-14 message) 'carry-info) (let ((gp-6 (the-as carry-info (send-event-function (handle->process (-> self carry other)) a1-14)))) (if gp-6 - (seek! (-> gp-6 grab-trans-blend) 0.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> gp-6 grab-trans-blend) 0.0 (* 2.0 (seconds-per-frame))) ) ) ) @@ -689,7 +689,7 @@ (seek! (-> self control unknown-float35) (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ -10240.0 (-> self control ctrl-xz-vel))))) - (-> self clock seconds-per-frame) + (seconds-per-frame) ) (none) ) @@ -742,7 +742,7 @@ (set! (-> a1-3 message) 'carry-info) (let ((gp-1 (the-as carry-info (send-event-function (handle->process (-> self carry other)) a1-3)))) (if gp-1 - (seek! (-> gp-1 grab-trans-blend) 1.0 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> gp-1 grab-trans-blend) 1.0 (* 4.0 (seconds-per-frame))) ) ) ) @@ -783,7 +783,7 @@ (set! (-> a1-11 message) 'carry-info) (let ((gp-4 (the-as carry-info (send-event-function (handle->process (-> self carry other)) a1-11)))) (if gp-4 - (seek! (-> gp-4 grab-trans-blend) 0.0 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> gp-4 grab-trans-blend) 0.0 (* 4.0 (seconds-per-frame))) ) ) ) diff --git a/test/decompiler/reference/jak2/engine/target/target-darkjak_REF.gc b/test/decompiler/reference/jak2/engine/target/target-darkjak_REF.gc index b054428cce..b32bb3c89a 100644 --- a/test/decompiler/reference/jak2/engine/target/target-darkjak_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-darkjak_REF.gc @@ -126,7 +126,7 @@ ) ) (else - (seek! (-> self darkjak-interp) 0.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self darkjak-interp) 0.0 (* 2.0 (seconds-per-frame))) (if (= (-> self darkjak-interp) 0.0) (set! (-> self darkjak-giant-interp) 1.0) ) @@ -218,13 +218,9 @@ (not (logtest? (-> self draw status) (draw-control-status no-draw no-draw-temp))) (not (movie?)) ) - (let ((gp-1 sp-launch-particles-var) - (s5-0 *sp-particle-system-2d*) - (s4-0 (-> *part-id-table* 178)) - (s2-0 *launch-matrix*) - ) - (set! (-> s2-0 trans quad) (-> (process-drawable-random-point! self (new 'stack-no-clear 'vector)) quad)) - (gp-1 s5-0 s4-0 s2-0 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) + (launch-particles + (-> *part-id-table* 178) + (process-drawable-random-point! self (new 'stack-no-clear 'vector)) ) (cond ((rand-vu-percent? 0.25) @@ -486,7 +482,7 @@ ((and v1-30 (= v1-30 (-> self draw art-group data 412))) (ja-no-eval :num! (seek! 0.0)) (while (not (ja-done? 0)) - (seek! (-> self darkjak-interp) 0.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self darkjak-interp) 0.0 (* 2.0 (seconds-per-frame))) (suspend) (ja-eval) ) @@ -812,7 +808,7 @@ ) ) ((< sv-16 0.0) - (set! sv-16 (seek sv-16 -0.04096 (* 491520.0 (-> self clock seconds-per-frame)))) + (set! sv-16 (seek sv-16 -0.04096 (* 491520.0 (seconds-per-frame)))) (set-forward-vel sv-16) ) ((and (nonzero? (-> self control unknown-time-frame18)) @@ -991,8 +987,8 @@ ;; WARN: Return type mismatch int vs none. (defmethod update-clock! darkjak-info ((obj darkjak-info) (arg0 int)) (when (-> obj clock-on) - (+! (-> obj clock-pos) (* (-> obj clock-vel) (-> self clock seconds-per-frame))) - (+! (-> obj clock-vel) (* 4.0 (-> self clock seconds-per-frame))) + (+! (-> obj clock-pos) (* (-> obj clock-vel) (seconds-per-frame))) + (+! (-> obj clock-vel) (* 4.0 (seconds-per-frame))) (cond ((< 1.0 (-> obj clock-pos)) (set! (-> obj clock-pos) 1.0) @@ -1025,7 +1021,7 @@ ;; definition for function target-darkjak-bomb-collide ;; WARN: Return type mismatch int vs none. (defbehavior target-darkjak-bomb-collide target ((arg0 float) (arg1 float)) - (seek! (-> (the-as (pointer float) arg0) 0) arg1 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> (the-as (pointer float) arg0) 0) arg1 (* 4.0 (seconds-per-frame))) (set! (-> self control bomb-scale) (-> (the-as (pointer float) arg0) 0)) (target-danger-set! 'bomb #f) (update-transforms (-> self control)) @@ -1176,7 +1172,7 @@ (vector-! v1-92 (-> self control transv) (vector-float*! v1-92 (-> self control dynam gravity-normal) f0-35)) (let* ((f1-5 (vector-length v1-92)) (f2-0 f1-5) - (f0-36 (+ f0-35 (* -491520.0 (-> self clock seconds-per-frame)))) + (f0-36 (+ f0-35 (* -491520.0 (seconds-per-frame)))) ) (vector+! (-> self control transv) @@ -1203,7 +1199,7 @@ ) (let* ((f1-8 (vector-length v1-105)) (f2-1 f1-8) - (f0-43 (+ f0-42 (* -491520.0 (-> self clock seconds-per-frame)))) + (f0-43 (+ f0-42 (* -491520.0 (seconds-per-frame)))) ) (vector+! (-> self control transv) @@ -1876,7 +1872,7 @@ (set! sv-92 1.0) ) ) - (set! sv-88 (seek sv-88 (the-as float sv-92) (* 6.0 (-> self clock seconds-per-frame)))) + (set! sv-88 (seek sv-88 (the-as float sv-92) (* 6.0 (seconds-per-frame)))) (ja :num! (loop!)) (let ((a0-60 (-> self skel root-channel 1))) (let ((f0-17 sv-88)) diff --git a/test/decompiler/reference/jak2/engine/target/target-death_REF.gc b/test/decompiler/reference/jak2/engine/target/target-death_REF.gc index d1497f17b2..4a0e2ef2f9 100644 --- a/test/decompiler/reference/jak2/engine/target/target-death_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-death_REF.gc @@ -901,7 +901,7 @@ #t (let ((f28-1 (* 1.05 (/ (* -60.0 arg3) (* (the float (+ (-> (ja-group) frames num-frames) -1)) (ja-step 0)))))) (until v1-29 - (+! f30-1 (* (-> arg0 shove-back) f28-1 (-> self clock seconds-per-frame))) + (+! f30-1 (* (-> arg0 shove-back) f28-1 (seconds-per-frame))) (set! s1-1 (target-hit-push s3-0 s2-1 f30-1 (* (-> arg0 shove-back) f28-1) arg0)) (suspend) (ja :num! (seek!)) @@ -909,7 +909,7 @@ ) (while (and (or (not (logtest? (-> self control status) (collide-status on-surface))) s1-1) (!= s1-1 'stuck)) (arg2) - (+! f30-1 (* (-> arg0 shove-back) f28-1 (-> self clock seconds-per-frame))) + (+! f30-1 (* (-> arg0 shove-back) f28-1 (seconds-per-frame))) (set! s1-1 (target-hit-push s3-0 s2-1 f30-1 (* (-> arg0 shove-back) f28-1) arg0)) (if (not s1-1) (logclear! (-> self focus-status) (focus-status hit)) @@ -1187,7 +1187,7 @@ ) (let* ((f1-10 (vector-length v1-157)) (f2-1 f1-10) - (f0-40 (+ f0-39 (* 286720.0 (-> self clock seconds-per-frame)))) + (f0-40 (+ f0-39 (* 286720.0 (seconds-per-frame)))) ) (vector+! (-> self control transv) @@ -1816,7 +1816,7 @@ (vector-seek! (-> self draw color-mult) (new 'static 'vector :x 0.5 :y 0.5 :z 0.5 :w 1.0) - (* 5.0 (-> self clock seconds-per-frame)) + (* 5.0 (seconds-per-frame)) ) (suspend) (ja :num! (seek!)) @@ -1942,7 +1942,7 @@ (set! v1-24 'target-hit-ground-hard) (goto cfg-17) ) - (vector-seek! (-> self draw color-mult) *zero-vector* (-> self clock seconds-per-frame)) + (vector-seek! (-> self draw color-mult) *zero-vector* (seconds-per-frame)) (let ((v1-49 (new-stack-vector0)) (f0-7 (the-as number (vector-dot (-> self control dynam gravity-normal) (-> self control transv)))) ) @@ -1981,7 +1981,7 @@ :frame-num 0.0 ) (until (ja-done? 0) - (vector-seek! (-> self draw color-mult) *identity-vector* (-> self clock seconds-per-frame)) + (vector-seek! (-> self draw color-mult) *identity-vector* (seconds-per-frame)) (suspend) (ja :num! (seek!)) ) @@ -2052,11 +2052,7 @@ ) (until (ja-done? 0) (if (< (+ -10240.0 (-> self water height)) (-> self control trans y)) - (seek! - (-> self control trans y) - (+ -10240.0 (-> self water height)) - (* 81920.0 (-> self clock seconds-per-frame)) - ) + (seek! (-> self control trans y) (+ -10240.0 (-> self water height)) (* 81920.0 (seconds-per-frame))) ) (suspend) (ja :num! (seek!)) diff --git a/test/decompiler/reference/jak2/engine/target/target-gun_REF.gc b/test/decompiler/reference/jak2/engine/target/target-gun_REF.gc index 5d27dac450..ce52adbc09 100644 --- a/test/decompiler/reference/jak2/engine/target/target-gun_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-gun_REF.gc @@ -61,10 +61,10 @@ #t ) ((< (-> self control unknown-float003) f30-0) - (seek! (-> self control unknown-float003) f30-0 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> self control unknown-float003) f30-0 (* 4.0 (seconds-per-frame))) ) (else - (seek! (-> self control unknown-float003) f30-0 (-> self clock seconds-per-frame)) + (seek! (-> self control unknown-float003) f30-0 (seconds-per-frame)) ) ) ) @@ -1707,11 +1707,11 @@ (seek! (-> self gun top-anim-tilt-up) (lerp-scale -1820.4445 0.0 f0-8 61440.0 122880.0) - (* 5461.3335 (-> self clock seconds-per-frame)) + (* 5461.3335 (seconds-per-frame)) ) ) ((!= (-> *cpad-list* cpads (-> self control cpad number) stick0-speed) 0.0) - (seek! (-> self gun top-anim-tilt-up) 0.0 (* 1820.4445 (-> self clock seconds-per-frame))) + (seek! (-> self gun top-anim-tilt-up) 0.0 (* 1820.4445 (seconds-per-frame))) ) ) ) @@ -1748,10 +1748,10 @@ (focus-test? self pilot-riding) ) ) - (seek! (-> self upper-body twist z) 0.0 (* 65536.0 (-> self clock seconds-per-frame))) + (seek! (-> self upper-body twist z) 0.0 (* 65536.0 (seconds-per-frame))) ) ((logtest? (surface-flag gun-no-twist) (-> self control current-surface flags)) - (seek! (-> self upper-body twist z) 0.0 (* 16384.0 (-> self clock seconds-per-frame))) + (seek! (-> self upper-body twist z) 0.0 (* 16384.0 (seconds-per-frame))) ) ((and (< 0.0 (-> self control turn-to-magnitude)) (not (logtest? (-> self control current-surface flags) (surface-flag duck))) @@ -1766,7 +1766,7 @@ (set! (-> (new 'stack-no-clear 'vector) quad) (-> self control trans quad)) (if (logtest? (surface-flag gun-no-twist) (-> self control current-surface flags)) (set! (-> self upper-body flex-blend) 0.0) - (seek! (-> self upper-body flex-blend) 1.0 (* 8.0 (-> self clock seconds-per-frame))) + (seek! (-> self upper-body flex-blend) 1.0 (* 8.0 (seconds-per-frame))) ) (when (logtest? (-> self gun track?) (gun-track-flags gutflags-0)) (set! (-> self gun top-anim-look-at quad) (-> self gun track-trans quad)) @@ -1893,8 +1893,8 @@ ) ) (else - (seek! (-> self upper-body flex-blend) 0.0 (* 16.0 (-> self clock seconds-per-frame))) - (seek! (-> self upper-body twist z) 0.0 (* 65536.0 (-> self clock seconds-per-frame))) + (seek! (-> self upper-body flex-blend) 0.0 (* 16.0 (seconds-per-frame))) + (seek! (-> self upper-body twist z) 0.0 (* 65536.0 (seconds-per-frame))) ) ) 0 @@ -1959,7 +1959,7 @@ (or (= v1-50 (-> self draw art-group data 247)) (= v1-50 (-> self draw art-group data 254))) ) ) - (seek! (-> self gun top-anim-low-high) 0.0 (* 6.0 (-> self clock seconds-per-frame))) + (seek! (-> self gun top-anim-low-high) 0.0 (* 6.0 (seconds-per-frame))) (push-anim-to-targ (-> self skel top-anim) (the-as art-joint-anim (-> self draw art-group data 247)) @@ -2011,7 +2011,7 @@ ) ) ) - (seek! (-> self gun top-anim-low-high) 0.0 (* 6.0 (-> self clock seconds-per-frame))) + (seek! (-> self gun top-anim-low-high) 0.0 (* 6.0 (seconds-per-frame))) (push-anim-to-targ (-> self skel top-anim) (the-as art-joint-anim (-> self draw art-group data 295)) @@ -2707,19 +2707,17 @@ ((4) (cond ((cpad-hold? (-> self control cpad number) r1) - (seek! (-> gp-0 fire-spinv) 218453.33 (* 145635.56 (-> self clock seconds-per-frame))) + (seek! (-> gp-0 fire-spinv) 218453.33 (* 145635.56 (seconds-per-frame))) (if (and (nonzero? (-> self gun track-target-hold-time)) (< (current-time) (-> self gun track-target-hold-time))) (set! (-> gp-0 fire-spinv) 218453.33) ) ) (else - (seek! (-> gp-0 fire-spinv) 0.0 (* 109226.664 (-> self clock seconds-per-frame))) + (seek! (-> gp-0 fire-spinv) 0.0 (* 109226.664 (seconds-per-frame))) ) ) (set! (-> gp-0 fire-spin) - (the float - (sar (shl (the int (+ (-> gp-0 fire-spin) (* (-> gp-0 fire-spinv) (-> self clock seconds-per-frame)))) 48) 48) - ) + (the float (sar (shl (the int (+ (-> gp-0 fire-spin) (* (-> gp-0 fire-spinv) (seconds-per-frame)))) 48) 48)) ) (set! (-> gp-0 fire-delay) (the-as uint (the int (lerp-scale 120.0 30.0 (-> gp-0 fire-spinv) 0.0 218453.33)))) (when (and (>= (-> gp-0 fire-spinv) 218453.33) diff --git a/test/decompiler/reference/jak2/engine/target/target-swim_REF.gc b/test/decompiler/reference/jak2/engine/target/target-swim_REF.gc index f94459a481..2906c8f649 100644 --- a/test/decompiler/reference/jak2/engine/target/target-swim_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-swim_REF.gc @@ -275,11 +275,7 @@ ) 0 (set! f30-1 - (seek - f30-1 - (lerp-scale 1.0 0.0 (-> self control ctrl-xz-vel) 16384.0 32768.0) - (* 4.0 (-> self clock seconds-per-frame)) - ) + (seek f30-1 (lerp-scale 1.0 0.0 (-> self control ctrl-xz-vel) 16384.0 32768.0) (* 4.0 (seconds-per-frame))) ) (let ((v1-107 (-> self skel root-channel 1))) (set! (-> v1-107 frame-interp 1) f24-1) @@ -350,7 +346,7 @@ (seek! (-> self control unknown-float43) (fmax (fmin (* (+ f0-1 arg2) (fmax 0.5 (+ 0.5 (vector-dot gp-0 v1-2)))) arg3) (- arg3)) - (* arg1 (-> self clock seconds-per-frame)) + (* arg1 (seconds-per-frame)) ) ) (let ((a2-2 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> self control quat-for-control)))) @@ -367,8 +363,8 @@ ) (set! (-> self control override-quat-alpha) (fabs (-> self control unknown-float43))) (if (and (-> self next-state) (= (-> self next-state name) 'target-swim-down)) - (seek! (-> self control unknown-float001) -6144.0 (* 4096.0 (-> self clock seconds-per-frame))) - (seek! (-> self control unknown-float001) 0.0 (* 2048.0 (-> self clock seconds-per-frame))) + (seek! (-> self control unknown-float001) -6144.0 (* 4096.0 (seconds-per-frame))) + (seek! (-> self control unknown-float001) 0.0 (* 2048.0 (seconds-per-frame))) ) (set! (-> self control draw-offset y) (-> self control unknown-float001)) ) @@ -858,7 +854,7 @@ (f26-0 f28-0) (f24-0 (+ f0-13 f30-0)) ) - (set! f30-0 (seek f30-0 0.0 (* 32768.0 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 0.0 (* 32768.0 (seconds-per-frame)))) (vector+! (-> self control transv) (vector-float*! (-> self control transv) (-> self control dynam gravity-normal) f24-0) @@ -1003,7 +999,7 @@ ) (suspend) (ja :num! (loop! f30-0)) - (set! f30-0 (seek f30-0 1.0 (-> self clock seconds-per-frame))) + (set! f30-0 (seek f30-0 1.0 (seconds-per-frame))) ) ) #f diff --git a/test/decompiler/reference/jak2/engine/target/target-tube_REF.gc b/test/decompiler/reference/jak2/engine/target/target-tube_REF.gc index 92462c2608..4733b85b1e 100644 --- a/test/decompiler/reference/jak2/engine/target/target-tube_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-tube_REF.gc @@ -198,12 +198,12 @@ 1.0 0.0 ) - (* 2.0 (-> self clock seconds-per-frame)) + (* 2.0 (seconds-per-frame)) ) (seek! (-> self tube tube-sound-pitch) (lerp-scale -0.15 0.15 (-> self control ctrl-xz-vel) 0.0 122880.0) - (* 0.5 (-> self clock seconds-per-frame)) + (* 0.5 (seconds-per-frame)) ) (let ((f1-2 (-> self tube tube-sound-vol)) (f0-9 (-> self tube tube-sound-pitch)) @@ -324,7 +324,7 @@ (vector-v++! (-> self control transv-ctrl) s4-2) ) (let* ((f1-8 (-> self control current-surface fric)) - (f0-17 (- 1.0 (* 60.0 (-> self clock seconds-per-frame) (- 1.0 f1-8)))) + (f0-17 (- 1.0 (* 60.0 (seconds-per-frame) (- 1.0 f1-8)))) (f0-19 (* 0.5 (+ 1.0 f0-17))) ) (set! (-> self control transv-ctrl x) (* (-> self control transv-ctrl x) f0-19)) @@ -687,7 +687,7 @@ 0.0 36864.0 ) - (-> self clock seconds-per-frame) + (seconds-per-frame) ) ) (set! (-> self tube turn-anim-vel) @@ -696,7 +696,7 @@ (fmin 100.0 (* (-> self tube turn-anim-vel) (lerp-scale 0.96 0.9 (-> self control ctrl-xz-vel) 0.0 36864.0))) ) ) - (+! (-> self tube turn-anim-frame) (* (-> self tube turn-anim-vel) (-> self clock seconds-per-frame))) + (+! (-> self tube turn-anim-frame) (* (-> self tube turn-anim-vel) (seconds-per-frame))) (set! (-> self tube turn-anim-frame) (fmax -20.0 (fmin 20.0 (-> self tube turn-anim-frame)))) (cond ((and (>= (-> self tube turn-anim-frame) 20.0) (>= (-> self tube turn-anim-vel) 0.0)) @@ -799,7 +799,7 @@ (seek! (-> self control unknown-float35) (fmax 0.0 (fmin 1.0 (* 0.00012207031 (+ -2048.0 (-> self control ctrl-xz-vel))))) - (-> self clock seconds-per-frame) + (seconds-per-frame) ) (none) ) diff --git a/test/decompiler/reference/jak2/engine/target/target-turret-shot_REF.gc b/test/decompiler/reference/jak2/engine/target/target-turret-shot_REF.gc index c9e3c1cc78..6ad60f04ed 100644 --- a/test/decompiler/reference/jak2/engine/target/target-turret-shot_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-turret-shot_REF.gc @@ -301,22 +301,8 @@ (set! (-> *part-id-table* 915 init-specs 4 initial-valuef) f28-0) ) (vector-normalize! s5-1 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-5 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 607)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s4-0 quad)) - (t9-2 a0-5 a1-2 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-6 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 608)) - (a2-4 *launch-matrix*) - ) - (set! (-> a2-4 trans quad) (-> s4-0 quad)) - (t9-3 a0-6 a1-3 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 607) s4-0) + (launch-particles (-> *part-id-table* 608) s4-0) ) (let ((s4-1 (new 'stack-no-clear 'matrix)) (f26-0 (* 0.000027126736 f30-0)) @@ -327,14 +313,7 @@ (set! (-> s4-1 trans quad) (-> gp-0 quad)) (set! (-> *part-id-table* 923 init-specs 3 initial-valuef) (* f26-0 f30-1)) (set! (-> *part-id-table* 923 init-specs 4 initial-valuef) (* f26-0 f28-1)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 923) - s4-1 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 923) s4-1 :origin-is-matrix #t) (set! (-> *part-id-table* 923 init-specs 3 initial-valuef) f30-1) (set! (-> *part-id-table* 923 init-specs 4 initial-valuef) f28-1) ) diff --git a/test/decompiler/reference/jak2/engine/target/target-turret_REF.gc b/test/decompiler/reference/jak2/engine/target/target-turret_REF.gc index 2ffcda5175..d57e80ee0e 100644 --- a/test/decompiler/reference/jak2/engine/target/target-turret_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-turret_REF.gc @@ -1198,12 +1198,7 @@ :post (behavior () (cond ((-> self enable-controls) - (quaternion-slerp! - (-> self root quat) - (-> self root quat) - (-> self init-quat) - (* 3.0 (-> self clock seconds-per-frame)) - ) + (quaternion-slerp! (-> self root quat) (-> self root quat) (-> self init-quat) (* 3.0 (seconds-per-frame))) (quaternion-copy! (-> self target-quat) (-> self root quat)) ) (else @@ -1409,7 +1404,7 @@ (base-turret-method-35 self) (base-turret-method-37 self) (when (>= (-> *camera-combiner* interp-val) 1.0) - (seek! (-> self path-speed-mult) (-> self path-speed-mult-final) (-> self clock seconds-per-frame)) + (seek! (-> self path-speed-mult) (-> self path-speed-mult-final) (seconds-per-frame)) (let ((gp-0 (-> self path-mode))) (case gp-0 ((1) @@ -1421,7 +1416,7 @@ (set! (-> self root trans quad) (-> s5-0 quad)) (set! (-> self root trans y) (+ (-> s5-0 y) (-> self ride-height))) ) - (seek! (-> self ride-height) 2048.0 (* 2048.0 (-> self clock seconds-per-frame))) + (seek! (-> self ride-height) 2048.0 (* 2048.0 (seconds-per-frame))) (set! (-> self path-u-prev) (-> self path-u)) (seek! (-> self path-u) @@ -1429,7 +1424,7 @@ 0.0 1.0 ) - (* (-> self path-speed) (-> self path-speed-mult) (-> self clock seconds-per-frame)) + (* (-> self path-speed) (-> self path-speed-mult) (seconds-per-frame)) ) (base-turret-method-38 self) (when (= (-> self path-u) 1.0) @@ -1491,7 +1486,7 @@ (when (-> s5-0 enable) (let ((s4-0 (-> s5-0 transform))) (let ((f0-3 (* 2.4 (fabs (-> s4-0 trans z))))) - (seek! (-> s4-0 trans z) 0.0 (* f0-3 (-> self clock seconds-per-frame))) + (seek! (-> s4-0 trans z) 0.0 (* f0-3 (seconds-per-frame))) ) (if (= (-> s4-0 trans z) 0.0) (set! (-> s5-0 enable) #f) @@ -1504,21 +1499,17 @@ (set! (-> self rotyvv) (analog-input (the-as int (-> *cpad-list* cpads 0 leftx)) 128.0 32.0 110.0 -98304.0)) (set! (-> self rotxvv) (analog-input (the-as int (-> *cpad-list* cpads 0 lefty)) 128.0 32.0 110.0 -65536.0)) ) - (+! (-> self rotyv) (* (-> self rotyvv) (-> self clock seconds-per-frame))) - (seek! (-> self rotyv) 0.0 (* 32768.0 (-> self clock seconds-per-frame))) + (+! (-> self rotyv) (* (-> self rotyvv) (seconds-per-frame))) + (seek! (-> self rotyv) 0.0 (* 32768.0 (seconds-per-frame))) (set! (-> self rotyv) (fmax -14563.556 (fmin 14563.556 (-> self rotyv)))) (set! (-> self roty) - (the float - (sar (shl (the int (+ (-> self roty) (* (-> self rotyv) (-> self clock seconds-per-frame)))) 48) 48) - ) + (the float (sar (shl (the int (+ (-> self roty) (* (-> self rotyv) (seconds-per-frame)))) 48) 48)) ) - (+! (-> self rotxv) (* (-> self rotxvv) (-> self clock seconds-per-frame))) - (seek! (-> self rotxv) 0.0 (* 32768.0 (-> self clock seconds-per-frame))) + (+! (-> self rotxv) (* (-> self rotxvv) (seconds-per-frame))) + (seek! (-> self rotxv) 0.0 (* 32768.0 (seconds-per-frame))) (set! (-> self rotxv) (fmax -9102.223 (fmin 9102.223 (-> self rotxv)))) (set! (-> self rotx) - (the float - (sar (shl (the int (+ (-> self rotx) (* (-> self rotxv) (-> self clock seconds-per-frame)))) 48) 48) - ) + (the float (sar (shl (the int (+ (-> self rotx) (* (-> self rotxv) (seconds-per-frame)))) 48) 48)) ) (cond ((>= (-> self rotx) (-> self rotx-max)) @@ -1570,9 +1561,9 @@ (seek! (-> self heat) (-> self heat-target) - (* (fmin 0.5 (fabs (- (-> self heat) (-> self heat-target)))) (-> self clock seconds-per-frame)) + (* (fmin 0.5 (fabs (- (-> self heat) (-> self heat-target)))) (seconds-per-frame)) ) - (seek! (-> self heat-target) 0.0 (* 0.4 (-> self clock seconds-per-frame))) + (seek! (-> self heat-target) 0.0 (* 0.4 (seconds-per-frame))) (transform-post) (none) ) @@ -1639,14 +1630,14 @@ (set! (-> self root trans quad) (-> gp-0 quad)) (set! (-> self root trans y) (+ (-> gp-0 y) (-> self ride-height))) ) - (seek! (-> self ride-height) 0.0 (* 2048.0 (-> self clock seconds-per-frame))) + (seek! (-> self ride-height) 0.0 (* 2048.0 (seconds-per-frame))) ) (dotimes (gp-1 4) (let ((s5-0 (-> self gun-recoil-jmod gp-1))) (when (-> s5-0 enable) (let ((s4-0 (-> s5-0 transform))) (let ((f0-7 (* 2.4 (fabs (-> s4-0 trans z))))) - (seek! (-> s4-0 trans z) 0.0 (* f0-7 (-> self clock seconds-per-frame))) + (seek! (-> s4-0 trans z) 0.0 (* f0-7 (seconds-per-frame))) ) (if (= (-> s4-0 trans z) 0.0) (set! (-> s5-0 enable) #f) @@ -1656,10 +1647,7 @@ ) ) (set! (-> self rotxv) - (* (deg-diff - (-> self rotx) - (deg-seek-smooth (-> self rotx) 0.0 (* 16384.0 (-> self clock seconds-per-frame)) 0.1) - ) + (* (deg-diff (-> self rotx) (deg-seek-smooth (-> self rotx) 0.0 (* 16384.0 (seconds-per-frame)) 0.1)) (-> self clock frames-per-second) ) ) @@ -1669,7 +1657,7 @@ (deg-seek-smooth (-> self roty) (the float (sar (shl (the int (quaternion-y-angle (-> self init-quat))) 48) 48)) - (* 21845.334 (-> self clock seconds-per-frame)) + (* 21845.334 (seconds-per-frame)) 0.1 ) ) @@ -1677,14 +1665,10 @@ ) ) (set! (-> self roty) - (the float - (sar (shl (the int (+ (-> self roty) (* (-> self rotyv) (-> self clock seconds-per-frame)))) 48) 48) - ) + (the float (sar (shl (the int (+ (-> self roty) (* (-> self rotyv) (seconds-per-frame)))) 48) 48)) ) (set! (-> self rotx) - (the float - (sar (shl (the int (+ (-> self rotx) (* (-> self rotxv) (-> self clock seconds-per-frame)))) 48) 48) - ) + (the float (sar (shl (the int (+ (-> self rotx) (* (-> self rotxv) (seconds-per-frame)))) 48) 48)) ) (base-turret-method-40 self) (transform-post) @@ -1840,101 +1824,99 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod base-turret-method-47 base-turret ((obj base-turret)) - (with-pp - (let ((a0-1 (-> obj root trans)) - (f30-0 0.0) - (s4-0 (the-as process-drawable #f)) - ) - (let ((s5-0 (new 'stack-no-clear 'array 'collide-shape 32)) - (a1-0 (new 'stack-no-clear 'vector)) - ) - (set! (-> a1-0 quad) (-> a0-1 quad)) - (set! (-> a1-0 w) 409600.0) - (countdown (s3-0 (fill-actor-list-for-sphere *actor-hash* (the-as sphere a1-0) s5-0 32)) - (let* ((s2-0 (-> s5-0 s3-0)) - (a0-5 (if (type? s2-0 collide-shape) - s2-0 - ) - ) - ) - (when a0-5 - (let* ((s1-0 (-> a0-5 process)) - (s2-1 (if (type? s1-0 process-focusable) - s1-0 - ) - ) - ) - (when (and s2-1 - (logtest? (process-mask enemy) (-> s2-1 mask)) - (logtest? (process-mask collectable) (-> s2-1 mask)) - (not (focus-test? (the-as process-focusable s2-1) disable dead ignore inactive)) - (!= s2-1 obj) - (!= s2-1 *target*) - (base-turret-method-46 obj s2-1) - ) - (let ((f0-1 (vector-vector-xz-distance (-> obj root trans) (-> s2-1 root trans)))) - (when (or (not s4-0) (< f0-1 f30-0)) - (set! s4-0 s2-1) - (set! f30-0 f0-1) - ) - ) - ) - ) - ) - ) - ) + (let ((a0-1 (-> obj root trans)) + (f30-0 0.0) + (s4-0 (the-as process-drawable #f)) ) - (cond - (s4-0 - (let ((s5-1 (new 'stack-no-clear 'vector))) - (set! (-> s5-1 x) 0.0) - (set! (-> s5-1 y) 10240.0) - (set! (-> s5-1 z) 0.0) - (set! (-> s5-1 w) 1.0) - (let ((s1-1 (new 'stack-no-clear 'vector)) - (s3-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 12))) - (s2-2 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) - ) - (vector-matrix*! s5-1 s5-1 (-> (the-as process-focusable s4-0) node-list data 0 bone transform)) - (vector-line-distance-point! s5-1 s3-1 (vector+float*! (new 'stack-no-clear 'vector) s3-1 s2-2 4096.0) s1-1) - (let* ((a1-10 (vector-! (new 'stack-no-clear 'vector) s5-1 s1-1)) - (s4-1 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) a1-10 (-> obj root quat))) - (f30-1 (vector-vector-angle-safe s2-2 (vector-! (new 'stack-no-clear 'vector) s5-1 s3-1))) + (let ((s5-0 (new 'stack-no-clear 'array 'collide-shape 32)) + (a1-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> a1-0 quad) (-> a0-1 quad)) + (set! (-> a1-0 w) 409600.0) + (countdown (s3-0 (fill-actor-list-for-sphere *actor-hash* (the-as sphere a1-0) s5-0 32)) + (let* ((s2-0 (-> s5-0 s3-0)) + (a0-5 (if (type? s2-0 collide-shape) + s2-0 + ) ) - (let ((f0-10 (- (atan (-> s4-1 x) (-> s4-1 y))))) - (if (logtest? (-> *game-info* secrets) (game-secrets hflip-screen)) - (set! f0-10 (* -1.0 f0-10)) - ) - (set! (-> obj arrow-angle) (deg-seek (-> obj arrow-angle) f0-10 (* 65536.0 (-> pp clock seconds-per-frame)))) - ) - (cond - ((< 910.2222 f30-1) - (seek! (-> obj arrow-alpha) 1.0 (-> pp clock seconds-per-frame)) - (send-event (handle->process (-> obj hud)) 'set-target-flash #f) + ) + (when a0-5 + (let* ((s1-0 (-> a0-5 process)) + (s2-1 (if (type? s1-0 process-focusable) + s1-0 + ) + ) ) - (else - (seek! (-> obj arrow-alpha) 0.0 (* 4.0 (-> pp clock seconds-per-frame))) - (send-event (handle->process (-> obj hud)) 'set-target-flash #t) + (when (and s2-1 + (logtest? (process-mask enemy) (-> s2-1 mask)) + (logtest? (process-mask collectable) (-> s2-1 mask)) + (not (focus-test? (the-as process-focusable s2-1) disable dead ignore inactive)) + (!= s2-1 obj) + (!= s2-1 *target*) + (base-turret-method-46 obj s2-1) + ) + (let ((f0-1 (vector-vector-xz-distance (-> obj root trans) (-> s2-1 root trans)))) + (when (or (not s4-0) (< f0-1 f30-0)) + (set! s4-0 s2-1) + (set! f30-0 f0-1) ) ) ) ) - (seek! - (-> obj arrow-red) - (lerp-scale 1.0 0.0 (vector-vector-distance s5-1 (-> obj root trans)) 122880.0 245760.0) - (-> pp clock seconds-per-frame) - ) ) ) - (else - (seek! (-> obj arrow-alpha) 0.0 (-> pp clock seconds-per-frame)) - (send-event (handle->process (-> obj hud)) 'set-target-flash #f) - ) ) ) - 0 - (none) + (cond + (s4-0 + (let ((s5-1 (new 'stack-no-clear 'vector))) + (set! (-> s5-1 x) 0.0) + (set! (-> s5-1 y) 10240.0) + (set! (-> s5-1 z) 0.0) + (set! (-> s5-1 w) 1.0) + (let ((s1-1 (new 'stack-no-clear 'vector)) + (s3-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 12))) + (s2-2 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) + ) + (vector-matrix*! s5-1 s5-1 (-> (the-as process-focusable s4-0) node-list data 0 bone transform)) + (vector-line-distance-point! s5-1 s3-1 (vector+float*! (new 'stack-no-clear 'vector) s3-1 s2-2 4096.0) s1-1) + (let* ((a1-10 (vector-! (new 'stack-no-clear 'vector) s5-1 s1-1)) + (s4-1 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) a1-10 (-> obj root quat))) + (f30-1 (vector-vector-angle-safe s2-2 (vector-! (new 'stack-no-clear 'vector) s5-1 s3-1))) + ) + (let ((f0-10 (- (atan (-> s4-1 x) (-> s4-1 y))))) + (if (logtest? (-> *game-info* secrets) (game-secrets hflip-screen)) + (set! f0-10 (* -1.0 f0-10)) + ) + (set! (-> obj arrow-angle) (deg-seek (-> obj arrow-angle) f0-10 (* 65536.0 (seconds-per-frame)))) + ) + (cond + ((< 910.2222 f30-1) + (seek! (-> obj arrow-alpha) 1.0 (seconds-per-frame)) + (send-event (handle->process (-> obj hud)) 'set-target-flash #f) + ) + (else + (seek! (-> obj arrow-alpha) 0.0 (* 4.0 (seconds-per-frame))) + (send-event (handle->process (-> obj hud)) 'set-target-flash #t) + ) + ) + ) + ) + (seek! + (-> obj arrow-red) + (lerp-scale 1.0 0.0 (vector-vector-distance s5-1 (-> obj root trans)) 122880.0 245760.0) + (seconds-per-frame) + ) + ) + ) + (else + (seek! (-> obj arrow-alpha) 0.0 (seconds-per-frame)) + (send-event (handle->process (-> obj hud)) 'set-target-flash #f) + ) + ) ) + 0 + (none) ) ;; definition for method 43 of type base-turret diff --git a/test/decompiler/reference/jak2/engine/target/target-util_REF.gc b/test/decompiler/reference/jak2/engine/target/target-util_REF.gc index 45be7d0b8d..3e13928c14 100644 --- a/test/decompiler/reference/jak2/engine/target/target-util_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-util_REF.gc @@ -1166,9 +1166,8 @@ (set-vector! s1-0 0.0 0.0 0.0 1.0) ) (when (logtest? arg0 (align-opts adjust-x-vel)) - (set! (-> a1-3 x) (+ (* (-> arg1 trans x) (-> s2-0 x) (-> pp clock frames-per-second)) - (* (-> s1-0 x) (-> pp clock seconds-per-frame)) - ) + (set! (-> a1-3 x) + (+ (* (-> arg1 trans x) (-> s2-0 x) (-> pp clock frames-per-second)) (* (-> s1-0 x) (seconds-per-frame))) ) (if (not (logtest? arg0 (align-opts adjust-xz-vel keep-other-velocities))) (set! (-> a1-3 z) 0.0) @@ -1177,15 +1176,13 @@ (if (and (logtest? arg0 (align-opts adjust-y-vel)) (not (and (logtest? arg0 (align-opts ignore-y-if-zero)) (= (-> arg1 trans y) 0.0))) ) - (set! (-> a1-3 y) (+ (* (-> arg1 trans y) (-> s2-0 y) (-> pp clock frames-per-second)) - (* (-> s1-0 y) (-> pp clock seconds-per-frame)) - ) + (set! (-> a1-3 y) + (+ (* (-> arg1 trans y) (-> s2-0 y) (-> pp clock frames-per-second)) (* (-> s1-0 y) (seconds-per-frame))) ) ) (when (logtest? arg0 (align-opts adjust-xz-vel)) - (set! (-> a1-3 z) (+ (* (-> arg1 trans z) (-> s2-0 z) (-> pp clock frames-per-second)) - (* (-> s1-0 z) (-> pp clock seconds-per-frame)) - ) + (set! (-> a1-3 z) + (+ (* (-> arg1 trans z) (-> s2-0 z) (-> pp clock frames-per-second)) (* (-> s1-0 z) (seconds-per-frame))) ) (if (not (logtest? arg0 (align-opts adjust-x-vel keep-other-velocities))) (set! (-> a1-3 x) 0.0) @@ -1327,8 +1324,8 @@ ) (while (< 0.0 f0-0) (set! f1-1 (+ 5.0 f1-1)) - (+! f0-0 (* f2-0 (-> self clock seconds-per-frame))) - (set! f2-0 (- f2-0 (* (-> self control dynam gravity-length) (-> self clock seconds-per-frame)))) + (+! f0-0 (* f2-0 (seconds-per-frame))) + (set! f2-0 (- f2-0 (* (-> self control dynam gravity-length) (seconds-per-frame)))) ) (the time-frame f1-1) ) diff --git a/test/decompiler/reference/jak2/engine/target/target2_REF.gc b/test/decompiler/reference/jak2/engine/target/target2_REF.gc index 73542793f6..efbae606fe 100644 --- a/test/decompiler/reference/jak2/engine/target/target2_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target2_REF.gc @@ -897,7 +897,7 @@ ) ) (if (using-gun? self) - (seek! (-> self control draw-offset y) 778.24 (* 4096.0 (-> self clock seconds-per-frame))) + (seek! (-> self control draw-offset y) 778.24 (* 4096.0 (seconds-per-frame))) ) (none) ) @@ -1318,7 +1318,7 @@ (set! (-> self control unknown-word04) (the-as uint (seek (the-as float (-> self control unknown-word04)) (-> self control did-move-to-pole-or-max-jump-height) - (* 2.0 (-> self clock seconds-per-frame)) + (* 2.0 (seconds-per-frame)) ) ) ) diff --git a/test/decompiler/reference/jak2/engine/target/target_REF.gc b/test/decompiler/reference/jak2/engine/target/target_REF.gc index 82a2580f73..f0cee488be 100644 --- a/test/decompiler/reference/jak2/engine/target/target_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target_REF.gc @@ -563,7 +563,7 @@ ) ) ((nonzero? (-> self control sliding-start-time)) - (seek! (-> self control force-turn-to-strength) 0.0 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> self control force-turn-to-strength) 0.0 (* 4.0 (seconds-per-frame))) ) ) (set! (-> self control turn-lockout-end-time) (+ (current-time) (seconds 0.1))) @@ -1202,7 +1202,7 @@ (seek! (-> self control unknown-float35) (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ -10240.0 (-> self control ctrl-xz-vel))))) - (-> self clock seconds-per-frame) + (seconds-per-frame) ) (none) ) @@ -1458,7 +1458,7 @@ (seek! (-> self control unknown-float35) (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ -10240.0 (-> self control ctrl-xz-vel))))) - (-> self clock seconds-per-frame) + (seconds-per-frame) ) (none) ) @@ -1616,7 +1616,7 @@ (seek! (-> self control unknown-float35) (fmax 0.0 (fmin 1.0 (* 0.00012207031 (+ -2048.0 (-> self control ctrl-xz-vel))))) - (-> self clock seconds-per-frame) + (seconds-per-frame) ) (none) ) @@ -2644,7 +2644,7 @@ (go target-falling #f) ) ((< (the-as float f26-0) 0.0) - (set! f26-0 (seek (the-as float f26-0) -0.04096 (* 491520.0 (-> self clock seconds-per-frame)))) + (set! f26-0 (seek (the-as float f26-0) -0.04096 (* 491520.0 (seconds-per-frame)))) (set-forward-vel (the-as float f26-0)) ) ((and (nonzero? (-> self control unknown-time-frame18)) @@ -2924,8 +2924,8 @@ ) ) (else - (let* ((f1-5 (/ f0-2 (* (-> self control dynam gravity-length) (-> self clock seconds-per-frame)))) - (f0-7 (* 0.5 f1-5 (-> self clock seconds-per-frame) f0-2)) + (let* ((f1-5 (/ f0-2 (* (-> self control dynam gravity-length) (seconds-per-frame)))) + (f0-7 (* 0.5 f1-5 (seconds-per-frame) f0-2)) ) (let ((v1-22 (ja-group))) (if (and v1-22 @@ -2987,7 +2987,7 @@ (seek! (-> self control dynam gravity-length) (-> self control standard-dynamics gravity-length) - (* 245760.0 (-> self clock seconds-per-frame)) + (* 245760.0 (seconds-per-frame)) ) ) (when (and (>= (- (current-time) (-> self state-time)) (seconds 0.05)) @@ -3508,7 +3508,7 @@ (lambda :behavior target ((arg0 target)) (set! (-> arg0 control root-prim local-sphere w) - (seek (-> arg0 control root-prim local-sphere w) 28672.0 (* 286720.0 (-> self clock seconds-per-frame))) + (seek (-> arg0 control root-prim local-sphere w) 28672.0 (* 286720.0 (seconds-per-frame))) ) ) ) diff --git a/test/decompiler/reference/jak2/engine/ui/bigmap_REF.gc b/test/decompiler/reference/jak2/engine/ui/bigmap_REF.gc index feb09a0d6b..7c45490b87 100644 --- a/test/decompiler/reference/jak2/engine/ui/bigmap_REF.gc +++ b/test/decompiler/reference/jak2/engine/ui/bigmap_REF.gc @@ -587,164 +587,162 @@ ;; INFO: Used lq/sq (defmethod draw bigmap ((obj bigmap) (arg0 int) (arg1 int) (arg2 int) (arg3 int)) (local-vars (sv-96 pointer) (sv-100 texture) (sv-104 matrix) (sv-112 int)) - (with-pp - (when (and (= (file-status (-> obj bigmap-image) "world-map" (the-as int (-> obj load-index))) 'active) - (not (-> obj loading-flag)) - ) - (let ((f0-0 (-> *video-params* relative-x-scale))) - (cond - ((-> *blit-displays-work* horizontal-flip-flag) - (set! (-> obj x0) (+ (the int (* (the float (+ arg2 -2048)) f0-0)) 2048)) - (set! (-> obj x1) (+ (the int (* (the float (+ arg0 -2048)) f0-0)) 2048)) - ) - (else - (set! (-> obj x0) (+ (the int (* (the float (+ arg0 -2048)) f0-0)) 2048)) - (set! (-> obj x1) (+ (the int (* (the float (+ arg2 -2048)) f0-0)) 2048)) - ) + (when (and (= (file-status (-> obj bigmap-image) "world-map" (the-as int (-> obj load-index))) 'active) + (not (-> obj loading-flag)) + ) + (let ((f0-0 (-> *video-params* relative-x-scale))) + (cond + ((-> *blit-displays-work* horizontal-flip-flag) + (set! (-> obj x0) (+ (the int (* (the float (+ arg2 -2048)) f0-0)) 2048)) + (set! (-> obj x1) (+ (the int (* (the float (+ arg0 -2048)) f0-0)) 2048)) + ) + (else + (set! (-> obj x0) (+ (the int (* (the float (+ arg0 -2048)) f0-0)) 2048)) + (set! (-> obj x1) (+ (the int (* (the float (+ arg2 -2048)) f0-0)) 2048)) ) ) - (set! (-> obj y0) arg1) - (set! (-> obj y1) arg3) - (set! (-> obj y2) (/ (+ arg1 arg3) 2)) - (with-dma-buffer-add-bucket ((s4-1 (-> *display* frames (-> *display* on-screen) global-buf)) - (bucket-id tex-all-map) - ) - (dma-buffer-add-gs-set s4-1 - (test-1 (new 'static 'gs-test :ate #x1 :afail #x3 :zte #x1 :ztst (gs-ztest always))) - (alpha-1 (new 'static 'gs-alpha :b #x1 :d #x1)) - (clamp-1 (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp))) - ) - (if (= (-> obj bigmap-index) 20) - (draw-city-map obj s4-1) - (draw-non-city-map obj s4-1) - ) - ) - (with-dma-buffer-add-bucket ((s4-2 (-> *display* frames (-> *display* on-screen) global-buf)) - (bucket-id tex-all-map) - ) - (when (= (-> obj y0) 1840) - (let ((s2-1 (-> s4-2 base)) - (s3-1 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x15 :page #xc93))) - ) - (when s3-1 - (set! (-> (the-as (pointer uint128) s2-1) 0) (-> obj adgif-tmpl dma-vif quad)) - (set! (-> (the-as (pointer uint128) s2-1) 1) (-> obj adgif-tmpl quad 1)) - (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s2-1 32)) s3-1) - (&+! (-> s4-2 base) 112) + ) + (set! (-> obj y0) arg1) + (set! (-> obj y1) arg3) + (set! (-> obj y2) (/ (+ arg1 arg3) 2)) + (with-dma-buffer-add-bucket ((s4-1 (-> *display* frames (-> *display* on-screen) global-buf)) + (bucket-id tex-all-map) + ) + (dma-buffer-add-gs-set s4-1 + (test-1 (new 'static 'gs-test :ate #x1 :afail #x3 :zte #x1 :ztst (gs-ztest always))) + (alpha-1 (new 'static 'gs-alpha :b #x1 :d #x1)) + (clamp-1 (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp))) + ) + (if (= (-> obj bigmap-index) 20) + (draw-city-map obj s4-1) + (draw-non-city-map obj s4-1) + ) + ) + (with-dma-buffer-add-bucket ((s4-2 (-> *display* frames (-> *display* on-screen) global-buf)) + (bucket-id tex-all-map) + ) + (when (= (-> obj y0) 1840) + (let ((s2-1 (-> s4-2 base)) + (s3-1 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x15 :page #xc93))) ) - (if (not s3-1) - (format 0 "ERROR: bigmap: mini-map-icons texture is #f~%") - ) + (when s3-1 + (set! (-> (the-as (pointer uint128) s2-1) 0) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s2-1) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s2-1 32)) s3-1) + (&+! (-> s4-2 base) 112) ) - (let ((s3-2 (the-as connection-pers (-> *minimap* engine alive-list)))) - (while s3-2 - (let ((a2-3 (the-as connection-minimap s3-2))) - (when (logtest? (-> a2-3 class flags) (minimap-flag bigmap)) - (cond - ((= (-> obj bigmap-index) 20) - (draw-from-minimap obj s4-2 a2-3) - ) - (else - (if (not (logtest? (-> a2-3 class flags) (minimap-flag city-only))) - (draw-from-minimap obj s4-2 a2-3) - ) - ) + (if (not s3-1) + (format 0 "ERROR: bigmap: mini-map-icons texture is #f~%") + ) + ) + (let ((s3-2 (the-as connection-pers (-> *minimap* engine alive-list)))) + (while s3-2 + (let ((a2-3 (the-as connection-minimap s3-2))) + (when (logtest? (-> a2-3 class flags) (minimap-flag bigmap)) + (cond + ((= (-> obj bigmap-index) 20) + (draw-from-minimap obj s4-2 a2-3) + ) + (else + (if (not (logtest? (-> a2-3 class flags) (minimap-flag city-only))) + (draw-from-minimap obj s4-2 a2-3) + ) ) ) ) - (set! s3-2 (-> s3-2 next)) ) + (set! s3-2 (-> s3-2 next)) ) - (let ((s3-3 (new 'stack-no-clear 'vector)) - (f30-0 (-> *video-params* relative-x-scale)) - ) - (vector-z-quaternion! s3-3 (-> *target* control quat)) - (vector-xz-normalize! s3-3 -1.0) - (set! (-> s3-3 y) 0.0) - (set! (-> s3-3 w) 0.0) - (set! sv-96 (-> s4-2 base)) - (set! sv-100 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x42 :page #xb))) - (set! sv-104 (new 'stack-no-clear 'matrix)) - (set! sv-112 (the int (* 56.0 f30-0))) - (when sv-100 - (set-pos! obj (target-pos 0)) - (if (-> *blit-displays-work* horizontal-flip-flag) - (set! f30-0 (- f30-0)) - ) - (set-vector! (-> (the-as matrix sv-104) vector 0) (* (-> s3-3 z) f30-0) 0.0 (- (-> s3-3 x)) 0.0) - (set-vector! (-> (the-as matrix sv-104) vector 1) 0.0 1.0 0.0 0.0) - (set-vector! (-> (the-as matrix sv-104) vector 2) (* (-> s3-3 x) f30-0) 0.0 (-> s3-3 z) 1.0) - (set-vector! - (-> (the-as matrix sv-104) trans) - (+ (the float (-> obj x0)) (* 2.0 f30-0 (the float (-> obj pos x)))) - 0.0 - (- (the float (+ (* (-> obj pos y) 2) 1840)) (-> obj scroll y)) - 1.0 - ) - (set-vector! (-> obj corner 0) 0.0 0.0 -7.0 1.0) - (set-vector! (-> obj corner 1) 7.0 0.0 0.0 1.0) - (set-vector! (-> obj corner 2) -7.0 0.0 0.0 1.0) - (set-vector! (-> obj corner 3) 0.0 0.0 7.0 1.0) - (vector-matrix*! (the-as vector (-> obj corner)) (the-as vector (-> obj corner)) sv-104) - (vector-matrix*! (-> obj corner 1) (-> obj corner 1) sv-104) - (vector-matrix*! (-> obj corner 2) (-> obj corner 2) sv-104) - (vector-matrix*! (-> obj corner 3) (-> obj corner 3) sv-104) - (let ((v1-101 (-> obj adgif-tmpl dma-vif quad))) - (set! (-> (the-as (pointer uint128) sv-96)) v1-101) - ) - (let ((v1-102 (-> obj adgif-tmpl quad 1))) - (set! (-> (the-as (pointer uint128) sv-96) 1) v1-102) - ) - (adgif-shader<-texture-simple! (the-as adgif-shader (&+ sv-96 32)) sv-100) - (let ((v1-104 (-> obj draw-tmpl dma-vif quad))) - (set! (-> (the-as (pointer uint128) sv-96) 7) v1-104) - ) - (let ((v1-105 (-> obj draw-tmpl quad 1))) - (set! (-> (the-as (pointer uint128) sv-96) 8) v1-105) - ) - (set-vector! (the-as vector4w (&+ sv-96 144)) 0 255 255 128) - (set-vector! (the-as vector4w (&+ sv-96 160)) 0 0 0 0) - (set-vector! - (the-as vector4w (&+ sv-96 176)) - (the int (* 16.0 (-> obj corner 0 x))) - (the int (* 16.0 (-> obj corner 0 z))) - #xffffff - 0 - ) - (set-vector! (the-as vector4w (&+ sv-96 192)) 256 0 0 0) - (set-vector! - (the-as vector4w (&+ sv-96 208)) - (the int (* 16.0 (-> obj corner 1 x))) - (the int (* 16.0 (-> obj corner 1 z))) - #xffffff - 0 - ) - (set-vector! (the-as vector4w (&+ sv-96 224)) 0 256 0 0) - (set-vector! - (the-as vector4w (&+ sv-96 240)) - (the int (* 16.0 (-> obj corner 2 x))) - (the int (* 16.0 (-> obj corner 2 z))) - #xffffff - 0 - ) - (set-vector! (the-as vector4w (&+ sv-96 256)) 256 256 0 0) - (set-vector! - (the-as vector4w (&+ sv-96 272)) - (the int (* 16.0 (-> obj corner 3 x))) - (the int (* 16.0 (-> obj corner 3 z))) - #xffffff - 0 - ) - (&+! (-> s4-2 base) 288) + ) + (let ((s3-3 (new 'stack-no-clear 'vector)) + (f30-0 (-> *video-params* relative-x-scale)) ) + (vector-z-quaternion! s3-3 (-> *target* control quat)) + (vector-xz-normalize! s3-3 -1.0) + (set! (-> s3-3 y) 0.0) + (set! (-> s3-3 w) 0.0) + (set! sv-96 (-> s4-2 base)) + (set! sv-100 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x42 :page #xb))) + (set! sv-104 (new 'stack-no-clear 'matrix)) + (set! sv-112 (the int (* 56.0 f30-0))) + (when sv-100 + (set-pos! obj (target-pos 0)) + (if (-> *blit-displays-work* horizontal-flip-flag) + (set! f30-0 (- f30-0)) + ) + (set-vector! (-> (the-as matrix sv-104) vector 0) (* (-> s3-3 z) f30-0) 0.0 (- (-> s3-3 x)) 0.0) + (set-vector! (-> (the-as matrix sv-104) vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> (the-as matrix sv-104) vector 2) (* (-> s3-3 x) f30-0) 0.0 (-> s3-3 z) 1.0) + (set-vector! + (-> (the-as matrix sv-104) trans) + (+ (the float (-> obj x0)) (* 2.0 f30-0 (the float (-> obj pos x)))) + 0.0 + (- (the float (+ (* (-> obj pos y) 2) 1840)) (-> obj scroll y)) + 1.0 + ) + (set-vector! (-> obj corner 0) 0.0 0.0 -7.0 1.0) + (set-vector! (-> obj corner 1) 7.0 0.0 0.0 1.0) + (set-vector! (-> obj corner 2) -7.0 0.0 0.0 1.0) + (set-vector! (-> obj corner 3) 0.0 0.0 7.0 1.0) + (vector-matrix*! (the-as vector (-> obj corner)) (the-as vector (-> obj corner)) sv-104) + (vector-matrix*! (-> obj corner 1) (-> obj corner 1) sv-104) + (vector-matrix*! (-> obj corner 2) (-> obj corner 2) sv-104) + (vector-matrix*! (-> obj corner 3) (-> obj corner 3) sv-104) + (let ((v1-101 (-> obj adgif-tmpl dma-vif quad))) + (set! (-> (the-as (pointer uint128) sv-96)) v1-101) + ) + (let ((v1-102 (-> obj adgif-tmpl quad 1))) + (set! (-> (the-as (pointer uint128) sv-96) 1) v1-102) + ) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ sv-96 32)) sv-100) + (let ((v1-104 (-> obj draw-tmpl dma-vif quad))) + (set! (-> (the-as (pointer uint128) sv-96) 7) v1-104) + ) + (let ((v1-105 (-> obj draw-tmpl quad 1))) + (set! (-> (the-as (pointer uint128) sv-96) 8) v1-105) + ) + (set-vector! (the-as vector4w (&+ sv-96 144)) 0 255 255 128) + (set-vector! (the-as vector4w (&+ sv-96 160)) 0 0 0 0) + (set-vector! + (the-as vector4w (&+ sv-96 176)) + (the int (* 16.0 (-> obj corner 0 x))) + (the int (* 16.0 (-> obj corner 0 z))) + #xffffff + 0 + ) + (set-vector! (the-as vector4w (&+ sv-96 192)) 256 0 0 0) + (set-vector! + (the-as vector4w (&+ sv-96 208)) + (the int (* 16.0 (-> obj corner 1 x))) + (the int (* 16.0 (-> obj corner 1 z))) + #xffffff + 0 + ) + (set-vector! (the-as vector4w (&+ sv-96 224)) 0 256 0 0) + (set-vector! + (the-as vector4w (&+ sv-96 240)) + (the int (* 16.0 (-> obj corner 2 x))) + (the int (* 16.0 (-> obj corner 2 z))) + #xffffff + 0 + ) + (set-vector! (the-as vector4w (&+ sv-96 256)) 256 256 0 0) + (set-vector! + (the-as vector4w (&+ sv-96 272)) + (the int (* 16.0 (-> obj corner 3 x))) + (the int (* 16.0 (-> obj corner 3 z))) + #xffffff + 0 + ) + (&+! (-> s4-2 base) 288) ) ) ) - (+! (-> obj goal-time) (* 16.0 (-> pp clock seconds-per-frame))) - (set-dirty-mask! (-> *level* default-level) 4 #x1a400 0) ) - 0 + (+! (-> obj goal-time) (* 16.0 (seconds-per-frame))) + (set-dirty-mask! (-> *level* default-level) 4 #x1a400 0) ) + 0 ) ;; definition for method 12 of type bigmap diff --git a/test/decompiler/reference/jak2/engine/ui/minimap_REF.gc b/test/decompiler/reference/jak2/engine/ui/minimap_REF.gc index e1a5e350ae..36dc4f6d15 100644 --- a/test/decompiler/reference/jak2/engine/ui/minimap_REF.gc +++ b/test/decompiler/reference/jak2/engine/ui/minimap_REF.gc @@ -1182,75 +1182,73 @@ ;; definition for method 14 of type engine-minimap ;; WARN: Return type mismatch int vs none. (defmethod run-pending-updates! engine-minimap ((obj engine-minimap) (arg0 time-frame)) - (with-pp - (let ((s2-0 (the-as (pointer connection-pers) (&-> obj alive-list))) - (s3-0 (-> obj alive-list)) - ) - (while s3-0 - (let ((s4-0 (-> s3-0 next))) - (when (not (paused?)) - (cond - ((logtest? (-> s3-0 flags) (minimap-flag fade-out)) - (logclear! (-> s3-0 flags) (minimap-flag fade-in)) - (seek! (-> s3-0 alpha) 0.0 (-> pp clock seconds-per-frame)) - ) - ((and (logtest? (-> s3-0 flags) (minimap-flag task-graph)) - (not (logtest? (-> *setting-control* user-current minimap) 32)) - ) - (logior! (-> s3-0 flags) (minimap-flag fade-in)) - (seek! (-> s3-0 alpha) 0.0 (-> pp clock seconds-per-frame)) - ) - ((logtest? (-> s3-0 flags) (minimap-flag fade-in)) - (let ((f30-0 1.0)) - (when (logtest? (-> s3-0 class flags) (minimap-flag trail)) - (let ((v1-26 (get-trail-for-connection *minimap* s3-0 #f))) - (if (or (not v1-26) (>= (- (current-time) (the-as int (-> v1-26 last-updated))) (seconds 5))) - (set! f30-0 0.0001) - ) - ) - ) - (seek! (-> s3-0 alpha) f30-0 (-> pp clock seconds-per-frame)) - ) - (if (= (-> s3-0 alpha) 1.0) - (logclear! (-> s3-0 flags) (minimap-flag fade-in)) - ) - ) - ) - ) + (let ((s2-0 (the-as (pointer connection-pers) (&-> obj alive-list))) + (s3-0 (-> obj alive-list)) + ) + (while s3-0 + (let ((s4-0 (-> s3-0 next))) + (when (not (paused?)) (cond - ((and (logtest? (-> s3-0 flags) (minimap-flag fade-out)) (= (-> s3-0 alpha) 0.0)) - (kill-callback obj s3-0) - (set! (-> s2-0 0) (-> s3-0 next)) - (set! (-> s3-0 next) (-> obj dead-list)) - (set! (-> obj dead-list) s3-0) - (+! (-> obj length) -1) + ((logtest? (-> s3-0 flags) (minimap-flag fade-out)) + (logclear! (-> s3-0 flags) (minimap-flag fade-in)) + (seek! (-> s3-0 alpha) 0.0 (seconds-per-frame)) ) - ((and (handle->process (-> s3-0 handle)) - (not (and (= (logand (the-as int (-> s3-0 position)) 7) 4) - (= (-> (the-as basic (-> s3-0 position)) type) entity-actor) - (logtest? (-> (the-as entity-actor (-> s3-0 position)) extra perm status) - (entity-perm-status dead subtask-complete bit-12) - ) - ) - ) + ((and (logtest? (-> s3-0 flags) (minimap-flag task-graph)) + (not (logtest? (-> *setting-control* user-current minimap) 32)) ) - (update-callback obj) - (set! s2-0 (&-> s3-0 next)) + (logior! (-> s3-0 flags) (minimap-flag fade-in)) + (seek! (-> s3-0 alpha) 0.0 (seconds-per-frame)) + ) + ((logtest? (-> s3-0 flags) (minimap-flag fade-in)) + (let ((f30-0 1.0)) + (when (logtest? (-> s3-0 class flags) (minimap-flag trail)) + (let ((v1-26 (get-trail-for-connection *minimap* s3-0 #f))) + (if (or (not v1-26) (>= (- (current-time) (the-as int (-> v1-26 last-updated))) (seconds 5))) + (set! f30-0 0.0001) + ) + ) + ) + (seek! (-> s3-0 alpha) f30-0 (seconds-per-frame)) + ) + (if (= (-> s3-0 alpha) 1.0) + (logclear! (-> s3-0 flags) (minimap-flag fade-in)) + ) ) - (else - (logior! (-> s3-0 flags) (minimap-flag fade-out)) - (update-callback obj) - (set! s2-0 (&-> s3-0 next)) - ) ) - (set! s3-0 (the-as connection-minimap s4-0)) ) + (cond + ((and (logtest? (-> s3-0 flags) (minimap-flag fade-out)) (= (-> s3-0 alpha) 0.0)) + (kill-callback obj s3-0) + (set! (-> s2-0 0) (-> s3-0 next)) + (set! (-> s3-0 next) (-> obj dead-list)) + (set! (-> obj dead-list) s3-0) + (+! (-> obj length) -1) + ) + ((and (handle->process (-> s3-0 handle)) + (not (and (= (logand (the-as int (-> s3-0 position)) 7) 4) + (= (-> (the-as basic (-> s3-0 position)) type) entity-actor) + (logtest? (-> (the-as entity-actor (-> s3-0 position)) extra perm status) + (entity-perm-status dead subtask-complete bit-12) + ) + ) + ) + ) + (update-callback obj) + (set! s2-0 (&-> s3-0 next)) + ) + (else + (logior! (-> s3-0 flags) (minimap-flag fade-out)) + (update-callback obj) + (set! s2-0 (&-> s3-0 next)) + ) + ) + (set! s3-0 (the-as connection-minimap s4-0)) ) ) - (set! (-> obj execute-time) arg0) - 0 - (none) ) + (set! (-> obj execute-time) arg0) + 0 + (none) ) ;; definition for method 12 of type minimap @@ -1336,83 +1334,81 @@ ;; definition for method 20 of type minimap ;; INFO: Used lq/sq (defmethod update! minimap ((obj minimap)) - (with-pp - (set! (-> obj ctywide) (level-get *level* 'ctywide)) - (set! (-> obj map-bits) (the-as uint 0)) - (dotimes (v1-2 (-> *level* length)) - (let ((a0-5 (-> *level* level v1-2))) - (if (= (-> a0-5 status) 'active) - (logior! (-> obj map-bits) (-> a0-5 info city-map-bits)) - ) - ) - ) - (let ((s5-0 (the int (* 0.0000006357829 (+ 3145728.0 (-> (target-pos 0) x))))) - (v1-9 (the int (* 0.0000006357829 (+ 3145728.0 (-> (target-pos 0) z))))) + (set! (-> obj ctywide) (level-get *level* 'ctywide)) + (set! (-> obj map-bits) (the-as uint 0)) + (dotimes (v1-2 (-> *level* length)) + (let ((a0-5 (-> *level* level v1-2))) + (if (= (-> a0-5 status) 'active) + (logior! (-> obj map-bits) (-> a0-5 info city-map-bits)) ) - (when (and (< s5-0 5) (< v1-9 7) (logtest? (-> obj map-bits) (ash 1 (+ (* 5 v1-9) s5-0)))) - (let ((a0-19 (-> *minimap-texture-name-array* data (+ (* 5 v1-9) s5-0)))) - (when a0-19 - (set! (-> obj last-name) a0-19) - (set! (-> obj minimap-corner quad) (-> *minimap-corner-array* data (+ (* 5 v1-9) s5-0) quad)) - (dotimes (a0-21 (-> *level* length)) - (let ((a1-23 (-> *level* level a0-21))) - (when (= (-> a1-23 status) 'active) - (if (logtest? (-> a1-23 info city-map-bits) (ash 1 (+ (* 5 v1-9) s5-0))) - (set! (-> obj level) a1-23) - ) - ) + ) + ) + (let ((s5-0 (the int (* 0.0000006357829 (+ 3145728.0 (-> (target-pos 0) x))))) + (v1-9 (the int (* 0.0000006357829 (+ 3145728.0 (-> (target-pos 0) z))))) + ) + (when (and (< s5-0 5) (< v1-9 7) (logtest? (-> obj map-bits) (ash 1 (+ (* 5 v1-9) s5-0)))) + (let ((a0-19 (-> *minimap-texture-name-array* data (+ (* 5 v1-9) s5-0)))) + (when a0-19 + (set! (-> obj last-name) a0-19) + (set! (-> obj minimap-corner quad) (-> *minimap-corner-array* data (+ (* 5 v1-9) s5-0) quad)) + (dotimes (a0-21 (-> *level* length)) + (let ((a1-23 (-> *level* level a0-21))) + (when (= (-> a1-23 status) 'active) + (if (logtest? (-> a1-23 info city-map-bits) (ash 1 (+ (* 5 v1-9) s5-0))) + (set! (-> obj level) a1-23) + ) ) ) ) ) ) ) - (set! (-> obj last-tex) - (lookup-minimap-texture-by-name (-> obj last-name) (the-as string #f) (the-as (pointer texture-page) #f)) - ) - (let ((f30-2 (-> pp clock seconds-per-frame))) - (let ((v1-12 (-> obj last-tex))) - (cond - ((or (not (-> obj level)) (zero? (-> obj level)) (!= (-> obj level status) 'active) (not v1-12)) - (set! (-> obj offset w) 0.0) - ) - ((not (logtest? (-> *setting-control* user-current minimap) 128)) - (seek! (-> obj offset w) 0.0 f30-2) - ) - ((and *target* (nonzero? (-> obj map-bits))) - (set! (-> obj offset w) (fmin 0.5 (+ (-> obj offset w) f30-2))) - ) - (else - (set! (-> obj offset w) 0.0) - ) - ) + ) + (set! (-> obj last-tex) + (lookup-minimap-texture-by-name (-> obj last-name) (the-as string #f) (the-as (pointer texture-page) #f)) ) + (let ((f30-2 (seconds-per-frame))) + (let ((v1-12 (-> obj last-tex))) (cond - ((and *target* (focus-test? *target* board pilot)) - (let ((f0-14 0.5) - (f1-2 0.000008138021) - (f2-0 122880.0) - (v1-33 (-> *target* control transv)) - ) - (set! (-> obj target-inv-scale) - (fmax f0-14 (* f1-2 (fmin f2-0 (sqrtf (+ (* (-> v1-33 x) (-> v1-33 x)) (* (-> v1-33 z) (-> v1-33 z))))))) - ) - ) + ((or (not (-> obj level)) (zero? (-> obj level)) (!= (-> obj level status) 'active) (not v1-12)) + (set! (-> obj offset w) 0.0) + ) + ((not (logtest? (-> *setting-control* user-current minimap) 128)) + (seek! (-> obj offset w) 0.0 f30-2) + ) + ((and *target* (nonzero? (-> obj map-bits))) + (set! (-> obj offset w) (fmin 0.5 (+ (-> obj offset w) f30-2))) ) (else - (set! (-> obj target-inv-scale) 0.5) + (set! (-> obj offset w) 0.0) ) ) - (seek! (-> obj offset y) (-> obj target-inv-scale) (* 0.5 f30-2)) ) - (run-pending-updates! (-> obj engine) (-> *display* base-clock frame-counter)) - (when (and (-> obj ctywide) (and (= (-> obj ctywide status) 'active) (!= (-> obj offset w) 0.0))) - (update-trails obj) - (if *display-trail-graph* - (debug-draw obj) - ) - #t + (cond + ((and *target* (focus-test? *target* board pilot)) + (let ((f0-14 0.5) + (f1-2 0.000008138021) + (f2-0 122880.0) + (v1-33 (-> *target* control transv)) + ) + (set! (-> obj target-inv-scale) + (fmax f0-14 (* f1-2 (fmin f2-0 (sqrtf (+ (* (-> v1-33 x) (-> v1-33 x)) (* (-> v1-33 z) (-> v1-33 z))))))) + ) + ) + ) + (else + (set! (-> obj target-inv-scale) 0.5) + ) ) + (seek! (-> obj offset y) (-> obj target-inv-scale) (* 0.5 f30-2)) + ) + (run-pending-updates! (-> obj engine) (-> *display* base-clock frame-counter)) + (when (and (-> obj ctywide) (and (= (-> obj ctywide status) 'active) (!= (-> obj offset w) 0.0))) + (update-trails obj) + (if *display-trail-graph* + (debug-draw obj) + ) + #t ) ) @@ -1960,167 +1956,165 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod sub-draw-1-1 minimap ((obj minimap) (arg0 minimap-draw-work)) - (with-pp - (let ((s5-0 (-> arg0 buf))) - (set-display-gs-state s5-0 (the-as int (-> *map-texture-base* vram-page)) 128 128 0 0) - (let ((s3-0 (-> s5-0 base))) - (set! (-> (the-as (pointer uint128) s3-0)) (-> obj adgif-tmpl dma-vif quad)) - (set! (-> (the-as (pointer uint128) s3-0) 1) (-> obj adgif-tmpl quad 1)) - (let ((a1-2 (-> obj last-tex))) - (if (not a1-2) - (set! a1-2 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x9b :page #xb))) - ) - (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s3-0 32)) (the-as texture a1-2)) - ) - ) - (&+! (-> s5-0 base) 112) - (dma-buffer-add-gs-set s5-0 - (clamp-1 (new 'static 'gs-clamp)) - (test-1 (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))) - (texa (new 'static 'gs-texa :ta1 #x80)) - ) - (let ((s3-1 (the-as object (-> s5-0 base)))) - (let ((f30-0 (-> *video-params* relative-x-scale))) - (set! (-> (the-as (pointer uint128) s3-1)) (-> obj draw2-tmpl dma-vif quad)) - (set! (-> (the-as (pointer uint128) s3-1) 1) (-> obj draw2-tmpl quad 1)) - (let ((s2-0 (new-stack-vector0))) - (let ((s1-0 (new-stack-vector0))) - (set! (-> s1-0 quad) (-> (matrix-local->world #f #f) vector 2 quad)) - (set! (-> s1-0 y) 0.0) - (vector-normalize! s1-0 1.0) - (let ((v1-16 (-> arg0 mat))) - (set! (-> v1-16 vector 0 x) (* (-> s1-0 z) f30-0)) - (set! (-> v1-16 vector 0 y) 0.0) - (set! (-> v1-16 vector 0 z) (- (-> s1-0 x))) - (set! (-> v1-16 vector 0 w) 0.0) - ) - (set-vector! (-> arg0 mat vector 1) 0.0 1.0 0.0 0.0) - (set-vector! (-> arg0 mat vector 2) (* (-> s1-0 x) f30-0) 0.0 (-> s1-0 z) 0.0) - ) - (vector-! s2-0 (target-pos 0) (-> obj minimap-corner)) - (set! (-> s2-0 x) (* 0.00000023841858 (-> s2-0 x))) - (set! (-> s2-0 z) (* 0.00000023841858 (-> s2-0 z))) - (vector+! (-> arg0 mat trans) s2-0 (-> obj offset)) + (let ((s5-0 (-> arg0 buf))) + (set-display-gs-state s5-0 (the-as int (-> *map-texture-base* vram-page)) 128 128 0 0) + (let ((s3-0 (-> s5-0 base))) + (set! (-> (the-as (pointer uint128) s3-0)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-0) 1) (-> obj adgif-tmpl quad 1)) + (let ((a1-2 (-> obj last-tex))) + (if (not a1-2) + (set! a1-2 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x9b :page #xb))) ) - ) - (set! (-> arg0 mat trans y) 0.0) - (set! (-> arg0 corner 0 x) (* 0.25 (-> obj offset y))) - (set! (-> arg0 corner 0 z) (* 0.25 (-> obj offset y))) - (set! (-> arg0 corner 0 w) 1.0) - (set! (-> arg0 corner 1 x) (* -0.25 (-> obj offset y))) - (set! (-> arg0 corner 1 z) (* 0.25 (-> obj offset y))) - (set! (-> arg0 corner 1 w) 1.0) - (set! (-> arg0 corner 2 x) (* 0.25 (-> obj offset y))) - (set! (-> arg0 corner 2 z) (* -0.25 (-> obj offset y))) - (set! (-> arg0 corner 2 w) 1.0) - (set! (-> arg0 corner 3 x) (* -0.25 (-> obj offset y))) - (set! (-> arg0 corner 3 z) (* -0.25 (-> obj offset y))) - (set! (-> arg0 corner 3 w) 1.0) - (vector-matrix*! (the-as vector (-> arg0 corner)) (the-as vector (-> arg0 corner)) (-> arg0 mat)) - (vector-matrix*! (-> arg0 corner 1) (-> arg0 corner 1) (-> arg0 mat)) - (vector-matrix*! (-> arg0 corner 2) (-> arg0 corner 2) (-> arg0 mat)) - (vector-matrix*! (-> arg0 corner 3) (-> arg0 corner 3) (-> arg0 mat)) - (set-vector! (-> (the-as (inline-array vector4w) s3-1) 2) 128 128 128 128) - (set-vector! (-> (the-as (inline-array vector) s3-1) 3) (-> arg0 corner 0 x) (-> arg0 corner 0 z) 1.0 1.0) - (set-vector! (-> (the-as (inline-array vector4w) s3-1) 4) 0 0 #xffffff 0) - (set-vector! (-> (the-as (inline-array vector) s3-1) 5) (-> arg0 corner 1 x) (-> arg0 corner 1 z) 1.0 1.0) - (set-vector! (-> (the-as (inline-array vector4w) s3-1) 6) 2048 0 #xffffff 0) - (set-vector! (-> (the-as (inline-array vector) s3-1) 7) (-> arg0 corner 2 x) (-> arg0 corner 2 z) 1.0 1.0) - (set-vector! (-> (the-as (inline-array vector4w) s3-1) 8) 0 2048 #xffffff 0) - (set-vector! (-> (the-as (inline-array vector) s3-1) 9) (-> arg0 corner 3 x) (-> arg0 corner 3 z) 1.0 1.0) - (set-vector! (-> (the-as (inline-array vector4w) s3-1) 10) 2048 2048 #xffffff 0) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s3-0 32)) (the-as texture a1-2)) ) - (&+! (-> s5-0 base) 176) - (let ((f0-57 1.0)) - (when *target* - (if (focus-test? *target* pilot) - (set! f0-57 0.0) - ) - ) - (seek! (-> obj frustum-alpha) f0-57 (-> pp clock seconds-per-frame)) - ) - (dma-buffer-add-gs-set s5-0 (xyoffset-1 (new 'static 'gs-xy-offset :ofx #x640 :ofy #x640))) - (when (!= (-> obj frustum-alpha) 0.0) - (let ((s3-2 (the-as connection-pers (-> *minimap* engine alive-list)))) - (while s3-2 - (let ((a2-6 s3-2)) - (if (logtest? (-> (the-as connection-minimap a2-6) class flags) (minimap-flag frustum)) - (draw-frustum-1 obj arg0 (the-as connection-minimap a2-6)) - ) - ) - (set! s3-2 (-> s3-2 next)) - ) - ) - ) - (let ((s2-1 (-> arg0 buf base)) - (s3-3 (lookup-texture-by-id-fast (new 'static 'texture-id :page #x679))) - ) - (when s3-3 - (set! (-> (the-as (pointer uint128) s2-1)) (-> obj adgif-tmpl dma-vif quad)) - (set! (-> (the-as (pointer uint128) s2-1) 1) (-> obj adgif-tmpl quad 1)) - (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s2-1 32)) s3-3) - (&+! (-> arg0 buf base) 112) - ) - (if (not s3-3) - (format *stdcon* "minimap: mini-map-icons texture is #f~%") - ) - ) - (let ((s3-4 (the-as connection-pers (-> *minimap* engine alive-list)))) - (while s3-4 - (let ((a2-7 s3-4)) - (if (logtest? (-> (the-as connection-minimap a2-7) class flags) (minimap-flag frustum)) - (draw-frustum-2 obj arg0 (the-as connection-minimap a2-7)) - ) - ) - (set! s3-4 (-> s3-4 next)) - ) - ) - (let ((s3-5 (-> arg0 buf base)) - (a1-32 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x42 :page #xb))) - ) - (when a1-32 - (set! (-> (the-as (pointer uint128) s3-5)) (-> obj adgif-tmpl dma-vif quad)) - (set! (-> (the-as (pointer uint128) s3-5) 1) (-> obj adgif-tmpl quad 1)) - (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s3-5 32)) a1-32) - (&+! (-> arg0 buf base) 112) - ) - ) - (let ((s3-6 (the-as connection-pers (-> *minimap* engine alive-list)))) - (while s3-6 - (let ((a2-8 s3-6)) - (if (logtest? (-> (the-as connection-minimap a2-8) class flags) (minimap-flag racer)) - (draw-racer-2 obj arg0 (the-as connection-minimap a2-8)) - ) - ) - (set! s3-6 (-> s3-6 next)) - ) - ) - (dma-buffer-add-gs-set s5-0 - (frame-1 (new 'static 'gs-frame :fbw #x2 :fbmsk #xffffff :fbp (-> *map-texture-base* vram-page))) - (alpha-1 (new 'static 'gs-alpha :b #x1 :d #x1)) - (xyoffset-1 (new 'static 'gs-xy-offset)) - ) - (let ((s3-7 (the-as object (-> s5-0 base)))) - (set! (-> (the-as (pointer uint128) s3-7)) (-> obj adgif-tmpl dma-vif quad)) - (set! (-> (the-as (pointer uint128) s3-7) 1) (-> obj adgif-tmpl quad 1)) - (adgif-shader<-texture-simple! - (the-as adgif-shader (&-> (the-as (pointer uint128) s3-7) 2)) - (lookup-texture-by-id-fast (new 'static 'texture-id :index #x2a :page #x67a)) - ) - (set! (-> (the-as (pointer uint128) s3-7) 7) (-> obj sprite-tmpl dma-vif quad)) - (set! (-> (the-as (pointer uint128) s3-7) 8) (-> obj sprite-tmpl quad 1)) - (set-vector! (-> (the-as (inline-array vector4w) s3-7) 9) 128 128 128 128) - (set-vector! (-> (the-as (inline-array vector4w) s3-7) 10) 0 0 0 0) - (set-vector! (-> (the-as (inline-array vector4w) s3-7) 11) 0 0 #xffffff 0) - (set-vector! (-> (the-as (inline-array vector4w) s3-7) 12) 1024 1024 0 0) - (set-vector! (-> (the-as (inline-array vector4w) s3-7) 13) 2048 2048 #xffffff 0) - ) - (&+! (-> s5-0 base) 224) - (set! (-> arg0 buf) s5-0) ) - 0 - (none) + (&+! (-> s5-0 base) 112) + (dma-buffer-add-gs-set s5-0 + (clamp-1 (new 'static 'gs-clamp)) + (test-1 (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))) + (texa (new 'static 'gs-texa :ta1 #x80)) + ) + (let ((s3-1 (the-as object (-> s5-0 base)))) + (let ((f30-0 (-> *video-params* relative-x-scale))) + (set! (-> (the-as (pointer uint128) s3-1)) (-> obj draw2-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-1) 1) (-> obj draw2-tmpl quad 1)) + (let ((s2-0 (new-stack-vector0))) + (let ((s1-0 (new-stack-vector0))) + (set! (-> s1-0 quad) (-> (matrix-local->world #f #f) vector 2 quad)) + (set! (-> s1-0 y) 0.0) + (vector-normalize! s1-0 1.0) + (let ((v1-16 (-> arg0 mat))) + (set! (-> v1-16 vector 0 x) (* (-> s1-0 z) f30-0)) + (set! (-> v1-16 vector 0 y) 0.0) + (set! (-> v1-16 vector 0 z) (- (-> s1-0 x))) + (set! (-> v1-16 vector 0 w) 0.0) + ) + (set-vector! (-> arg0 mat vector 1) 0.0 1.0 0.0 0.0) + (set-vector! (-> arg0 mat vector 2) (* (-> s1-0 x) f30-0) 0.0 (-> s1-0 z) 0.0) + ) + (vector-! s2-0 (target-pos 0) (-> obj minimap-corner)) + (set! (-> s2-0 x) (* 0.00000023841858 (-> s2-0 x))) + (set! (-> s2-0 z) (* 0.00000023841858 (-> s2-0 z))) + (vector+! (-> arg0 mat trans) s2-0 (-> obj offset)) + ) + ) + (set! (-> arg0 mat trans y) 0.0) + (set! (-> arg0 corner 0 x) (* 0.25 (-> obj offset y))) + (set! (-> arg0 corner 0 z) (* 0.25 (-> obj offset y))) + (set! (-> arg0 corner 0 w) 1.0) + (set! (-> arg0 corner 1 x) (* -0.25 (-> obj offset y))) + (set! (-> arg0 corner 1 z) (* 0.25 (-> obj offset y))) + (set! (-> arg0 corner 1 w) 1.0) + (set! (-> arg0 corner 2 x) (* 0.25 (-> obj offset y))) + (set! (-> arg0 corner 2 z) (* -0.25 (-> obj offset y))) + (set! (-> arg0 corner 2 w) 1.0) + (set! (-> arg0 corner 3 x) (* -0.25 (-> obj offset y))) + (set! (-> arg0 corner 3 z) (* -0.25 (-> obj offset y))) + (set! (-> arg0 corner 3 w) 1.0) + (vector-matrix*! (the-as vector (-> arg0 corner)) (the-as vector (-> arg0 corner)) (-> arg0 mat)) + (vector-matrix*! (-> arg0 corner 1) (-> arg0 corner 1) (-> arg0 mat)) + (vector-matrix*! (-> arg0 corner 2) (-> arg0 corner 2) (-> arg0 mat)) + (vector-matrix*! (-> arg0 corner 3) (-> arg0 corner 3) (-> arg0 mat)) + (set-vector! (-> (the-as (inline-array vector4w) s3-1) 2) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector) s3-1) 3) (-> arg0 corner 0 x) (-> arg0 corner 0 z) 1.0 1.0) + (set-vector! (-> (the-as (inline-array vector4w) s3-1) 4) 0 0 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector) s3-1) 5) (-> arg0 corner 1 x) (-> arg0 corner 1 z) 1.0 1.0) + (set-vector! (-> (the-as (inline-array vector4w) s3-1) 6) 2048 0 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector) s3-1) 7) (-> arg0 corner 2 x) (-> arg0 corner 2 z) 1.0 1.0) + (set-vector! (-> (the-as (inline-array vector4w) s3-1) 8) 0 2048 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector) s3-1) 9) (-> arg0 corner 3 x) (-> arg0 corner 3 z) 1.0 1.0) + (set-vector! (-> (the-as (inline-array vector4w) s3-1) 10) 2048 2048 #xffffff 0) + ) + (&+! (-> s5-0 base) 176) + (let ((f0-57 1.0)) + (when *target* + (if (focus-test? *target* pilot) + (set! f0-57 0.0) + ) + ) + (seek! (-> obj frustum-alpha) f0-57 (seconds-per-frame)) + ) + (dma-buffer-add-gs-set s5-0 (xyoffset-1 (new 'static 'gs-xy-offset :ofx #x640 :ofy #x640))) + (when (!= (-> obj frustum-alpha) 0.0) + (let ((s3-2 (the-as connection-pers (-> *minimap* engine alive-list)))) + (while s3-2 + (let ((a2-6 s3-2)) + (if (logtest? (-> (the-as connection-minimap a2-6) class flags) (minimap-flag frustum)) + (draw-frustum-1 obj arg0 (the-as connection-minimap a2-6)) + ) + ) + (set! s3-2 (-> s3-2 next)) + ) + ) + ) + (let ((s2-1 (-> arg0 buf base)) + (s3-3 (lookup-texture-by-id-fast (new 'static 'texture-id :page #x679))) + ) + (when s3-3 + (set! (-> (the-as (pointer uint128) s2-1)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s2-1) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s2-1 32)) s3-3) + (&+! (-> arg0 buf base) 112) + ) + (if (not s3-3) + (format *stdcon* "minimap: mini-map-icons texture is #f~%") + ) + ) + (let ((s3-4 (the-as connection-pers (-> *minimap* engine alive-list)))) + (while s3-4 + (let ((a2-7 s3-4)) + (if (logtest? (-> (the-as connection-minimap a2-7) class flags) (minimap-flag frustum)) + (draw-frustum-2 obj arg0 (the-as connection-minimap a2-7)) + ) + ) + (set! s3-4 (-> s3-4 next)) + ) + ) + (let ((s3-5 (-> arg0 buf base)) + (a1-32 (lookup-texture-by-id-fast (new 'static 'texture-id :index #x42 :page #xb))) + ) + (when a1-32 + (set! (-> (the-as (pointer uint128) s3-5)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-5) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s3-5 32)) a1-32) + (&+! (-> arg0 buf base) 112) + ) + ) + (let ((s3-6 (the-as connection-pers (-> *minimap* engine alive-list)))) + (while s3-6 + (let ((a2-8 s3-6)) + (if (logtest? (-> (the-as connection-minimap a2-8) class flags) (minimap-flag racer)) + (draw-racer-2 obj arg0 (the-as connection-minimap a2-8)) + ) + ) + (set! s3-6 (-> s3-6 next)) + ) + ) + (dma-buffer-add-gs-set s5-0 + (frame-1 (new 'static 'gs-frame :fbw #x2 :fbmsk #xffffff :fbp (-> *map-texture-base* vram-page))) + (alpha-1 (new 'static 'gs-alpha :b #x1 :d #x1)) + (xyoffset-1 (new 'static 'gs-xy-offset)) + ) + (let ((s3-7 (the-as object (-> s5-0 base)))) + (set! (-> (the-as (pointer uint128) s3-7)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-7) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! + (the-as adgif-shader (&-> (the-as (pointer uint128) s3-7) 2)) + (lookup-texture-by-id-fast (new 'static 'texture-id :index #x2a :page #x67a)) + ) + (set! (-> (the-as (pointer uint128) s3-7) 7) (-> obj sprite-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s3-7) 8) (-> obj sprite-tmpl quad 1)) + (set-vector! (-> (the-as (inline-array vector4w) s3-7) 9) 128 128 128 128) + (set-vector! (-> (the-as (inline-array vector4w) s3-7) 10) 0 0 0 0) + (set-vector! (-> (the-as (inline-array vector4w) s3-7) 11) 0 0 #xffffff 0) + (set-vector! (-> (the-as (inline-array vector4w) s3-7) 12) 1024 1024 0 0) + (set-vector! (-> (the-as (inline-array vector4w) s3-7) 13) 2048 2048 #xffffff 0) + ) + (&+! (-> s5-0 base) 224) + (set! (-> arg0 buf) s5-0) ) + 0 + (none) ) ;; definition for method 19 of type minimap @@ -2317,257 +2311,255 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch pointer vs none. (defmethod draw-connection minimap ((obj minimap) (arg0 minimap-draw-work) (arg1 connection-minimap)) - (with-pp - (let ((s1-0 (target-pos 0))) - (cond - ((= (-> arg1 position) #t) - (let* ((s3-0 (handle->process (-> arg1 handle))) - (v1-4 (if (type? s3-0 process-drawable) - s3-0 - ) - ) - ) - (when (and v1-4 (nonzero? (-> (the-as process-drawable v1-4) root))) - (set! (-> arg1 last-world-pos quad) (-> (the-as process-drawable v1-4) root trans quad)) + (let ((s1-0 (target-pos 0))) + (cond + ((= (-> arg1 position) #t) + (let* ((s3-0 (handle->process (-> arg1 handle))) + (v1-4 (if (type? s3-0 process-drawable) + s3-0 + ) + ) + ) + (when (and v1-4 (nonzero? (-> (the-as process-drawable v1-4) root))) + (set! (-> arg1 last-world-pos quad) (-> (the-as process-drawable v1-4) root trans quad)) + (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) + ) + ) + ) + ((and (= (logand (the-as int (-> arg1 position)) 7) 4) + (= (-> (the-as basic (-> arg1 position)) type) entity-actor) + ) + (let* ((v1-15 (-> arg1 position)) + (s3-1 (if v1-15 + (-> (the-as entity-actor v1-15) extra process) + ) + ) + (a0-16 (if (type? s3-1 process-drawable) + s3-1 + ) + ) + ) + (cond + (a0-16 + (set! (-> arg1 last-world-pos quad) (-> (the-as process-drawable a0-16) root trans quad)) + (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) + ) + (else + (set! (-> arg1 last-world-pos quad) (-> (the-as entity-actor (-> arg1 position)) extra trans quad)) (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) ) ) ) - ((and (= (logand (the-as int (-> arg1 position)) 7) 4) - (= (-> (the-as basic (-> arg1 position)) type) entity-actor) - ) - (let* ((v1-15 (-> arg1 position)) - (s3-1 (if v1-15 - (-> (the-as entity-actor v1-15) extra process) - ) - ) - (a0-16 (if (type? s3-1 process-drawable) - s3-1 - ) - ) - ) - (cond - (a0-16 - (set! (-> arg1 last-world-pos quad) (-> (the-as process-drawable a0-16) root trans quad)) - (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) - ) - (else - (set! (-> arg1 last-world-pos quad) (-> (the-as entity-actor (-> arg1 position)) extra trans quad)) - (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) - ) - ) - ) - ) - (else - (set! (-> arg1 last-world-pos quad) (-> (the-as vector (-> arg1 position)) quad)) - (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) - ) + ) + (else + (set! (-> arg1 last-world-pos quad) (-> (the-as vector (-> arg1 position)) quad)) + (vector-! (-> arg1 last-relative-pos) s1-0 (-> arg1 last-world-pos)) ) - (let ((s3-2 (new 'stack-no-clear 'vector)) - (s2-0 #f) - ) - (let ((f30-0 (/ 1.0 (* 16384.0 (-> obj offset y))))) - 0.0 - (set! (-> s3-2 quad) (-> arg1 last-relative-pos quad)) - (set! (-> s3-2 x) (* (-> s3-2 x) f30-0)) - (set! (-> s3-2 z) (* (-> s3-2 z) f30-0)) - (set! (-> s3-2 y) 0.0) - (set! (-> s3-2 w) 1.0) - (let* ((v1-29 s3-2) - (f28-0 (sqrtf (+ (* (-> v1-29 x) (-> v1-29 x)) (* (-> v1-29 z) (-> v1-29 z))))) - ) - (cond - ((logtest? (-> arg1 class flags) (minimap-flag trail)) - (cond - (*trail-graph* - (let ((a2-2 (get-trail-for-connection obj arg1 #f))) - (cond - ((not a2-2) - (when (!= (-> arg1 alpha) 0.0) - (when (not (get-trail-for-connection obj arg1 #t)) - (let ((s2-1 (the-as connection-pers (-> *minimap* engine alive-list)))) - (while s2-1 - (let ((a1-12 s2-1)) - (if (and (= (the-as float (-> a1-12 param 1)) 0.0) (logtest? (-> arg1 class flags) (minimap-flag trail))) - (free-trail-by-connection *minimap* (the-as connection-minimap a1-12)) - ) - ) - (set! s2-1 (-> s2-1 next)) + ) + (let ((s3-2 (new 'stack-no-clear 'vector)) + (s2-0 #f) + ) + (let ((f30-0 (/ 1.0 (* 16384.0 (-> obj offset y))))) + 0.0 + (set! (-> s3-2 quad) (-> arg1 last-relative-pos quad)) + (set! (-> s3-2 x) (* (-> s3-2 x) f30-0)) + (set! (-> s3-2 z) (* (-> s3-2 z) f30-0)) + (set! (-> s3-2 y) 0.0) + (set! (-> s3-2 w) 1.0) + (let* ((v1-29 s3-2) + (f28-0 (sqrtf (+ (* (-> v1-29 x) (-> v1-29 x)) (* (-> v1-29 z) (-> v1-29 z))))) + ) + (cond + ((logtest? (-> arg1 class flags) (minimap-flag trail)) + (cond + (*trail-graph* + (let ((a2-2 (get-trail-for-connection obj arg1 #f))) + (cond + ((not a2-2) + (when (!= (-> arg1 alpha) 0.0) + (when (not (get-trail-for-connection obj arg1 #t)) + (let ((s2-1 (the-as connection-pers (-> *minimap* engine alive-list)))) + (while s2-1 + (let ((a1-12 s2-1)) + (if (and (= (the-as float (-> a1-12 param 1)) 0.0) (logtest? (-> arg1 class flags) (minimap-flag trail))) + (free-trail-by-connection *minimap* (the-as connection-minimap a1-12)) + ) ) + (set! s2-1 (-> s2-1 next)) ) ) ) - (set! s2-0 #t) - (set! (-> arg1 edge-ry) -131072.0) ) - ((>= (- (current-time) (the-as int (-> a2-2 last-updated))) (seconds 5)) - (set! s2-0 #t) - (set! (-> arg1 edge-ry) -131072.0) - ) - ((< 50.0 f28-0) - (let ((s0-0 (new 'stack-no-clear 'vector))) - (set! (-> s0-0 quad) (-> s3-2 quad)) - (let ((s1-1 (get-icon-draw-pos *minimap* arg1 a2-2 s1-0 f30-0 s3-2))) - (if (not s1-1) - (vector-normalize-copy! s3-2 s0-0 66.0) - ) - (let ((f30-1 (atan (-> s3-2 x) (-> s3-2 z)))) - (let ((f28-1 (-> arg1 edge-ry))) - (when (!= f28-1 -131072.0) - (let* ((f0-20 (deg- f30-1 f28-1)) - (f1-7 (fabs f0-20)) - (f2-3 (* 16384.0 (-> pp clock seconds-per-frame))) - ) - (when (< f2-3 f1-7) - (set! f30-1 (+ f28-1 (if (>= f0-20 0.0) - f2-3 - (- f2-3) - ) - ) - ) - (set-vector! s3-2 (sin f30-1) 0.0 (cos f30-1) 1.0) - (vector-normalize! s3-2 (if s1-1 - 50.0 - 66.0 - ) - ) - ) + (set! s2-0 #t) + (set! (-> arg1 edge-ry) -131072.0) + ) + ((>= (- (current-time) (the-as int (-> a2-2 last-updated))) (seconds 5)) + (set! s2-0 #t) + (set! (-> arg1 edge-ry) -131072.0) + ) + ((< 50.0 f28-0) + (let ((s0-0 (new 'stack-no-clear 'vector))) + (set! (-> s0-0 quad) (-> s3-2 quad)) + (let ((s1-1 (get-icon-draw-pos *minimap* arg1 a2-2 s1-0 f30-0 s3-2))) + (if (not s1-1) + (vector-normalize-copy! s3-2 s0-0 66.0) + ) + (let ((f30-1 (atan (-> s3-2 x) (-> s3-2 z)))) + (let ((f28-1 (-> arg1 edge-ry))) + (when (!= f28-1 -131072.0) + (let* ((f0-20 (deg- f30-1 f28-1)) + (f1-7 (fabs f0-20)) + (f2-3 (* 16384.0 (seconds-per-frame))) + ) + (when (< f2-3 f1-7) + (set! f30-1 (+ f28-1 (if (>= f0-20 0.0) + f2-3 + (- f2-3) + ) + ) + ) + (set-vector! s3-2 (sin f30-1) 0.0 (cos f30-1) 1.0) + (vector-normalize! s3-2 (if s1-1 + 50.0 + 66.0 + ) + ) ) ) ) - (set! (-> arg1 edge-ry) f30-1) ) - ) - ) - ) - (else - (set! (-> arg1 edge-ry) (atan (-> s3-2 x) (-> s3-2 z))) - ) - ) - ) - ) - (else - (set! s2-0 #t) - (set! (-> arg1 edge-ry) -131072.0) - ) - ) - ) - ((logtest? (-> arg1 class flags) (minimap-flag clamp)) - (cond - ((< 50.0 f28-0) - (let ((a1-19 (new 'stack-no-clear 'vector))) - (set! (-> a1-19 quad) (-> s3-2 quad)) - (vector-normalize-copy! s3-2 a1-19 54.0) - ) - (let ((f30-2 (atan (-> s3-2 x) (-> s3-2 z)))) - (let ((f28-2 (-> arg1 edge-ry))) - (when (!= f28-2 -131072.0) - (let* ((f0-35 (deg- f30-2 f28-2)) - (f1-9 (fabs f0-35)) - (f2-5 (* 16384.0 (-> pp clock seconds-per-frame))) - ) - (when (< f2-5 f1-9) - (set! f30-2 (+ f28-2 (if (>= f0-35 0.0) - f2-5 - (- f2-5) - ) - ) - ) - (set-vector! s3-2 (sin f30-2) 0.0 (cos f30-2) 1.0) - (vector-normalize! s3-2 54.0) + (set! (-> arg1 edge-ry) f30-1) ) ) ) ) - (set! (-> arg1 edge-ry) f30-2) - ) - ) - (else - (set! (-> arg1 edge-ry) (atan (-> s3-2 x) (-> s3-2 z))) - ) - ) - ) - (else - (if (< 50.0 f28-0) - (set! s2-0 #t) - ) - ) - ) - ) - ) - (if (or (logtest? (-> arg1 class flags) (minimap-flag frustum)) - (logtest? (-> arg1 class flags) (minimap-flag racer)) - (and (logtest? (-> arg1 class flags) (minimap-flag flash)) - (< (the-as int (logand (-> *display* base-clock integral-frame-counter) 15)) 8) - ) - ) - (set! s2-0 #t) - ) - (if (logtest? (-> arg1 class flags) (minimap-flag goal)) - (set! (-> arg1 class icon-xy x) (the-as uint (mod (the int (-> obj goal-time)) 6))) - ) - (when (not s2-0) - (vector-matrix*! s3-2 s3-2 (-> arg0 mat)) - (let ((v1-115 (the-as object (-> arg0 buf base)))) - (let* ((f0-48 (-> arg1 class scale)) - (a1-25 (-> arg1 class color)) - (a1-32 (copy-and-set-field a1-25 r (shr (* (-> a1-25 r) (the-as uint (-> obj color x))) 7))) - (a1-39 (copy-and-set-field a1-32 g (shr (* (-> a1-32 g) (the-as uint (-> obj color y))) 7))) - (a0-70 - (copy-and-set-field - (copy-and-set-field a1-39 b (shr (* (-> a1-39 b) (the-as uint (-> obj color z))) 7)) - a - (the int (* 128.0 (-> arg1 alpha))) + (else + (set! (-> arg1 edge-ry) (atan (-> s3-2 x) (-> s3-2 z))) ) ) ) - (let ((f1-16 (* 20.0 (-> *video-params* relative-x-scale) f0-48)) - (f0-49 (* 20.0 f0-48)) + ) + (else + (set! s2-0 #t) + (set! (-> arg1 edge-ry) -131072.0) + ) + ) + ) + ((logtest? (-> arg1 class flags) (minimap-flag clamp)) + (cond + ((< 50.0 f28-0) + (let ((a1-19 (new 'stack-no-clear 'vector))) + (set! (-> a1-19 quad) (-> s3-2 quad)) + (vector-normalize-copy! s3-2 a1-19 54.0) + ) + (let ((f30-2 (atan (-> s3-2 x) (-> s3-2 z)))) + (let ((f28-2 (-> arg1 edge-ry))) + (when (!= f28-2 -131072.0) + (let* ((f0-35 (deg- f30-2 f28-2)) + (f1-9 (fabs f0-35)) + (f2-5 (* 16384.0 (seconds-per-frame))) + ) + (when (< f2-5 f1-9) + (set! f30-2 (+ f28-2 (if (>= f0-35 0.0) + f2-5 + (- f2-5) + ) + ) + ) + (set-vector! s3-2 (sin f30-2) 0.0 (cos f30-2) 1.0) + (vector-normalize! s3-2 54.0) + ) + ) + ) ) - (set! (-> arg0 corner 0 x) (the float (the int (- (-> s3-2 x) (* 0.5 f1-16))))) - (set! (-> arg0 corner 0 z) (the float (the int (- (-> s3-2 z) (* 0.5 f0-49))))) - (set! (-> arg0 corner 1 x) (+ (-> arg0 corner 0 x) f1-16)) - (set! (-> arg0 corner 1 z) (+ (-> arg0 corner 0 z) f0-49)) - ) - (let* ((a3-1 (+ (* (the-as uint 320) (-> arg1 class icon-xy x)) 8)) - (t0-1 (+ (* (the-as uint 320) (-> arg1 class icon-xy y)) 8)) - (a1-61 (+ a3-1 312)) - (a2-14 (+ t0-1 312)) - ) - (set! (-> (the-as (pointer uint128) v1-115)) (-> obj sprite-tmpl dma-vif quad)) - (set! (-> (the-as (pointer uint128) v1-115) 1) (-> obj sprite-tmpl quad 1)) - (set-vector! - (-> (the-as (inline-array vector4w) v1-115) 2) - (the-as int (-> a0-70 r)) - (the-as int (-> a0-70 g)) - (the-as int (-> a0-70 b)) - (the-as int (-> a0-70 a)) + (set! (-> arg1 edge-ry) f30-2) ) - (set-vector! (-> (the-as (inline-array vector4w) v1-115) 3) a3-1 t0-1 0 0) - (set-vector! - (-> (the-as (inline-array vector4w) v1-115) 4) - (the int (* 16.0 (-> arg0 corner 0 x))) - (the int (* 16.0 (-> arg0 corner 0 z))) - #xffffff - 0 - ) - (set-vector! (-> (the-as (inline-array vector4w) v1-115) 5) a1-61 a2-14 0 0) ) - ) - (set-vector! - (-> (the-as (inline-array vector4w) v1-115) 6) - (the int (* 16.0 (-> arg0 corner 1 x))) - (the int (* 16.0 (-> arg0 corner 1 z))) - #xffffff - 0 + (else + (set! (-> arg1 edge-ry) (atan (-> s3-2 x) (-> s3-2 z))) + ) + ) + ) + (else + (if (< 50.0 f28-0) + (set! s2-0 #t) + ) ) ) - (&+! (-> arg0 buf base) 112) ) ) + (if (or (logtest? (-> arg1 class flags) (minimap-flag frustum)) + (logtest? (-> arg1 class flags) (minimap-flag racer)) + (and (logtest? (-> arg1 class flags) (minimap-flag flash)) + (< (the-as int (logand (-> *display* base-clock integral-frame-counter) 15)) 8) + ) + ) + (set! s2-0 #t) + ) + (if (logtest? (-> arg1 class flags) (minimap-flag goal)) + (set! (-> arg1 class icon-xy x) (the-as uint (mod (the int (-> obj goal-time)) 6))) + ) + (when (not s2-0) + (vector-matrix*! s3-2 s3-2 (-> arg0 mat)) + (let ((v1-115 (the-as object (-> arg0 buf base)))) + (let* ((f0-48 (-> arg1 class scale)) + (a1-25 (-> arg1 class color)) + (a1-32 (copy-and-set-field a1-25 r (shr (* (-> a1-25 r) (the-as uint (-> obj color x))) 7))) + (a1-39 (copy-and-set-field a1-32 g (shr (* (-> a1-32 g) (the-as uint (-> obj color y))) 7))) + (a0-70 + (copy-and-set-field + (copy-and-set-field a1-39 b (shr (* (-> a1-39 b) (the-as uint (-> obj color z))) 7)) + a + (the int (* 128.0 (-> arg1 alpha))) + ) + ) + ) + (let ((f1-16 (* 20.0 (-> *video-params* relative-x-scale) f0-48)) + (f0-49 (* 20.0 f0-48)) + ) + (set! (-> arg0 corner 0 x) (the float (the int (- (-> s3-2 x) (* 0.5 f1-16))))) + (set! (-> arg0 corner 0 z) (the float (the int (- (-> s3-2 z) (* 0.5 f0-49))))) + (set! (-> arg0 corner 1 x) (+ (-> arg0 corner 0 x) f1-16)) + (set! (-> arg0 corner 1 z) (+ (-> arg0 corner 0 z) f0-49)) + ) + (let* ((a3-1 (+ (* (the-as uint 320) (-> arg1 class icon-xy x)) 8)) + (t0-1 (+ (* (the-as uint 320) (-> arg1 class icon-xy y)) 8)) + (a1-61 (+ a3-1 312)) + (a2-14 (+ t0-1 312)) + ) + (set! (-> (the-as (pointer uint128) v1-115)) (-> obj sprite-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) v1-115) 1) (-> obj sprite-tmpl quad 1)) + (set-vector! + (-> (the-as (inline-array vector4w) v1-115) 2) + (the-as int (-> a0-70 r)) + (the-as int (-> a0-70 g)) + (the-as int (-> a0-70 b)) + (the-as int (-> a0-70 a)) + ) + (set-vector! (-> (the-as (inline-array vector4w) v1-115) 3) a3-1 t0-1 0 0) + (set-vector! + (-> (the-as (inline-array vector4w) v1-115) 4) + (the int (* 16.0 (-> arg0 corner 0 x))) + (the int (* 16.0 (-> arg0 corner 0 z))) + #xffffff + 0 + ) + (set-vector! (-> (the-as (inline-array vector4w) v1-115) 5) a1-61 a2-14 0 0) + ) + ) + (set-vector! + (-> (the-as (inline-array vector4w) v1-115) 6) + (the int (* 16.0 (-> arg0 corner 1 x))) + (the int (* 16.0 (-> arg0 corner 1 z))) + #xffffff + 0 + ) + ) + (&+! (-> arg0 buf base) 112) + ) ) - (none) ) + (none) ) ;; definition for method 15 of type minimap @@ -2575,53 +2567,51 @@ ;; WARN: Return type mismatch int vs none. (defmethod draw-1 minimap ((obj minimap) (arg0 dma-buffer) (arg1 vector4w) (arg2 symbol)) (local-vars (v1-19 uint128)) - (with-pp - (when (= (level-status *level* 'ctywide) 'active) - (let ((s5-1 (new 'stack-no-clear 'minimap-draw-work))) - (set! (-> s5-1 buf) arg0) - (set! (-> s5-1 draw-pos quad) (-> arg1 quad)) - (set! (-> s5-1 justify-right) arg2) - (sub-draw-1-1 obj s5-1) - (sub-draw-1-2 obj s5-1) - (set! (-> obj ctywide) (level-get *level* 'ctywide)) - (let ((s2-1 (-> s5-1 buf base)) - (s4-1 (lookup-texture-by-id-fast (new 'static 'texture-id :page #x679))) - ) - (let ((s3-1 (-> obj ctywide texture-mask 8))) - (when s4-1 - (set! (-> (the-as (pointer uint128) s2-1)) (-> obj adgif-tmpl dma-vif quad)) - (set! (-> (the-as (pointer uint128) s2-1) 1) (-> obj adgif-tmpl quad 1)) - (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s2-1 32)) s4-1) - (&+! (-> s5-1 buf base) 112) - (let ((v1-18 (-> s3-1 mask quad)) - (a0-8 (-> s4-1 masks data 0 mask quad)) - ) - (.por v1-19 v1-18 a0-8) - ) - (set! (-> s3-1 mask quad) v1-19) - ) + (when (= (level-status *level* 'ctywide) 'active) + (let ((s5-1 (new 'stack-no-clear 'minimap-draw-work))) + (set! (-> s5-1 buf) arg0) + (set! (-> s5-1 draw-pos quad) (-> arg1 quad)) + (set! (-> s5-1 justify-right) arg2) + (sub-draw-1-1 obj s5-1) + (sub-draw-1-2 obj s5-1) + (set! (-> obj ctywide) (level-get *level* 'ctywide)) + (let ((s2-1 (-> s5-1 buf base)) + (s4-1 (lookup-texture-by-id-fast (new 'static 'texture-id :page #x679))) ) - (if (not s4-1) - (format *stdcon* "minimap: mini-map-icons texture is #f~%") + (let ((s3-1 (-> obj ctywide texture-mask 8))) + (when s4-1 + (set! (-> (the-as (pointer uint128) s2-1)) (-> obj adgif-tmpl dma-vif quad)) + (set! (-> (the-as (pointer uint128) s2-1) 1) (-> obj adgif-tmpl quad 1)) + (adgif-shader<-texture-simple! (the-as adgif-shader (&+ s2-1 32)) s4-1) + (&+! (-> s5-1 buf base) 112) + (let ((v1-18 (-> s3-1 mask quad)) + (a0-8 (-> s4-1 masks data 0 mask quad)) + ) + (.por v1-19 v1-18 a0-8) ) - ) - (let ((s4-2 (the-as connection-pers (-> *minimap* engine alive-list)))) - (while s4-2 - (let ((a2-1 s4-2)) - (draw-connection obj s5-1 (the-as connection-minimap a2-1)) - ) - (set! s4-2 (-> s4-2 next)) + (set! (-> s3-1 mask quad) v1-19) ) ) - (if (not (paused?)) - (+! (-> obj goal-time) (* 14.0 (-> pp clock seconds-per-frame))) + (if (not s4-1) + (format *stdcon* "minimap: mini-map-icons texture is #f~%") ) - (reset-display-gs-state *display* (-> s5-1 buf)) ) + (let ((s4-2 (the-as connection-pers (-> *minimap* engine alive-list)))) + (while s4-2 + (let ((a2-1 s4-2)) + (draw-connection obj s5-1 (the-as connection-minimap a2-1)) + ) + (set! s4-2 (-> s4-2 next)) + ) + ) + (if (not (paused?)) + (+! (-> obj goal-time) (* 14.0 (seconds-per-frame))) + ) + (reset-display-gs-state *display* (-> s5-1 buf)) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 24 of type minimap @@ -2766,7 +2756,3 @@ 0 (none) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/atoll/atoll-obs_REF.gc b/test/decompiler/reference/jak2/levels/atoll/atoll-obs_REF.gc index d486105c06..aee1ce9996 100644 --- a/test/decompiler/reference/jak2/levels/atoll/atoll-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/atoll/atoll-obs_REF.gc @@ -304,14 +304,10 @@ This commonly includes things such as: ) :code (the-as (function none :behavior turbine) sleep-code) :post (behavior () - (quaternion-rotate-y! - (-> self root quat) - (-> self root quat) - (* (-> self rotspeed) (-> self clock seconds-per-frame)) - ) + (quaternion-rotate-y! (-> self root quat) (-> self root quat) (* (-> self rotspeed) (seconds-per-frame))) (let ((f1-2 (- (-> self dest-height) (-> self root trans y)))) (if (< 0.0 f1-2) - (+! (-> self root trans y) (* (fmax 6144.0 (* 0.5 f1-2)) (-> self clock seconds-per-frame))) + (+! (-> self root trans y) (* (fmax 6144.0 (* 0.5 f1-2)) (seconds-per-frame))) ) ) (update! (-> self sound)) @@ -330,14 +326,10 @@ This commonly includes things such as: :trans (the-as (function none :behavior turbine) rider-trans) :code (the-as (function none :behavior turbine) sleep-code) :post (behavior () - (quaternion-rotate-y! - (-> self root quat) - (-> self root quat) - (* (-> self rotspeed) (-> self clock seconds-per-frame)) - ) + (quaternion-rotate-y! (-> self root quat) (-> self root quat) (* (-> self rotspeed) (seconds-per-frame))) (let ((f1-2 (- (-> self dest-height) (-> self root trans y)))) (if (< 0.0 f1-2) - (+! (-> self root trans y) (* (fmax 6144.0 (* 0.5 f1-2)) (-> self clock seconds-per-frame))) + (+! (-> self root trans y) (* (fmax 6144.0 (* 0.5 f1-2)) (seconds-per-frame))) ) ) (update! (-> self sound)) @@ -715,7 +707,7 @@ This commonly includes things such as: ) (until (>= (- (current-time) gp-6) (seconds 0.5)) (set! (-> self rot-angle) - (the float (sar (shl (the int (+ (-> self rot-angle) (* f30-1 (-> self clock seconds-per-frame)))) 48) 48)) + (the float (sar (shl (the int (+ (-> self rot-angle) (* f30-1 (seconds-per-frame)))) 48) 48)) ) (suspend) ) diff --git a/test/decompiler/reference/jak2/levels/atoll/atoll-part_REF.gc b/test/decompiler/reference/jak2/levels/atoll/atoll-part_REF.gc index 24e8462e52..365730e148 100644 --- a/test/decompiler/reference/jak2/levels/atoll/atoll-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/atoll/atoll-part_REF.gc @@ -595,22 +595,8 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) f30-0 (-> arg2 vector 0 z) 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 1336)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-3d*) - (a1-4 (-> *part-id-table* 1337)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-0 quad)) - (t9-3 a0-5 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1336) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 1337) s3-0) ) ) ) @@ -813,14 +799,7 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 1336)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1336) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/test/decompiler/reference/jak2/levels/atoll/juicer_REF.gc b/test/decompiler/reference/jak2/levels/atoll/juicer_REF.gc index 7f158f3277..3d74b43450 100644 --- a/test/decompiler/reference/jak2/levels/atoll/juicer_REF.gc +++ b/test/decompiler/reference/jak2/levels/atoll/juicer_REF.gc @@ -194,39 +194,11 @@ (s2-0 (new 'stack-no-clear 'vector)) (s1-0 (new 'stack-no-clear 'matrix)) ) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 4637)) - (a2-0 *launch-matrix*) - ) - (set! (-> a2-0 trans quad) (-> s5-0 quad)) - (t9-1 a0-2 a1-1 a2-0 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 4638)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s5-0 quad)) - (t9-2 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4637) s5-0) + (launch-particles (-> *part-id-table* 4638) s5-0) (when (not (handle->process (-> obj victim))) - (let ((t9-3 sp-launch-particles-var) - (a0-8 *sp-particle-system-2d*) - (a1-4 (-> *part-id-table* 4637)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s4-0 quad)) - (t9-3 a0-8 a1-4 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-4 sp-launch-particles-var) - (a0-9 *sp-particle-system-2d*) - (a1-5 (-> *part-id-table* 4638)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s4-0 quad)) - (t9-4 a0-9 a1-5 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4637) s4-0) + (launch-particles (-> *part-id-table* 4638) s4-0) ) (vector-! s2-0 s4-0 s5-0) (vector-normalize! s2-0 1.0) @@ -805,24 +777,22 @@ ;; definition for method 183 of type juicer ;; WARN: Return type mismatch int vs none. (defmethod juicer-method-183 juicer ((obj juicer)) - (with-pp - (cond - ((-> obj torso-track-player) - (set! (-> obj joint-enable) #t) - (seek! (-> obj joint-blend) 1.0 (* 2.0 (-> pp clock seconds-per-frame))) - (juicer-method-182 obj) - ) - ((-> obj joint-enable) - (seek! (-> obj joint-blend) 0.0 (* 4.0 (-> pp clock seconds-per-frame))) - (juicer-method-182 obj) - (if (= (-> obj joint-blend) 0.0) - (set! (-> obj joint-enable) #f) - ) - ) - ) - 0 - (none) + (cond + ((-> obj torso-track-player) + (set! (-> obj joint-enable) #t) + (seek! (-> obj joint-blend) 1.0 (* 2.0 (seconds-per-frame))) + (juicer-method-182 obj) + ) + ((-> obj joint-enable) + (seek! (-> obj joint-blend) 0.0 (* 4.0 (seconds-per-frame))) + (juicer-method-182 obj) + (if (= (-> obj joint-blend) 0.0) + (set! (-> obj joint-enable) #f) + ) + ) ) + 0 + (none) ) ;; definition for method 55 of type juicer diff --git a/test/decompiler/reference/jak2/levels/castle/boss/casboss-texture_REF.gc b/test/decompiler/reference/jak2/levels/castle/boss/casboss-texture_REF.gc index 5438f897d0..701dda4574 100644 --- a/test/decompiler/reference/jak2/levels/castle/boss/casboss-texture_REF.gc +++ b/test/decompiler/reference/jak2/levels/castle/boss/casboss-texture_REF.gc @@ -135,77 +135,75 @@ ;; definition for function krew-texture-anim-func ;; WARN: Return type mismatch int vs none. (defun krew-texture-anim-func () - (with-pp - (let ((gp-0 *krew-holo-texture-anim-array*)) - (when (not (paused?)) - (let ((s5-0 (-> gp-0 array-data 0 data 0))) - (cond - ((= (-> s5-0 extra x) 0.0) - (cond - ((>= 0.0 (-> s5-0 extra y)) - (set! (-> s5-0 extra y) (rand-vu-float-range 150.0 300.0)) - (set! (-> s5-0 extra z) (-> s5-0 extra y)) - (set! (-> s5-0 extra w) (rand-vu-float-range 0.1 0.5)) - (set! (-> s5-0 extra x) 1.0) - ) - (else - (set! (-> s5-0 extra y) (- (-> s5-0 extra y) (* 300.0 (-> pp clock seconds-per-frame)))) - ) + (let ((gp-0 *krew-holo-texture-anim-array*)) + (when (not (paused?)) + (let ((s5-0 (-> gp-0 array-data 0 data 0))) + (cond + ((= (-> s5-0 extra x) 0.0) + (cond + ((>= 0.0 (-> s5-0 extra y)) + (set! (-> s5-0 extra y) (rand-vu-float-range 150.0 300.0)) + (set! (-> s5-0 extra z) (-> s5-0 extra y)) + (set! (-> s5-0 extra w) (rand-vu-float-range 0.1 0.5)) + (set! (-> s5-0 extra x) 1.0) + ) + (else + (set! (-> s5-0 extra y) (- (-> s5-0 extra y) (* 300.0 (seconds-per-frame)))) ) ) - ((= (-> s5-0 extra x) 1.0) - (cond - ((>= 0.0 (-> s5-0 extra y)) - (set! (-> s5-0 extra y) (rand-vu-float-range 300.0 600.0)) - (set! (-> s5-0 extra x) 0.0) - ) - (else - (let ((f0-16 (+ 0.1 (* (-> s5-0 extra w) (sin (* 32768.0 (/ (-> s5-0 extra y) (-> s5-0 extra z)))))))) - (set-vector! (-> s5-0 start-color) (* 0.5 f0-16) (* 0.7 f0-16) f0-16 1.0) - (set-vector! (-> s5-0 end-color) (* 0.5 f0-16) (* 0.7 f0-16) f0-16 1.0) - ) - (set! (-> s5-0 extra y) (- (-> s5-0 extra y) (* 300.0 (-> pp clock seconds-per-frame)))) + ) + ((= (-> s5-0 extra x) 1.0) + (cond + ((>= 0.0 (-> s5-0 extra y)) + (set! (-> s5-0 extra y) (rand-vu-float-range 300.0 600.0)) + (set! (-> s5-0 extra x) 0.0) + ) + (else + (let ((f0-16 (+ 0.1 (* (-> s5-0 extra w) (sin (* 32768.0 (/ (-> s5-0 extra y) (-> s5-0 extra z)))))))) + (set-vector! (-> s5-0 start-color) (* 0.5 f0-16) (* 0.7 f0-16) f0-16 1.0) + (set-vector! (-> s5-0 end-color) (* 0.5 f0-16) (* 0.7 f0-16) f0-16 1.0) ) + (set! (-> s5-0 extra y) (- (-> s5-0 extra y) (* 300.0 (seconds-per-frame)))) ) ) - ) + ) ) - (let ((gp-1 (-> gp-0 array-data 0 data 1))) - (cond - ((= (-> gp-1 extra x) 0.0) - (cond - ((>= 0.0 (-> gp-1 extra y)) - (set! (-> gp-1 extra y) (rand-vu-float-range 75.0 150.0)) - (set! (-> gp-1 extra z) (-> gp-1 extra y)) - (set! (-> gp-1 extra x) 1.0) - ) - (else - (set! (-> gp-1 start-st-offset y) 0.0) - (set! (-> gp-1 end-st-offset y) 0.0) - (set! (-> gp-1 extra y) (- (-> gp-1 extra y) (* 300.0 (-> pp clock seconds-per-frame)))) - ) + ) + (let ((gp-1 (-> gp-0 array-data 0 data 1))) + (cond + ((= (-> gp-1 extra x) 0.0) + (cond + ((>= 0.0 (-> gp-1 extra y)) + (set! (-> gp-1 extra y) (rand-vu-float-range 75.0 150.0)) + (set! (-> gp-1 extra z) (-> gp-1 extra y)) + (set! (-> gp-1 extra x) 1.0) + ) + (else + (set! (-> gp-1 start-st-offset y) 0.0) + (set! (-> gp-1 end-st-offset y) 0.0) + (set! (-> gp-1 extra y) (- (-> gp-1 extra y) (* 300.0 (seconds-per-frame)))) ) ) - ((= (-> gp-1 extra x) 1.0) - (cond - ((>= 0.0 (-> gp-1 extra y)) - (set! (-> gp-1 extra y) (rand-vu-float-range 300.0 600.0)) - (set! (-> gp-1 extra x) 0.0) - ) - (else - (let ((f0-34 (- 1.0 (/ (-> gp-1 extra y) (-> gp-1 extra z))))) - (set! (-> gp-1 start-st-offset y) f0-34) - (set! (-> gp-1 end-st-offset y) f0-34) - ) - (set! (-> gp-1 extra y) (- (-> gp-1 extra y) (* 300.0 (-> pp clock seconds-per-frame)))) + ) + ((= (-> gp-1 extra x) 1.0) + (cond + ((>= 0.0 (-> gp-1 extra y)) + (set! (-> gp-1 extra y) (rand-vu-float-range 300.0 600.0)) + (set! (-> gp-1 extra x) 0.0) + ) + (else + (let ((f0-34 (- 1.0 (/ (-> gp-1 extra y) (-> gp-1 extra z))))) + (set! (-> gp-1 start-st-offset y) f0-34) + (set! (-> gp-1 end-st-offset y) f0-34) ) + (set! (-> gp-1 extra y) (- (-> gp-1 extra y) (* 300.0 (seconds-per-frame)))) ) ) - ) + ) ) ) ) - 0 - (none) ) + 0 + (none) ) diff --git a/test/decompiler/reference/jak2/levels/castle/boss/castle-scenes_REF.gc b/test/decompiler/reference/jak2/levels/castle/boss/castle-scenes_REF.gc index 444e0c4db1..a2e3510e7c 100644 --- a/test/decompiler/reference/jak2/levels/castle/boss/castle-scenes_REF.gc +++ b/test/decompiler/reference/jak2/levels/castle/boss/castle-scenes_REF.gc @@ -663,7 +663,7 @@ *screen-filter* (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) - (* 30.0 (-> self clock seconds-per-frame)) + (* 30.0 (seconds-per-frame)) (bucket-id screen-filter) ) ) @@ -680,7 +680,7 @@ *screen-filter* (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) (new 'static 'vector :x 255.0 :y 128.0 :w 96.0) - (* 6.0 (-> self clock seconds-per-frame)) + (* 6.0 (seconds-per-frame)) (bucket-id screen-filter) ) ) @@ -708,7 +708,7 @@ *screen-filter* (new 'static 'vector :x 255.0 :y 128.0 :w 96.0) (new 'static 'vector :x 255.0) - (-> self clock seconds-per-frame) + (seconds-per-frame) (bucket-id screen-filter) ) ) diff --git a/test/decompiler/reference/jak2/levels/castle/castle-obs_REF.gc b/test/decompiler/reference/jak2/levels/castle/castle-obs_REF.gc index e48cf6f40d..4c701099c7 100644 --- a/test/decompiler/reference/jak2/levels/castle/castle-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/castle/castle-obs_REF.gc @@ -278,25 +278,11 @@ This commonly includes things such as: (cond ((< f30-0 0.0) (quaternion-smooth-seek! (-> self root quat) (-> self root quat) (-> self quat180) 0.1) - (let ((t9-2 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 5119)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> self blue-pos quad)) - (t9-2 a0-2 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 5119) (-> self blue-pos)) ) (else (quaternion-smooth-seek! (-> self root quat) (-> self root quat) (-> self quat0) 0.1) - (let ((t9-4 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-4 (-> *part-id-table* 5120)) - (a2-4 *launch-matrix*) - ) - (set! (-> a2-4 trans quad) (-> self red-pos quad)) - (t9-4 a0-4 a1-4 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 5120) (-> self red-pos)) ) ) ) @@ -677,14 +663,7 @@ This commonly includes things such as: ) ) ) - (let ((t9-10 sp-launch-particles-var) - (a0-21 *sp-particle-system-2d*) - (a1-10 (-> *part-id-table* 166)) - (a2-8 *launch-matrix*) - ) - (set! (-> a2-8 trans quad) (-> s5-2 quad)) - (t9-10 a0-21 a1-10 a2-8 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 166) s5-2) ) (set! (-> self next-spawn-time) (+ (current-time) (the int (* 300.0 (rand-vu-float-range 0.07 0.4))))) ) diff --git a/test/decompiler/reference/jak2/levels/castle/castle-part_REF.gc b/test/decompiler/reference/jak2/levels/castle/castle-part_REF.gc index 7cd7203b82..fd427f6888 100644 --- a/test/decompiler/reference/jak2/levels/castle/castle-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/castle/castle-part_REF.gc @@ -153,38 +153,10 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 5129)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-3d*) - (a1-3 (-> *part-id-table* 5130)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-3d*) - (a1-4 (-> *part-id-table* 5131)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-0 quad)) - (t9-3 a0-5 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-4 sp-launch-particles-var) - (a0-6 *sp-particle-system-3d*) - (a1-5 (-> *part-id-table* 5132)) - (a2-4 *launch-matrix*) - ) - (set! (-> a2-4 trans quad) (-> s3-0 quad)) - (t9-4 a0-6 a1-5 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 5129) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 5130) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 5131) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 5132) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) @@ -714,30 +686,9 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 vector 0 x) (-> arg2 vector 0 y) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 5151)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 5152)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-4 *sp-particle-system-3d*) - (a1-3 (-> *part-id-table* 5153)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-3 a0-4 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 5151) gp-0) + (launch-particles (-> *part-id-table* 5152) gp-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 5153) gp-0) ) (none) ) diff --git a/test/decompiler/reference/jak2/levels/castle/roboguard-level_REF.gc b/test/decompiler/reference/jak2/levels/castle/roboguard-level_REF.gc index 51f068c9e3..cf918fa718 100644 --- a/test/decompiler/reference/jak2/levels/castle/roboguard-level_REF.gc +++ b/test/decompiler/reference/jak2/levels/castle/roboguard-level_REF.gc @@ -656,8 +656,8 @@ ) ) (logand! (-> self flags) -65) - (seek! (-> self speed) 81920.0 (* 1228800.0 (-> self clock seconds-per-frame))) - (seek! (-> self turning-acc) 4096.0 (* 1228800.0 (-> self clock seconds-per-frame))) + (seek! (-> self speed) 81920.0 (* 1228800.0 (seconds-per-frame))) + (seek! (-> self turning-acc) 4096.0 (* 1228800.0 (seconds-per-frame))) (let ((v1-20 (-> self nav))) (set! (-> v1-20 target-speed) (-> self speed)) ) @@ -1223,29 +1223,27 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod nav-enemy-method-142 roboguard-level ((obj roboguard-level) (arg0 nav-control)) - (with-pp - (let ((s3-0 (new 'stack-no-clear 'vector))) - (let ((a1-1 (-> arg0 state))) - (set! (-> s3-0 quad) (-> a1-1 heading quad)) - ) - (set! (-> s3-0 y) 0.0) - (vector-normalize! s3-0 1.0) - (let ((gp-0 (new 'stack-no-clear 'quaternion)) - (s5-1 (-> obj root quat)) - ) - (quaternion-set! gp-0 0.0 (-> s3-0 x) 0.0 (+ 1.0 (-> s3-0 z))) - (quaternion-normalize! gp-0) - (quaternion-pseudo-seek - s5-1 - s5-1 - gp-0 - (* (fmax 0.5 (* 0.00024414062 (-> arg0 state speed))) (-> pp clock seconds-per-frame)) + (let ((s3-0 (new 'stack-no-clear 'vector))) + (let ((a1-1 (-> arg0 state))) + (set! (-> s3-0 quad) (-> a1-1 heading quad)) + ) + (set! (-> s3-0 y) 0.0) + (vector-normalize! s3-0 1.0) + (let ((gp-0 (new 'stack-no-clear 'quaternion)) + (s5-1 (-> obj root quat)) ) + (quaternion-set! gp-0 0.0 (-> s3-0 x) 0.0 (+ 1.0 (-> s3-0 z))) + (quaternion-normalize! gp-0) + (quaternion-pseudo-seek + s5-1 + s5-1 + gp-0 + (* (fmax 0.5 (* 0.00024414062 (-> arg0 state speed))) (seconds-per-frame)) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 176 of type roboguard-level diff --git a/test/decompiler/reference/jak2/levels/city/bombbot/bombbot_REF.gc b/test/decompiler/reference/jak2/levels/city/bombbot/bombbot_REF.gc index 21eedadd59..eb33287ff2 100644 --- a/test/decompiler/reference/jak2/levels/city/bombbot/bombbot_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/bombbot/bombbot_REF.gc @@ -788,7 +788,6 @@ ) ;; definition for method 3 of type ik-setup -;; INFO: this function exists in multiple non-identical object files (defmethod inspect ik-setup ((obj ik-setup)) (when (not obj) (set! obj obj) @@ -1015,7 +1014,7 @@ (let ((a1-7 (-> s1-0 speed))) (let ((v1-42 (-> s1-0 speed))) (let ((a0-13 (vector-! (new 'stack-no-clear 'vector) s0-0 (-> s1-0 speed)))) - (let ((a2-14 (* 4.0 (-> pp clock seconds-per-frame)))) + (let ((a2-14 (* 4.0 (seconds-per-frame)))) (.mov vf7 a2-14) ) (.lvf vf5 (&-> a0-13 quad)) @@ -1948,22 +1947,8 @@ ) (set! (-> *part-id-table* 4630 init-specs 4 initial-valuef) (vector-length s5-0)) (draw-beam (-> *part-id-table* 4630) s4-0 s5-0 #f #t) - (let ((t9-20 sp-launch-particles-var) - (a0-76 *sp-particle-system-2d*) - (a1-34 (-> *part-id-table* 4631)) - (a2-20 *launch-matrix*) - ) - (set! (-> a2-20 trans quad) (-> s4-0 quad)) - (t9-20 a0-76 a1-34 a2-20 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-21 sp-launch-particles-var) - (a0-77 *sp-particle-system-2d*) - (a1-35 (-> *part-id-table* 4632)) - (a2-21 *launch-matrix*) - ) - (set! (-> a2-21 trans quad) (-> (vector+! (new 'stack-no-clear 'vector) s5-0 s4-0) quad)) - (t9-21 a0-77 a1-35 a2-21 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4631) s4-0) + (launch-particles (-> *part-id-table* 4632) (vector+! (new 'stack-no-clear 'vector) s5-0 s4-0)) ) ) ) @@ -2021,10 +2006,10 @@ (let ((f30-0 1.0)) (when (and gp-0 (< (fabs (- (-> self target-pos y) (-> self root trans y))) 20480.0)) ) - (seek! (-> self legs-strength 0) f30-0 (* 0.5 (-> self clock seconds-per-frame))) - (seek! (-> self legs-strength 1) f30-0 (* 0.5 (-> self clock seconds-per-frame))) - (seek! (-> self legs-strength 2) f30-0 (* 0.5 (-> self clock seconds-per-frame))) - (seek! (-> self legs-strength 3) f30-0 (* 0.5 (-> self clock seconds-per-frame))) + (seek! (-> self legs-strength 0) f30-0 (* 0.5 (seconds-per-frame))) + (seek! (-> self legs-strength 1) f30-0 (* 0.5 (seconds-per-frame))) + (seek! (-> self legs-strength 2) f30-0 (* 0.5 (seconds-per-frame))) + (seek! (-> self legs-strength 3) f30-0 (* 0.5 (seconds-per-frame))) ) (cond (gp-0 @@ -2090,7 +2075,7 @@ ) ) (if (!= (-> self nav state mesh) *default-nav-mesh*) - (+! (-> self root trans y) (* 4.0 (-> self clock seconds-per-frame) (- f0-28 (-> self root trans y)))) + (+! (-> self root trans y) (* 4.0 (seconds-per-frame) (- f0-28 (-> self root trans y)))) ) ) (if (= (vector-length (-> self root transv)) 0.0) @@ -2178,11 +2163,7 @@ (-> *bombbot-nav-enemy-info* run-travel-speed) ) ) - (seek! - (-> self root trans y) - (-> self city-path node gp-1 position y) - (* 16384.0 (-> self clock seconds-per-frame)) - ) + (seek! (-> self root trans y) (-> self city-path node gp-1 position y) (* 16384.0 (seconds-per-frame))) (track-target! self) (update-transforms (-> self root)) ) @@ -2227,21 +2208,21 @@ :trans (behavior () (let ((v1-0 (-> self nav))) (set! (-> v1-0 target-speed) - (- (-> self nav target-speed) (* 0.4 (-> self clock seconds-per-frame) (-> self nav target-speed))) + (- (-> self nav target-speed) (* 0.4 (seconds-per-frame) (-> self nav target-speed))) ) ) 0 (if (>= (- (current-time) (-> self state-time)) 0) - (seek! (-> self legs-strength 0) 0.8 (* 10.0 (-> self clock seconds-per-frame))) + (seek! (-> self legs-strength 0) 0.8 (* 10.0 (seconds-per-frame))) ) (if (>= (- (current-time) (-> self state-time)) (seconds 0.8)) - (seek! (-> self legs-strength 3) 0.4 (* 10.0 (-> self clock seconds-per-frame))) + (seek! (-> self legs-strength 3) 0.4 (* 10.0 (seconds-per-frame))) ) (if (>= (- (current-time) (-> self state-time)) (seconds 1.6)) - (seek! (-> self legs-strength 1) 0.0 (* 10.0 (-> self clock seconds-per-frame))) + (seek! (-> self legs-strength 1) 0.0 (* 10.0 (seconds-per-frame))) ) (if (>= (- (current-time) (-> self state-time)) (seconds 2.4)) - (seek! (-> self legs-strength 2) 0.5 (* 10.0 (-> self clock seconds-per-frame))) + (seek! (-> self legs-strength 2) 0.5 (* 10.0 (seconds-per-frame))) ) (when (>= (- (current-time) (-> self state-time)) (seconds 2.8)) (sound-play "bb-explode") @@ -2651,142 +2632,110 @@ (sv-224 vector) (sv-240 vector) ) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - (vf3 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (let ((s4-0 (the-as bombbot (-> arg0 param1)))) - (let ((s1-0 (new 'stack-no-clear 'vector)) - (s3-0 (quaternion-copy! (new 'stack-no-clear 'quaternion) *unity-quaternion*)) - ) - (let ((f30-0 0.0) - (s2-0 (vector-reset! (new 'stack-no-clear 'vector))) - ) - (dotimes (s0-0 4) - (let ((v1-3 (-> s4-0 feet s0-0))) - (let ((a1-2 s2-0)) - (let ((a0-2 s2-0)) - (let ((a2-1 (+ (the-as uint (-> s4-0 feet 0 real-position)) (* 112 s0-0)))) - (let ((a3-3 0.25)) - (.mov vf7 a3-3) - ) - (.lvf vf5 (&-> (the-as (pointer int128) a2-1))) - ) - (.lvf vf4 (&-> a0-2 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-2 quad) vf6) - ) - (set! (-> v1-3 main-y) (- (-> s4-0 feet s0-0 real-position y) (-> s4-0 root trans y))) - (set! (-> v1-3 main-y) (-> v1-3 delta-y)) - (+! f30-0 (* 0.25 (-> v1-3 main-y))) - (set! (-> s1-0 quad) (-> v1-3 pos-offset quad)) - (set! (-> s1-0 y) (* -2.0 (-> v1-3 main-y))) - (new 'stack-no-clear 'vector) - (set! sv-224 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> v1-3 pos-offset) 1.0)) - ) - (set! sv-240 (vector-normalize-copy! (new 'stack-no-clear 'vector) s1-0 1.0)) - (let ((f0-8 (vector-vector-angle-safe sv-224 sv-240))) - (when (!= f0-8 0.0) - (set! sv-176 quaternion*!) - (set! sv-192 s3-0) - (set! sv-208 s3-0) - (let ((t9-4 quaternion-vector-angle!) - (a0-14 (new 'stack-no-clear 'quaternion)) - (a1-8 (new 'stack-no-clear 'vector)) - ) - (.lvf vf1 (&-> sv-224 quad)) - (.lvf vf2 (&-> sv-240 quad)) - (.outer.product.a.vf acc vf1 vf2) - (.outer.product.b.vf vf3 vf2 vf1 acc) - (.svf (&-> a1-8 quad) vf3) - (let ((a2-5 (t9-4 a0-14 a1-8 f0-8))) - (sv-176 sv-192 sv-208 a2-5) - ) - ) - ) - ) - ) - (let* ((f0-9 0.0) - (f0-10 (+ -16384.0 f0-9)) - (f2-0 (- f30-0 (-> s4-0 main-pos-y))) - (f1-7 (- (-> s4-0 main-spd-y))) - (f0-12 (+ f0-10 (* 60.0 f2-0) (* 10.0 f1-7))) - ) - (+! (-> s4-0 main-spd-y) (* f0-12 (-> pp clock seconds-per-frame))) - ) - (+! (-> s4-0 main-pos-y) (* (-> s4-0 main-spd-y) (-> pp clock seconds-per-frame))) - (vector-! s2-0 s2-0 (-> s4-0 root trans)) - (vector-inv-orient-by-quat! s2-0 s2-0 (-> s4-0 root quat)) - (let ((a1-13 (-> s4-0 main-pos))) - (let ((v1-19 (-> s4-0 main-pos))) - (let ((a0-20 (vector-! (new 'stack-no-clear 'vector) s2-0 (-> s4-0 main-pos)))) - (let ((a2-10 (* 4.0 (-> pp clock seconds-per-frame)))) - (.mov vf7 a2-10) - ) - (.lvf vf5 (&-> a0-20 quad)) - ) - (.lvf vf4 (&-> v1-19 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-13 quad) vf6) - ) - ) - (quaternion-slerp! (-> s4-0 main-quat) (-> s4-0 main-quat) s3-0 0.8) - ) - (quaternion-copy! (-> arg1 quat) (-> s4-0 main-quat)) - (set! (-> arg1 trans quad) (-> s4-0 main-pos quad)) - (set! (-> arg1 trans y) (+ 16384.0 (-> s4-0 main-pos-y))) - (quaternion-copy! (-> arg1 quat) (-> s4-0 rigidbody state rotation)) - (let ((s3-1 (-> arg1 trans)) - (v1-23 (-> s4-0 rigidbody)) - (a1-17 (new 'stack-no-clear 'vector)) - ) - (set! (-> s3-1 quad) (-> (rigid-body-method-23 (-> v1-23 state) a1-17) quad)) - ) - ) - (cspace<-parented-transformq-joint! arg0 arg1) - 0 - (none) - ) - ) - ) - -;; definition for function bombbot-head-callback -;; INFO: Used lq/sq -;; WARN: Return type mismatch int vs none. -(defun bombbot-head-callback ((arg0 cspace) (arg1 transformq)) - (with-pp + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) (let ((s4-0 (the-as bombbot (-> arg0 param1)))) - (let ((s2-0 (new 'stack-no-clear 'vector)) - (s3-0 (new 'stack-no-clear 'quaternion)) + (let ((s1-0 (new 'stack-no-clear 'vector)) + (s3-0 (quaternion-copy! (new 'stack-no-clear 'quaternion) *unity-quaternion*)) + ) + (let ((f30-0 0.0) + (s2-0 (vector-reset! (new 'stack-no-clear 'vector))) + ) + (dotimes (s0-0 4) + (let ((v1-3 (-> s4-0 feet s0-0))) + (let ((a1-2 s2-0)) + (let ((a0-2 s2-0)) + (let ((a2-1 (+ (the-as uint (-> s4-0 feet 0 real-position)) (* 112 s0-0)))) + (let ((a3-3 0.25)) + (.mov vf7 a3-3) + ) + (.lvf vf5 (&-> (the-as (pointer int128) a2-1))) + ) + (.lvf vf4 (&-> a0-2 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-2 quad) vf6) + ) + (set! (-> v1-3 main-y) (- (-> s4-0 feet s0-0 real-position y) (-> s4-0 root trans y))) + (set! (-> v1-3 main-y) (-> v1-3 delta-y)) + (+! f30-0 (* 0.25 (-> v1-3 main-y))) + (set! (-> s1-0 quad) (-> v1-3 pos-offset quad)) + (set! (-> s1-0 y) (* -2.0 (-> v1-3 main-y))) + (new 'stack-no-clear 'vector) + (set! sv-224 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> v1-3 pos-offset) 1.0)) + ) + (set! sv-240 (vector-normalize-copy! (new 'stack-no-clear 'vector) s1-0 1.0)) + (let ((f0-8 (vector-vector-angle-safe sv-224 sv-240))) + (when (!= f0-8 0.0) + (set! sv-176 quaternion*!) + (set! sv-192 s3-0) + (set! sv-208 s3-0) + (let ((t9-4 quaternion-vector-angle!) + (a0-14 (new 'stack-no-clear 'quaternion)) + (a1-8 (new 'stack-no-clear 'vector)) + ) + (.lvf vf1 (&-> sv-224 quad)) + (.lvf vf2 (&-> sv-240 quad)) + (.outer.product.a.vf acc vf1 vf2) + (.outer.product.b.vf vf3 vf2 vf1 acc) + (.svf (&-> a1-8 quad) vf3) + (let ((a2-5 (t9-4 a0-14 a1-8 f0-8))) + (sv-176 sv-192 sv-208 a2-5) + ) + ) + ) + ) + ) + (let* ((f0-9 0.0) + (f0-10 (+ -16384.0 f0-9)) + (f2-0 (- f30-0 (-> s4-0 main-pos-y))) + (f1-7 (- (-> s4-0 main-spd-y))) + (f0-12 (+ f0-10 (* 60.0 f2-0) (* 10.0 f1-7))) + ) + (+! (-> s4-0 main-spd-y) (* f0-12 (seconds-per-frame))) + ) + (+! (-> s4-0 main-pos-y) (* (-> s4-0 main-spd-y) (seconds-per-frame))) + (vector-! s2-0 s2-0 (-> s4-0 root trans)) + (vector-inv-orient-by-quat! s2-0 s2-0 (-> s4-0 root quat)) + (let ((a1-13 (-> s4-0 main-pos))) + (let ((v1-19 (-> s4-0 main-pos))) + (let ((a0-20 (vector-! (new 'stack-no-clear 'vector) s2-0 (-> s4-0 main-pos)))) + (let ((a2-10 (* 4.0 (seconds-per-frame)))) + (.mov vf7 a2-10) + ) + (.lvf vf5 (&-> a0-20 quad)) + ) + (.lvf vf4 (&-> v1-19 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-13 quad) vf6) ) - (let ((a1-1 (-> s4-0 nav state))) - (set! (-> s2-0 quad) (-> a1-1 target-post quad)) ) - (vector-! s2-0 s2-0 (-> s4-0 root trans)) - (set! (-> s2-0 y) 0.0) - (vector-normalize! s2-0 1.0) - (quaternion-from-two-vectors! - s3-0 - (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> s4-0 root quat)) - s2-0 - ) - (quaternion-smooth-seek! (-> s4-0 top-quat) (-> s4-0 top-quat) s3-0 (* 4.0 (-> pp clock seconds-per-frame))) + (quaternion-slerp! (-> s4-0 main-quat) (-> s4-0 main-quat) s3-0 0.8) + ) + (quaternion-copy! (-> arg1 quat) (-> s4-0 main-quat)) + (set! (-> arg1 trans quad) (-> s4-0 main-pos quad)) + (set! (-> arg1 trans y) (+ 16384.0 (-> s4-0 main-pos-y))) + (quaternion-copy! (-> arg1 quat) (-> s4-0 rigidbody state rotation)) + (let ((s3-1 (-> arg1 trans)) + (v1-23 (-> s4-0 rigidbody)) + (a1-17 (new 'stack-no-clear 'vector)) + ) + (set! (-> s3-1 quad) (-> (rigid-body-method-23 (-> v1-23 state) a1-17) quad)) ) - (quaternion-copy! (-> arg1 quat) (-> s4-0 top-quat)) ) (cspace<-parented-transformq-joint! arg0 arg1) 0 @@ -2794,53 +2743,77 @@ ) ) +;; definition for function bombbot-head-callback +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defun bombbot-head-callback ((arg0 cspace) (arg1 transformq)) + (let ((s4-0 (the-as bombbot (-> arg0 param1)))) + (let ((s2-0 (new 'stack-no-clear 'vector)) + (s3-0 (new 'stack-no-clear 'quaternion)) + ) + (let ((a1-1 (-> s4-0 nav state))) + (set! (-> s2-0 quad) (-> a1-1 target-post quad)) + ) + (vector-! s2-0 s2-0 (-> s4-0 root trans)) + (set! (-> s2-0 y) 0.0) + (vector-normalize! s2-0 1.0) + (quaternion-from-two-vectors! + s3-0 + (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> s4-0 root quat)) + s2-0 + ) + (quaternion-smooth-seek! (-> s4-0 top-quat) (-> s4-0 top-quat) s3-0 (* 4.0 (seconds-per-frame))) + ) + (quaternion-copy! (-> arg1 quat) (-> s4-0 top-quat)) + ) + (cspace<-parented-transformq-joint! arg0 arg1) + 0 + (none) + ) + ;; definition for function bombbot-gun-swivel-callback ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defun bombbot-gun-swivel-callback ((arg0 cspace) (arg1 transformq)) (local-vars (sv-128 vector) (sv-144 vector) (sv-160 vector)) - (with-pp - (rlet ((vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - ) - (init-vf0-vector) - (cspace<-parented-transformq-joint! arg0 arg1) - (let ((s3-0 (the-as bombbot (-> arg0 param1)))) - (set! sv-160 (new 'stack-no-clear 'vector)) - (let ((s4-0 (new 'stack-no-clear 'quaternion)) - (s0-0 (new 'stack-no-clear 'vector)) - (s1-0 (new 'stack-no-clear 'vector)) - (s2-0 (new 'stack-no-clear 'vector)) - (s5-0 (matrix->trans (-> arg0 bone transform) (new 'stack-no-clear 'vector))) - ) - (set! sv-144 sv-160) - (set! sv-128 (-> s3-0 target-pos)) - (let ((v0-2 (matrix->trans (-> arg0 bone transform) (new 'stack-no-clear 'vector)))) - (.lvf vf4 (&-> sv-128 quad)) - (.lvf vf5 (&-> v0-2 quad)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (cspace<-parented-transformq-joint! arg0 arg1) + (let ((s3-0 (the-as bombbot (-> arg0 param1)))) + (set! sv-160 (new 'stack-no-clear 'vector)) + (let ((s4-0 (new 'stack-no-clear 'quaternion)) + (s0-0 (new 'stack-no-clear 'vector)) + (s1-0 (new 'stack-no-clear 'vector)) + (s2-0 (new 'stack-no-clear 'vector)) + (s5-0 (matrix->trans (-> arg0 bone transform) (new 'stack-no-clear 'vector))) ) - (.mov.vf vf6 vf0 :mask #b1000) - (.sub.vf vf6 vf4 vf5 :mask #b111) - (.svf (&-> sv-144 quad) vf6) - (rot-zxy-from-vector! s0-0 (-> arg0 bone transform vector 2)) - (rot-zxy-from-vector! s0-0 *z-vector*) - (rot-zxy-from-vector! s1-0 sv-160) - (set! (-> s2-0 x) (deg- (-> s1-0 x) (-> s0-0 x))) - (set! (-> s2-0 y) (deg- (-> s1-0 y) (-> s0-0 y))) - (set! (-> s2-0 y) (deg- (-> s1-0 y) 0.0)) - (set! (-> s3-0 angle-turret) - (deg-seek (-> s3-0 angle-turret) (-> s2-0 y) (* 36408.89 (-> pp clock seconds-per-frame))) - ) - (quaternion-vector-angle! s4-0 *up-vector* (-> s3-0 angle-turret)) - (quaternion->matrix (-> arg0 bone transform) s4-0) - (set! (-> arg0 bone transform trans quad) (-> s5-0 quad)) + (set! sv-144 sv-160) + (set! sv-128 (-> s3-0 target-pos)) + (let ((v0-2 (matrix->trans (-> arg0 bone transform) (new 'stack-no-clear 'vector)))) + (.lvf vf4 (&-> sv-128 quad)) + (.lvf vf5 (&-> v0-2 quad)) ) + (.mov.vf vf6 vf0 :mask #b1000) + (.sub.vf vf6 vf4 vf5 :mask #b111) + (.svf (&-> sv-144 quad) vf6) + (rot-zxy-from-vector! s0-0 (-> arg0 bone transform vector 2)) + (rot-zxy-from-vector! s0-0 *z-vector*) + (rot-zxy-from-vector! s1-0 sv-160) + (set! (-> s2-0 x) (deg- (-> s1-0 x) (-> s0-0 x))) + (set! (-> s2-0 y) (deg- (-> s1-0 y) (-> s0-0 y))) + (set! (-> s2-0 y) (deg- (-> s1-0 y) 0.0)) + (set! (-> s3-0 angle-turret) (deg-seek (-> s3-0 angle-turret) (-> s2-0 y) (* 36408.89 (seconds-per-frame)))) + (quaternion-vector-angle! s4-0 *up-vector* (-> s3-0 angle-turret)) + (quaternion->matrix (-> arg0 bone transform) s4-0) + (set! (-> arg0 bone transform trans quad) (-> s5-0 quad)) ) - 0 - (none) ) + 0 + (none) ) ) @@ -2849,45 +2822,41 @@ ;; WARN: Return type mismatch int vs none. (defun bombbot-gun-callback ((arg0 cspace) (arg1 transformq)) (local-vars (sv-112 vector) (sv-128 vector)) - (with-pp - (rlet ((vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - ) - (init-vf0-vector) - (cspace<-parented-transformq-joint! arg0 arg1) - (let ((s4-0 (the-as bombbot (-> arg0 param1)))) - (let ((s0-0 (new 'stack-no-clear 'vector))) - (new 'stack-no-clear 'vector) - (let ((s2-0 (new 'stack-no-clear 'vector)) - (s1-0 (new 'stack-no-clear 'vector)) - (s3-0 (new 'stack-no-clear 'vector)) - ) - (set! sv-128 s0-0) - (set! sv-112 (-> s4-0 target-pos)) - (let ((v0-1 (matrix->trans (-> arg0 bone transform) (new 'stack-no-clear 'vector)))) - (.lvf vf4 (&-> sv-112 quad)) - (.lvf vf5 (&-> v0-1 quad)) + (rlet ((vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + ) + (init-vf0-vector) + (cspace<-parented-transformq-joint! arg0 arg1) + (let ((s4-0 (the-as bombbot (-> arg0 param1)))) + (let ((s0-0 (new 'stack-no-clear 'vector))) + (new 'stack-no-clear 'vector) + (let ((s2-0 (new 'stack-no-clear 'vector)) + (s1-0 (new 'stack-no-clear 'vector)) + (s3-0 (new 'stack-no-clear 'vector)) ) - (.mov.vf vf6 vf0 :mask #b1000) - (.sub.vf vf6 vf4 vf5 :mask #b111) - (.svf (&-> sv-128 quad) vf6) - (rot-zxy-from-vector! s2-0 (-> arg0 bone transform vector 2)) - (rot-zxy-from-vector! s1-0 s0-0) - (set! (-> s3-0 x) (fmax -2730.6667 (fmin 2730.6667 (deg- (-> s1-0 x) (-> s2-0 x))))) - (set! (-> s3-0 y) (deg- (-> s1-0 y) (-> s2-0 y))) - (set! (-> s4-0 angle-gun) - (deg-seek (-> s4-0 angle-gun) (-> s3-0 x) (* 7281.778 (-> pp clock seconds-per-frame))) - ) + (set! sv-128 s0-0) + (set! sv-112 (-> s4-0 target-pos)) + (let ((v0-1 (matrix->trans (-> arg0 bone transform) (new 'stack-no-clear 'vector)))) + (.lvf vf4 (&-> sv-112 quad)) + (.lvf vf5 (&-> v0-1 quad)) ) + (.mov.vf vf6 vf0 :mask #b1000) + (.sub.vf vf6 vf4 vf5 :mask #b111) + (.svf (&-> sv-128 quad) vf6) + (rot-zxy-from-vector! s2-0 (-> arg0 bone transform vector 2)) + (rot-zxy-from-vector! s1-0 s0-0) + (set! (-> s3-0 x) (fmax -2730.6667 (fmin 2730.6667 (deg- (-> s1-0 x) (-> s2-0 x))))) + (set! (-> s3-0 y) (deg- (-> s1-0 y) (-> s2-0 y))) + (set! (-> s4-0 angle-gun) (deg-seek (-> s4-0 angle-gun) (-> s3-0 x) (* 7281.778 (seconds-per-frame)))) ) - (quaternion-vector-angle! (-> arg1 quat) *x-vector* (-> s4-0 angle-gun)) ) - (cspace<-parented-transformq-joint! arg0 arg1) - 0 - (none) + (quaternion-vector-angle! (-> arg1 quat) *x-vector* (-> s4-0 angle-gun)) ) + (cspace<-parented-transformq-joint! arg0 arg1) + 0 + (none) ) ) @@ -3028,16 +2997,14 @@ ;; definition for method 184 of type bombbot ;; WARN: Return type mismatch int vs none. (defmethod bombbot-method-184 bombbot ((obj bombbot)) - (with-pp - (rigid-body-control-method-10 - (-> obj rigidbody) - (the-as rigid-body-object obj) - (-> pp clock seconds-per-frame) - 0.033333335 - ) - 0 - (none) + (rigid-body-control-method-10 + (-> obj rigidbody) + (the-as rigid-body-object obj) + (seconds-per-frame) + 0.033333335 ) + 0 + (none) ) ;; definition for method 115 of type bombbot @@ -3391,7 +3358,7 @@ *screen-filter* (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) - (-> self clock seconds-per-frame) + (seconds-per-frame) (bucket-id tex-all-map) ) (while (< (- (current-time) (-> self state-time)) (seconds 1)) diff --git a/test/decompiler/reference/jak2/levels/city/burning-bush/ctywide-bbush_REF.gc b/test/decompiler/reference/jak2/levels/city/burning-bush/ctywide-bbush_REF.gc index 6d03573351..f7503d5a10 100644 --- a/test/decompiler/reference/jak2/levels/city/burning-bush/ctywide-bbush_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/burning-bush/ctywide-bbush_REF.gc @@ -1818,22 +1818,8 @@ ) ) ) - (let ((t9-8 sp-launch-particles-var) - (a0-8 *sp-particle-system-2d*) - (a1-6 (-> *part-id-table* 4593)) - (a2-5 *launch-matrix*) - ) - (set! (-> a2-5 trans quad) (-> gp-2 quad)) - (t9-8 a0-8 a1-6 a2-5 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-9 sp-launch-particles-var) - (a0-9 *sp-particle-system-2d*) - (a1-7 (-> *part-id-table* 4594)) - (a2-6 *launch-matrix*) - ) - (set! (-> a2-6 trans quad) (-> gp-2 quad)) - (t9-9 a0-9 a1-7 a2-6 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4593) gp-2) + (launch-particles (-> *part-id-table* 4594) gp-2) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/city/common/pilot-states_REF.gc b/test/decompiler/reference/jak2/levels/city/common/pilot-states_REF.gc index 28cc6cdbad..df8962c880 100644 --- a/test/decompiler/reference/jak2/levels/city/common/pilot-states_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/pilot-states_REF.gc @@ -179,10 +179,7 @@ (set! (-> gp-0 left-right-interp) (fmax -1.0 - (fmin - 1.0 - (+ (-> gp-0 left-right-interp) (* 8.0 (- f3-0 (-> gp-0 left-right-interp)) (-> self clock seconds-per-frame))) - ) + (fmin 1.0 (+ (-> gp-0 left-right-interp) (* 8.0 (- f3-0 (-> gp-0 left-right-interp)) (seconds-per-frame)))) ) ) ) @@ -193,10 +190,7 @@ (set! (-> gp-0 front-back-interp) (fmax -1.0 - (fmin - 1.0 - (+ (-> gp-0 front-back-interp) (* 8.0 (- f3-4 (-> gp-0 front-back-interp)) (-> self clock seconds-per-frame))) - ) + (fmin 1.0 (+ (-> gp-0 front-back-interp) (* 8.0 (- f3-4 (-> gp-0 front-back-interp)) (seconds-per-frame)))) ) ) ) @@ -204,10 +198,7 @@ (set! (-> gp-0 up-down-interp) (fmax -1.0 - (fmin - 1.0 - (+ (-> gp-0 up-down-interp) (* 8.0 (- f3-8 (-> gp-0 up-down-interp)) (-> self clock seconds-per-frame))) - ) + (fmin 1.0 (+ (-> gp-0 up-down-interp) (* 8.0 (- f3-8 (-> gp-0 up-down-interp)) (seconds-per-frame)))) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/city/common/target-pilot_REF.gc b/test/decompiler/reference/jak2/levels/city/common/target-pilot_REF.gc index ca53ecacf9..efc95ce092 100644 --- a/test/decompiler/reference/jak2/levels/city/common/target-pilot_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/target-pilot_REF.gc @@ -394,7 +394,7 @@ (set! (-> s3-0 vec 2 x) (* (-> s3-0 vec 2 x) (fmax 0.25 (fmin 1.0 (* 0.000008138021 (vector-length (-> self control transv)))))) ) - (seek! (-> gp-2 cam-side-shift) (-> s3-0 vec 2 x) (* 16384.0 (-> self clock seconds-per-frame))) + (seek! (-> gp-2 cam-side-shift) (-> s3-0 vec 2 x) (* 16384.0 (seconds-per-frame))) ) (set! (-> s4-0 x) (+ (-> s3-0 vec 0 x) (* (-> gp-2 cam-side-shift) (-> s3-0 vec 1 x)))) (set! (-> s4-0 z) (+ (-> s3-0 vec 0 z) (* (-> gp-2 cam-side-shift) (-> s3-0 vec 1 z)))) diff --git a/test/decompiler/reference/jak2/levels/city/ctyport-obs_REF.gc b/test/decompiler/reference/jak2/levels/city/ctyport-obs_REF.gc index 21e569a6a6..a95be9e0b8 100644 --- a/test/decompiler/reference/jak2/levels/city/ctyport-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/ctyport-obs_REF.gc @@ -400,100 +400,94 @@ ;; definition for method 120 of type boat-base ;; INFO: Used lq/sq (defmethod vehicle-method-120 boat-base ((obj boat-base)) - (with-pp - (let ((t9-0 (method-of-type vehicle vehicle-method-120))) - (t9-0 obj) - ) - (when (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) - (let ((a1-1 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) - (s5-0 (new 'stack-no-clear 'quaternion)) - ) - (quaternion-from-two-vectors-max-angle! s5-0 a1-1 *up-vector* (* 728.1778 (-> pp clock seconds-per-frame))) - (quaternion*! (-> obj root quat) s5-0 (-> obj root quat)) - ) - (let ((s4-0 (new 'stack-no-clear 'vector)) - (s5-1 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) - ) - (new 'stack-no-clear 'vector) - (let ((a1-4 (-> obj nav state))) - (set! (-> s4-0 quad) (-> a1-4 velocity quad)) - ) - (let ((s1-0 (new 'stack-no-clear 'vector)) - (s2-0 (new 'stack-no-clear 'vector)) - (s3-0 (new 'stack 'clamp-travel-vector-to-mesh-return-info)) - ) - (let ((s0-0 (-> obj nav state current-poly))) - (vector-xz-normalize-copy! s1-0 s4-0 163840.0) - (set! (-> s2-0 quad) (-> s1-0 quad)) - (clamp-vector-to-mesh-no-gaps (-> obj nav) (-> obj root trans) s0-0 s2-0 s3-0) - ) - (when (-> s3-0 found-boundary) - (let ((f30-0 (vector-length s4-0))) - (vector-flatten! s4-0 s4-0 (-> s3-0 boundary-normal)) - (vector-rotate90-around-y! s4-0 (-> s3-0 boundary-normal)) - (vector-normalize! s4-0 f30-0) - ) - (when (= obj *debug-actor*) - (add-debug-vector #t (bucket-id debug-no-zbuf1) (-> obj root trans) s4-0 (meters 10) *color-blue*) - (format *stdcon* "avoid border~%") - ) - ) - ) - (set! (-> obj y-rot) (- (-> obj y-rot) (* 2.0 (-> pp clock seconds-per-frame) (-> obj y-rot)))) - (+! (-> obj y-rot) - (* 10.0 - (-> pp clock seconds-per-frame) - (deg- (deg- (vector-y-angle s4-0) (quaternion-y-angle (-> obj root quat))) (-> obj y-rot)) - ) - ) - (set! (-> obj y-rot) (fmax -10922.667 (fmin 10922.667 (-> obj y-rot)))) - (set! (-> obj y-rot) (deg- (vector-y-angle s4-0) (quaternion-y-angle (-> obj root quat)))) - (quaternion-rotate-local-y! - (-> obj root quat) - (-> obj root quat) - (* (-> obj y-rot) (-> pp clock seconds-per-frame)) - ) - (vector-v*float+! (-> obj root trans) (-> obj root trans) s5-1 8954.266) - ) - (seek! (-> obj root trans y) 4096.0 (* 4096.0 (-> pp clock seconds-per-frame))) - (when (= obj *debug-actor*) - (format *stdcon* "no physics~%") - (format *stdcon* "~M~%" (-> obj root trans y)) - ) - ) - (if (= obj *debug-actor*) - (format *stdcon* "speed ~M~%" (vector-length (-> obj root transv))) - ) - (let ((s4-2 (ppointer->process (-> obj parent))) - (s5-2 (new 'stack-no-clear 'vector)) - ) - (when s4-2 - (let ((a1-24 (-> obj nav state))) - (set! (-> s5-2 quad) (-> a1-24 target-post quad)) - ) - (when (< (vector-vector-xz-distance (-> obj root trans) s5-2) 163840.0) - (+! (-> obj path-index) 0.01) - (let ((f0-22 (-> obj path-index))) - (set! (-> obj path-index) (- f0-22 (* (the float (the int (/ f0-22 1.0))) 1.0))) - ) - ) - (get-point-at-percent-along-path! - (-> (the-as boat-manager (+ (* (-> obj path-num) 4) (the-as uint s4-2))) paths 0) - s5-2 - (-> obj path-index) - 'interp - ) - (let ((v1-76 (-> obj nav state))) - (logclear! (-> v1-76 flags) (nav-state-flag directional-mode)) - (logior! (-> v1-76 flags) (nav-state-flag target-poly-dirty)) - (set! (-> v1-76 target-post quad) (-> s5-2 quad)) - ) - 0 - ) - ) - (draw-thrusters obj) - (none) + (let ((t9-0 (method-of-type vehicle vehicle-method-120))) + (t9-0 obj) ) + (when (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) + (let ((a1-1 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) + (s5-0 (new 'stack-no-clear 'quaternion)) + ) + (quaternion-from-two-vectors-max-angle! s5-0 a1-1 *up-vector* (* 728.1778 (seconds-per-frame))) + (quaternion*! (-> obj root quat) s5-0 (-> obj root quat)) + ) + (let ((s4-0 (new 'stack-no-clear 'vector)) + (s5-1 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) + ) + (new 'stack-no-clear 'vector) + (let ((a1-4 (-> obj nav state))) + (set! (-> s4-0 quad) (-> a1-4 velocity quad)) + ) + (let ((s1-0 (new 'stack-no-clear 'vector)) + (s2-0 (new 'stack-no-clear 'vector)) + (s3-0 (new 'stack 'clamp-travel-vector-to-mesh-return-info)) + ) + (let ((s0-0 (-> obj nav state current-poly))) + (vector-xz-normalize-copy! s1-0 s4-0 163840.0) + (set! (-> s2-0 quad) (-> s1-0 quad)) + (clamp-vector-to-mesh-no-gaps (-> obj nav) (-> obj root trans) s0-0 s2-0 s3-0) + ) + (when (-> s3-0 found-boundary) + (let ((f30-0 (vector-length s4-0))) + (vector-flatten! s4-0 s4-0 (-> s3-0 boundary-normal)) + (vector-rotate90-around-y! s4-0 (-> s3-0 boundary-normal)) + (vector-normalize! s4-0 f30-0) + ) + (when (= obj *debug-actor*) + (add-debug-vector #t (bucket-id debug-no-zbuf1) (-> obj root trans) s4-0 (meters 10) *color-blue*) + (format *stdcon* "avoid border~%") + ) + ) + ) + (set! (-> obj y-rot) (- (-> obj y-rot) (* 2.0 (seconds-per-frame) (-> obj y-rot)))) + (+! (-> obj y-rot) + (* 10.0 + (seconds-per-frame) + (deg- (deg- (vector-y-angle s4-0) (quaternion-y-angle (-> obj root quat))) (-> obj y-rot)) + ) + ) + (set! (-> obj y-rot) (fmax -10922.667 (fmin 10922.667 (-> obj y-rot)))) + (set! (-> obj y-rot) (deg- (vector-y-angle s4-0) (quaternion-y-angle (-> obj root quat)))) + (quaternion-rotate-local-y! (-> obj root quat) (-> obj root quat) (* (-> obj y-rot) (seconds-per-frame))) + (vector-v*float+! (-> obj root trans) (-> obj root trans) s5-1 8954.266) + ) + (seek! (-> obj root trans y) 4096.0 (* 4096.0 (seconds-per-frame))) + (when (= obj *debug-actor*) + (format *stdcon* "no physics~%") + (format *stdcon* "~M~%" (-> obj root trans y)) + ) + ) + (if (= obj *debug-actor*) + (format *stdcon* "speed ~M~%" (vector-length (-> obj root transv))) + ) + (let ((s4-2 (ppointer->process (-> obj parent))) + (s5-2 (new 'stack-no-clear 'vector)) + ) + (when s4-2 + (let ((a1-24 (-> obj nav state))) + (set! (-> s5-2 quad) (-> a1-24 target-post quad)) + ) + (when (< (vector-vector-xz-distance (-> obj root trans) s5-2) 163840.0) + (+! (-> obj path-index) 0.01) + (let ((f0-22 (-> obj path-index))) + (set! (-> obj path-index) (- f0-22 (* (the float (the int (/ f0-22 1.0))) 1.0))) + ) + ) + (get-point-at-percent-along-path! + (-> (the-as boat-manager (+ (* (-> obj path-num) 4) (the-as uint s4-2))) paths 0) + s5-2 + (-> obj path-index) + 'interp + ) + (let ((v1-76 (-> obj nav state))) + (logclear! (-> v1-76 flags) (nav-state-flag directional-mode)) + (logior! (-> v1-76 flags) (nav-state-flag target-poly-dirty)) + (set! (-> v1-76 target-post quad) (-> s5-2 quad)) + ) + 0 + ) + ) + (draw-thrusters obj) + (none) ) ;; definition for method 29 of type boat-base diff --git a/test/decompiler/reference/jak2/levels/city/ctywide-obs_REF.gc b/test/decompiler/reference/jak2/levels/city/ctywide-obs_REF.gc index 0f05ae73dd..06df90b9a5 100644 --- a/test/decompiler/reference/jak2/levels/city/ctywide-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/ctywide-obs_REF.gc @@ -1898,124 +1898,114 @@ This commonly includes things such as: ;; INFO: Used lq/sq (defmethod cty-guard-turret-method-35 cty-guard-turret ((obj cty-guard-turret)) (local-vars (sv-192 vector)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (let ((s5-0 (handle->process (-> obj focus handle)))) - (when s5-0 - (let ((s4-0 (new 'stack-no-clear 'vector))) - (set! (-> s4-0 quad) (-> (get-trans (the-as process-focusable s5-0) 3) quad)) - (let ((s0-0 (new 'stack-no-clear 'vector))) - (let ((v1-8 (-> obj root trans))) - (let ((a0-5 *y-vector*)) - (let ((a1-3 10240.0)) - (.mov vf7 a1-3) - ) - (.lvf vf5 (&-> a0-5 quad)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (handle->process (-> obj focus handle)))) + (when s5-0 + (let ((s4-0 (new 'stack-no-clear 'vector))) + (set! (-> s4-0 quad) (-> (get-trans (the-as process-focusable s5-0) 3) quad)) + (let ((s0-0 (new 'stack-no-clear 'vector))) + (let ((v1-8 (-> obj root trans))) + (let ((a0-5 *y-vector*)) + (let ((a1-3 10240.0)) + (.mov vf7 a1-3) ) - (.lvf vf4 (&-> v1-8 quad)) + (.lvf vf5 (&-> a0-5 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> s0-0 quad) vf6) - (let ((f30-0 (vector-vector-xz-distance s4-0 s0-0))) - (let ((f0-2 (* 0.0000012207031 f30-0)) - (a0-7 s4-0) - ) - (let ((v1-10 s4-0)) - (let ((a1-6 (-> (the-as process-focusable s5-0) root transv))) - (let ((a2-0 f0-2)) - (.mov vf7 a2-0) - ) - (.lvf vf5 (&-> a1-6 quad)) - ) - (.lvf vf4 (&-> v1-10 quad)) + (.lvf vf4 (&-> v1-8 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> s0-0 quad) vf6) + (let ((f30-0 (vector-vector-xz-distance s4-0 s0-0))) + (let ((f0-2 (* 0.0000012207031 f30-0)) + (a0-7 s4-0) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a0-7 quad) vf6) - ) - (let ((s3-1 (vector-! (new 'stack-no-clear 'vector) s4-0 s0-0)) - (s1-0 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) + (let ((v1-10 s4-0)) + (let ((a1-6 (-> (the-as process-focusable s5-0) root transv))) + (let ((a2-0 f0-2)) + (.mov vf7 a2-0) ) - (set! sv-192 (new 'stack-no-clear 'vector)) - (let ((s2-0 (new 'stack-no-clear 'vector))) - (-> obj node-list data 6 bone transform) - (-> obj node-list data 7 bone transform) - (-> obj node-list data 8 bone transform) - (vector-rotate90-around-y! sv-192 s3-1) - (set! (-> sv-192 y) 0.0) - (vector-normalize! sv-192 1.0) - (let* ((f26-0 (vector-vector-xz-distance-squared s0-0 s4-0)) - (f0-4 7389.184) - (f28-0 (* f0-4 f0-4)) - (t9-6 vector-vector-xz-distance-squared) - (a0-13 (new 'stack-no-clear 'vector)) + (.lvf vf5 (&-> a1-6 quad)) + ) + (.lvf vf4 (&-> v1-10 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a0-7 quad) vf6) + ) + (let ((s3-1 (vector-! (new 'stack-no-clear 'vector) s4-0 s0-0)) + (s1-0 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) + ) + (set! sv-192 (new 'stack-no-clear 'vector)) + (let ((s2-0 (new 'stack-no-clear 'vector))) + (-> obj node-list data 6 bone transform) + (-> obj node-list data 7 bone transform) + (-> obj node-list data 8 bone transform) + (vector-rotate90-around-y! sv-192 s3-1) + (set! (-> sv-192 y) 0.0) + (vector-normalize! sv-192 1.0) + (let* ((f26-0 (vector-vector-xz-distance-squared s0-0 s4-0)) + (f0-4 7389.184) + (f28-0 (* f0-4 f0-4)) + (t9-6 vector-vector-xz-distance-squared) + (a0-13 (new 'stack-no-clear 'vector)) + ) + (let ((v1-27 7389.184)) + (.mov vf7 v1-27) + ) + (.lvf vf5 (&-> sv-192 quad)) + (.lvf vf4 (&-> s0-0 quad)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a0-13 quad) vf6) + (let* ((f2-0 (t9-6 a0-13 s4-0)) + (f28-1 (acos (fmax -1.0 (fmin 1.0 (/ (- (- f26-0 f28-0) f2-0) (* -2.0 (sqrtf f2-0) (sqrtf f28-0))))))) ) - (let ((v1-27 7389.184)) - (.mov vf7 v1-27) - ) - (.lvf vf5 (&-> sv-192 quad)) - (.lvf vf4 (&-> s0-0 quad)) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a0-13 quad) vf6) - (let* ((f2-0 (t9-6 a0-13 s4-0)) - (f28-1 (acos (fmax -1.0 (fmin 1.0 (/ (- (- f26-0 f28-0) f2-0) (* -2.0 (sqrtf f2-0) (sqrtf f28-0))))))) - ) - (let ((s0-1 (new 'stack-no-clear 'vector)) - (s4-1 (new 'stack-no-clear 'vector)) - ) - (if (< f28-1 11832.889) - (set! f28-1 11832.889) - ) - (rot-zxy-from-vector! s0-1 s1-0) - (rot-zxy-from-vector! s2-0 s3-1) - (set! (-> s4-1 x) (deg- (-> s2-0 x) (-> s0-1 x))) - (set! (-> s4-1 y) (deg- (-> s2-0 y) (-> s0-1 y))) - (cond - ((focus-test? (the-as process-focusable s5-0) pilot) - (set! (-> obj angle-turret) - (deg-seek (-> obj angle-turret) (-> s4-1 y) (* 36408.89 (-> pp clock seconds-per-frame))) - ) - (set! (-> obj angle-guns) - (deg-seek (-> obj angle-guns) (-> s4-1 x) (* 7281.778 (-> pp clock seconds-per-frame))) - ) - ) - (else - (set! (-> obj angle-turret) - (deg-seek (-> obj angle-turret) (-> s4-1 y) (* 18204.445 (-> pp clock seconds-per-frame))) - ) - (set! (-> obj angle-guns) - (deg-seek (-> obj angle-guns) (-> s4-1 x) (* 7281.778 (-> pp clock seconds-per-frame))) - ) - ) + (let ((s0-1 (new 'stack-no-clear 'vector)) + (s4-1 (new 'stack-no-clear 'vector)) ) - (quaternion-axis-angle! (-> obj jm-turret quat) 0.0 1.0 0.0 (-> obj angle-turret)) - (when (= (+ (fabs (- (-> obj angle-turret) (-> s4-1 y))) (fabs (- (-> obj angle-guns) (-> s4-1 x)))) 0.0) - (set! (-> obj next-time-shot) (+ (current-time) (seconds 1))) - (set! (-> obj num-shots) (the-as uint 0)) - 0 + (if (< f28-1 11832.889) + (set! f28-1 11832.889) + ) + (rot-zxy-from-vector! s0-1 s1-0) + (rot-zxy-from-vector! s2-0 s3-1) + (set! (-> s4-1 x) (deg- (-> s2-0 x) (-> s0-1 x))) + (set! (-> s4-1 y) (deg- (-> s2-0 y) (-> s0-1 y))) + (cond + ((focus-test? (the-as process-focusable s5-0) pilot) + (set! (-> obj angle-turret) (deg-seek (-> obj angle-turret) (-> s4-1 y) (* 36408.89 (seconds-per-frame)))) + (set! (-> obj angle-guns) (deg-seek (-> obj angle-guns) (-> s4-1 x) (* 7281.778 (seconds-per-frame)))) + ) + (else + (set! (-> obj angle-turret) (deg-seek (-> obj angle-turret) (-> s4-1 y) (* 18204.445 (seconds-per-frame)))) + (set! (-> obj angle-guns) (deg-seek (-> obj angle-guns) (-> s4-1 x) (* 7281.778 (seconds-per-frame)))) ) ) - (let ((s5-1 (new 'stack-no-clear 'quaternion))) - (let ((f0-42 (/ 45511.11 (* 0.00024414062 f30-0)))) - (quaternion-axis-angle! s5-1 1.0 0.0 0.0 (fmax (fmin (-> obj angle-guns) f0-42) (- f0-42))) - ) - (quaternion*! - (-> obj jm-gunsL quat) - (quaternion-axis-angle! (new 'stack-no-clear 'quaternion) 0.0 1.0 0.0 (+ -16384.0 f28-1)) - s5-1 - ) + (quaternion-axis-angle! (-> obj jm-turret quat) 0.0 1.0 0.0 (-> obj angle-turret)) + (when (= (+ (fabs (- (-> obj angle-turret) (-> s4-1 y))) (fabs (- (-> obj angle-guns) (-> s4-1 x)))) 0.0) + (set! (-> obj next-time-shot) (+ (current-time) (seconds 1))) + (set! (-> obj num-shots) (the-as uint 0)) + 0 + ) + ) + (let ((s5-1 (new 'stack-no-clear 'quaternion))) + (let ((f0-42 (/ 45511.11 (* 0.00024414062 f30-0)))) + (quaternion-axis-angle! s5-1 1.0 0.0 0.0 (fmax (fmin (-> obj angle-guns) f0-42) (- f0-42))) + ) + (quaternion*! + (-> obj jm-gunsL quat) + (quaternion-axis-angle! (new 'stack-no-clear 'quaternion) 0.0 1.0 0.0 (+ -16384.0 f28-1)) + s5-1 ) ) ) @@ -2024,8 +2014,8 @@ This commonly includes things such as: ) ) ) - (quaternion-copy! (-> obj jm-gunsR quat) (-> obj jm-gunsL quat)) ) + (quaternion-copy! (-> obj jm-gunsR quat) (-> obj jm-gunsL quat)) ) ) ) @@ -2904,7 +2894,7 @@ This commonly includes things such as: (set! (-> self y-rot) (deg-seek (-> self y-rot) (deg- (vector-y-angle s4-0) (quaternion-y-angle (-> self root quat))) - (* 36408.89 (-> self clock seconds-per-frame)) + (* 36408.89 (seconds-per-frame)) ) ) ) @@ -4363,9 +4353,7 @@ This commonly includes things such as: :post (behavior () (if (< 0.0 (-> self angle)) (set! (-> self angle) - (- (-> self angle) - (* 6.0 (-> self clock seconds-per-frame) (fmax 1820.4445 (fmin (-> self angle) (-> self angle)))) - ) + (- (-> self angle) (* 6.0 (seconds-per-frame) (fmax 1820.4445 (fmin (-> self angle) (-> self angle))))) ) (set! (-> self angle) 0.0) ) diff --git a/test/decompiler/reference/jak2/levels/city/farm/ctyfarma-part_REF.gc b/test/decompiler/reference/jak2/levels/city/farm/ctyfarma-part_REF.gc index 235fe487c5..b239bc0971 100644 --- a/test/decompiler/reference/jak2/levels/city/farm/ctyfarma-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/farm/ctyfarma-part_REF.gc @@ -137,22 +137,8 @@ (if (< (vector-vector-distance (camera-pos) s3-0) 204800.0) (sound-play "dirt-drips" :position s3-0) ) - (let ((t9-5 sp-launch-particles-var) - (a0-7 *sp-particle-system-2d*) - (a1-4 (-> *part-id-table* 4495)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-5 a0-7 a1-4 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-6 sp-launch-particles-var) - (a0-8 *sp-particle-system-3d*) - (a1-5 (-> *part-id-table* 4496)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-0 quad)) - (t9-6 a0-8 a1-5 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4495) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 4496) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/test/decompiler/reference/jak2/levels/city/farm/ctyfarmb-part_REF.gc b/test/decompiler/reference/jak2/levels/city/farm/ctyfarmb-part_REF.gc index 69e36ed835..021889db2e 100644 --- a/test/decompiler/reference/jak2/levels/city/farm/ctyfarmb-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/farm/ctyfarmb-part_REF.gc @@ -137,22 +137,8 @@ (if (< (vector-vector-distance (camera-pos) s3-0) 204800.0) (sound-play "dirt-drips" :position s3-0) ) - (let ((t9-5 sp-launch-particles-var) - (a0-7 *sp-particle-system-2d*) - (a1-4 (-> *part-id-table* 4503)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-5 a0-7 a1-4 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-6 sp-launch-particles-var) - (a0-8 *sp-particle-system-3d*) - (a1-5 (-> *part-id-table* 4504)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-0 quad)) - (t9-6 a0-8 a1-5 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4503) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 4504) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/test/decompiler/reference/jak2/levels/city/kiddogescort/crocesc-states_REF.gc b/test/decompiler/reference/jak2/levels/city/kiddogescort/crocesc-states_REF.gc index b40b8b596a..dbc4e5ba9f 100644 --- a/test/decompiler/reference/jak2/levels/city/kiddogescort/crocesc-states_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/kiddogescort/crocesc-states_REF.gc @@ -609,7 +609,7 @@ (let* ((f0-2 (* (vector-vector-distance (-> self root trans) gp-0) (-> self clock frames-per-second))) (f0-3 (lerp-scale 0.3 1.2 f0-2 0.0 81920.0)) ) - (seek! (-> self anim-speed) f0-3 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self anim-speed) f0-3 (* 2.0 (seconds-per-frame))) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/city/kiddogescort/crocesc_REF.gc b/test/decompiler/reference/jak2/levels/city/kiddogescort/crocesc_REF.gc index 02dc183a18..ee4038fdf9 100644 --- a/test/decompiler/reference/jak2/levels/city/kiddogescort/crocesc_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/kiddogescort/crocesc_REF.gc @@ -609,7 +609,7 @@ This commonly includes things such as: (with-pp (let ((f30-0 (-> obj nav state speed))) (let ((f0-1 (lerp-scale 0.0 1.0 f30-0 9011.2 28672.0))) - (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (-> pp clock seconds-per-frame))) + (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (seconds-per-frame))) ) (let ((f28-0 (-> obj travel-anim-interp)) (v1-7 (if (> (-> obj skel active-channels) 0) diff --git a/test/decompiler/reference/jak2/levels/city/kiddogescort/kidesc-states_REF.gc b/test/decompiler/reference/jak2/levels/city/kiddogescort/kidesc-states_REF.gc index 63934d1974..777d5f1266 100644 --- a/test/decompiler/reference/jak2/levels/city/kiddogescort/kidesc-states_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/kiddogescort/kidesc-states_REF.gc @@ -527,9 +527,9 @@ (if (< 0.0 f0-4) (set! f22-0 (/ (fabs (-> gp-0 front-back-interp)) f0-4)) ) - (set! f30-0 (seek f30-0 f20-0 (* 4.0 (-> self clock seconds-per-frame)))) - (set! f28-0 (seek f28-0 f24-0 (* 4.0 (-> self clock seconds-per-frame)))) - (set! f26-0 (seek f26-0 f22-0 (* 4.0 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 f20-0 (* 4.0 (seconds-per-frame)))) + (set! f28-0 (seek f28-0 f24-0 (* 4.0 (seconds-per-frame)))) + (set! f26-0 (seek f26-0 f22-0 (* 4.0 (seconds-per-frame)))) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/city/kiosk/kiosk-part_REF.gc b/test/decompiler/reference/jak2/levels/city/kiosk/kiosk-part_REF.gc index 4fbcc35c6d..19925b88d4 100644 --- a/test/decompiler/reference/jak2/levels/city/kiosk/kiosk-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/kiosk/kiosk-part_REF.gc @@ -212,22 +212,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 4562)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-2d*) - (a1-4 (-> *part-id-table* 4563)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-3 a0-5 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4562) gp-0) + (launch-particles (-> *part-id-table* 4563) gp-0) ) ) (none) diff --git a/test/decompiler/reference/jak2/levels/city/market/ashelin/ctyasha-obs_REF.gc b/test/decompiler/reference/jak2/levels/city/market/ashelin/ctyasha-obs_REF.gc index ad89af39ad..bbf0bf046f 100644 --- a/test/decompiler/reference/jak2/levels/city/market/ashelin/ctyasha-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/market/ashelin/ctyasha-obs_REF.gc @@ -1014,7 +1014,7 @@ ) ) (let* ((f0-0 (-> self root scale x)) - (f0-3 (seek f0-0 1.0 (* 1.5 (-> self clock seconds-per-frame)))) + (f0-3 (seek f0-0 1.0 (* 1.5 (seconds-per-frame)))) ) (set-vector! (-> self root scale) f0-3 f0-3 f0-3 1.0) ) @@ -1138,7 +1138,7 @@ ) ) (let* ((f0-0 (-> self root scale x)) - (f0-3 (seek f0-0 1.0 (* 1.15 (-> self clock seconds-per-frame)))) + (f0-3 (seek f0-0 1.0 (* 1.15 (seconds-per-frame)))) ) (set-vector! (-> self root scale) f0-3 f0-3 f0-3 1.0) ) diff --git a/test/decompiler/reference/jak2/levels/city/meet-brutter/meet-brutter_REF.gc b/test/decompiler/reference/jak2/levels/city/meet-brutter/meet-brutter_REF.gc index 8c34862e5e..2003f845d0 100644 --- a/test/decompiler/reference/jak2/levels/city/meet-brutter/meet-brutter_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/meet-brutter/meet-brutter_REF.gc @@ -992,7 +992,7 @@ :frame-num (lerp-scale 0.0 2.0 (+ (* -2.0 f30-0 f30-0 f30-0) (* 3.0 f30-0 f30-0)) 0.0 1.0) ) (suspend) - (+! f30-0 (* 4.0 (-> self clock seconds-per-frame))) + (+! f30-0 (* 4.0 (seconds-per-frame))) ) ) (let ((s5-2 (new 'stack-no-clear 'vector))) @@ -1161,18 +1161,15 @@ (gp-0 (rigid-body-method-22 (-> v1-30 state) a1-10 a2-1)) ) (vector-inv-orient-by-quat! gp-0 gp-0 (-> self root quat)) - (seek! (-> self v-speed x) (-> gp-0 x) (* 81920.0 (-> self clock seconds-per-frame))) - (seek! (-> self v-speed z) (-> gp-0 z) (* 49152.0 (-> self clock seconds-per-frame))) + (seek! (-> self v-speed x) (-> gp-0 x) (* 81920.0 (seconds-per-frame))) + (seek! (-> self v-speed z) (-> gp-0 z) (* 49152.0 (seconds-per-frame))) (set! (-> self left-right-interp) (fmax 0.0 (fmin 2.0 (+ (-> self left-right-interp) - (* 8.0 - (- (lerp-scale 0.0 2.0 (-> gp-0 x) -20480.0 20480.0) (-> self left-right-interp)) - (-> self clock seconds-per-frame) - ) + (* 8.0 (- (lerp-scale 0.0 2.0 (-> gp-0 x) -20480.0 20480.0) (-> self left-right-interp)) (seconds-per-frame)) ) ) ) @@ -1185,7 +1182,7 @@ (+ (-> self front-back-interp) (* 8.0 (- (lerp-scale 0.0 2.0 (- (-> self v-speed z) (-> gp-0 z)) -16384.0 16384.0) (-> self front-back-interp)) - (-> self clock seconds-per-frame) + (seconds-per-frame) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/city/onintent/onin-game_REF.gc b/test/decompiler/reference/jak2/levels/city/onintent/onin-game_REF.gc index 7262fc0ad8..82369f0d0c 100644 --- a/test/decompiler/reference/jak2/levels/city/onintent/onin-game_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/onintent/onin-game_REF.gc @@ -2112,7 +2112,7 @@ (none) ) :post (behavior () - (+! (-> self root transv y) (* (-> self gravity) (-> self clock seconds-per-frame))) + (+! (-> self root transv y) (* (-> self gravity) (seconds-per-frame))) (set! (-> self root transv x) (* 0.999 (-> self root transv x))) (vector-v+! (-> self root trans) (-> self root trans) (-> self root transv)) (spawn (-> self part) (-> self root trans)) diff --git a/test/decompiler/reference/jak2/levels/city/package/delivery-task_REF.gc b/test/decompiler/reference/jak2/levels/city/package/delivery-task_REF.gc index 156391963e..ebc5147867 100644 --- a/test/decompiler/reference/jak2/levels/city/package/delivery-task_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/package/delivery-task_REF.gc @@ -76,7 +76,7 @@ (cond (gp-0 (when (focus-test? (the-as process-focusable gp-0) dead) - (seek! (-> self scale) 0.0 (* 0.5 (-> self clock seconds-per-frame))) + (seek! (-> self scale) 0.0 (* 0.5 (seconds-per-frame))) (if (= (-> self scale) 0.0) (go-virtual die) ) diff --git a/test/decompiler/reference/jak2/levels/city/palace/ctypal-part_REF.gc b/test/decompiler/reference/jak2/levels/city/palace/ctypal-part_REF.gc index 41274c9db2..d4d4f97bab 100644 --- a/test/decompiler/reference/jak2/levels/city/palace/ctypal-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/palace/ctypal-part_REF.gc @@ -307,30 +307,9 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 4527)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 4528)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-3d*) - (a1-4 (-> *part-id-table* 4529)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-0 quad)) - (t9-3 a0-5 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4527) s3-0) + (launch-particles (-> *part-id-table* 4528) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 4529) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/test/decompiler/reference/jak2/levels/city/port/ctyport-part_REF.gc b/test/decompiler/reference/jak2/levels/city/port/ctyport-part_REF.gc index 13d721b8a1..cd72db8b6b 100644 --- a/test/decompiler/reference/jak2/levels/city/port/ctyport-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/port/ctyport-part_REF.gc @@ -241,30 +241,9 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 4159)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 4160)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-3d*) - (a1-4 (-> *part-id-table* 4161)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-0 quad)) - (t9-3 a0-5 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4159) s3-0) + (launch-particles (-> *part-id-table* 4160) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 4161) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/test/decompiler/reference/jak2/levels/city/port/portrun/portrun_REF.gc b/test/decompiler/reference/jak2/levels/city/port/portrun/portrun_REF.gc index 07c32cbb76..26ed2b5f7a 100644 --- a/test/decompiler/reference/jak2/levels/city/port/portrun/portrun_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/port/portrun/portrun_REF.gc @@ -929,104 +929,102 @@ ;; definition for method 23 of type ctyport-mine ;; WARN: Return type mismatch float vs none. (defmethod ctyport-mine-method-23 ctyport-mine ((obj ctyport-mine)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (get-base-height *ocean-map-city*) - (let ((f0-1 (-> obj period)) - (t9-1 sin-rad) - (f1-0 -3.1415925) - (f2-0 6.283185) - (f3-1 (the float (+ (current-time) (the-as time-frame (-> obj time-skew))))) - ) - (t9-1 (+ f1-0 (* f2-0 (/ (- f3-1 (* (the float (the int (/ f3-1 f0-1))) f0-1)) f0-1)))) - ) - (let ((s5-0 (-> obj info))) - (cond - ((zero? (-> obj info type)) - (let* ((f0-8 (+ (* 2.0 (-> s5-0 offset)) (/ (* 0.0033333334 (the float (current-time))) (-> s5-0 speed)))) - (f0-9 (- f0-8 (* (the float (the int (/ f0-8 2.0))) 2.0))) - ) - (if (< 1.0 f0-9) - (set! f0-9 (- 2.0 f0-9)) - ) - (let ((f0-13 (* 0.5 (- 1.0 (cos (* 32768.0 f0-9)))))) - (let ((v1-23 (-> obj root trans)) - (a0-5 (new 'stack-no-clear 'vector)) - ) - (set! (-> a0-5 x) (-> s5-0 pos1-x)) - (set! (-> a0-5 y) (-> s5-0 pos1-y)) - (set! (-> a0-5 z) (-> s5-0 pos1-z)) - (set! (-> a0-5 w) 1.0) - (vector-float*! v1-23 a0-5 f0-13) - ) - (let ((s4-0 (-> obj root trans))) - (let ((v1-27 (-> obj root trans))) - (let ((a0-6 (new 'stack-no-clear 'vector))) - (set! (-> a0-6 x) (-> s5-0 pos2-x)) - (set! (-> a0-6 y) (-> s5-0 pos2-y)) - (set! (-> a0-6 z) (-> s5-0 pos2-z)) - (set! (-> a0-6 w) 1.0) - (let ((a1-3 (- 1.0 f0-13))) - (.mov vf7 a1-3) - ) - (.lvf vf5 (&-> a0-6 quad)) - ) - (.lvf vf4 (&-> v1-27 quad)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (get-base-height *ocean-map-city*) + (let ((f0-1 (-> obj period)) + (t9-1 sin-rad) + (f1-0 -3.1415925) + (f2-0 6.283185) + (f3-1 (the float (+ (current-time) (the-as time-frame (-> obj time-skew))))) + ) + (t9-1 (+ f1-0 (* f2-0 (/ (- f3-1 (* (the float (the int (/ f3-1 f0-1))) f0-1)) f0-1)))) + ) + (let ((s5-0 (-> obj info))) + (cond + ((zero? (-> obj info type)) + (let* ((f0-8 (+ (* 2.0 (-> s5-0 offset)) (/ (* 0.0033333334 (the float (current-time))) (-> s5-0 speed)))) + (f0-9 (- f0-8 (* (the float (the int (/ f0-8 2.0))) 2.0))) + ) + (if (< 1.0 f0-9) + (set! f0-9 (- 2.0 f0-9)) + ) + (let ((f0-13 (* 0.5 (- 1.0 (cos (* 32768.0 f0-9)))))) + (let ((v1-23 (-> obj root trans)) + (a0-5 (new 'stack-no-clear 'vector)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> s4-0 quad) vf6) + (set! (-> a0-5 x) (-> s5-0 pos1-x)) + (set! (-> a0-5 y) (-> s5-0 pos1-y)) + (set! (-> a0-5 z) (-> s5-0 pos1-z)) + (set! (-> a0-5 w) 1.0) + (vector-float*! v1-23 a0-5 f0-13) + ) + (let ((s4-0 (-> obj root trans))) + (let ((v1-27 (-> obj root trans))) + (let ((a0-6 (new 'stack-no-clear 'vector))) + (set! (-> a0-6 x) (-> s5-0 pos2-x)) + (set! (-> a0-6 y) (-> s5-0 pos2-y)) + (set! (-> a0-6 z) (-> s5-0 pos2-z)) + (set! (-> a0-6 w) 1.0) + (let ((a1-3 (- 1.0 f0-13))) + (.mov vf7 a1-3) + ) + (.lvf vf5 (&-> a0-6 quad)) + ) + (.lvf vf4 (&-> v1-27 quad)) ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> s4-0 quad) vf6) ) ) ) - (else - (let ((s4-1 (-> obj root trans))) - (let ((s3-0 (new 'stack-no-clear 'vector))) - (set! (-> s3-0 x) (-> s5-0 pos1-x)) - (set! (-> s3-0 y) (-> s5-0 pos1-y)) - (set! (-> s3-0 z) (-> s5-0 pos1-z)) - (set! (-> s3-0 w) 1.0) - (let ((v1-35 - (vector-rotate-around-y! - (new 'stack-no-clear 'vector) - *x-vector* - (+ (* 182.04445 (* 360.0 (-> s5-0 offset))) (* 0.60681486 (-> s5-0 speed) (the float (current-time)))) - ) + ) + (else + (let ((s4-1 (-> obj root trans))) + (let ((s3-0 (new 'stack-no-clear 'vector))) + (set! (-> s3-0 x) (-> s5-0 pos1-x)) + (set! (-> s3-0 y) (-> s5-0 pos1-y)) + (set! (-> s3-0 z) (-> s5-0 pos1-z)) + (set! (-> s3-0 w) 1.0) + (let ((v1-35 + (vector-rotate-around-y! + (new 'stack-no-clear 'vector) + *x-vector* + (+ (* 182.04445 (* 360.0 (-> s5-0 offset))) (* 0.60681486 (-> s5-0 speed) (the float (current-time)))) ) ) - (let ((a0-8 (-> s5-0 pos2-x))) - (.mov vf7 a0-8) ) - (.lvf vf5 (&-> v1-35 quad)) + (let ((a0-8 (-> s5-0 pos2-x))) + (.mov vf7 a0-8) ) - (.lvf vf4 (&-> s3-0 quad)) + (.lvf vf5 (&-> v1-35 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> s4-1 quad) vf6) + (.lvf vf4 (&-> s3-0 quad)) ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> s4-1 quad) vf6) ) ) ) - (+! (-> obj speed-y) - (* 10.0 (-> pp clock seconds-per-frame) (- (get-height *ocean* (-> obj root trans) #t) (-> obj trans-y))) - ) - (set! (-> obj speed-y) (- (-> obj speed-y) (* (-> obj speed-y) (-> pp clock seconds-per-frame)))) - (set! (-> obj speed-y) (- (-> obj speed-y) (* 4096.0 (-> pp clock seconds-per-frame)))) - (+! (-> obj trans-y) (* (-> obj speed-y) (-> pp clock seconds-per-frame))) - (set! (-> obj root trans y) (+ 2048.0 (-> obj trans-y))) - (none) ) + (+! (-> obj speed-y) + (* 10.0 (seconds-per-frame) (- (get-height *ocean* (-> obj root trans) #t) (-> obj trans-y))) + ) + (set! (-> obj speed-y) (- (-> obj speed-y) (* (-> obj speed-y) (seconds-per-frame)))) + (set! (-> obj speed-y) (- (-> obj speed-y) (* 4096.0 (seconds-per-frame)))) + (+! (-> obj trans-y) (* (-> obj speed-y) (seconds-per-frame))) + (set! (-> obj root trans y) (+ 2048.0 (-> obj trans-y))) + (none) ) ) @@ -1051,7 +1049,7 @@ :post (behavior () (cond ((and (-> self beep) (< (- (current-time) (-> self state-time)) (seconds 1))) - (vector-seek! (-> self beep-color) *null-vector* (* 4.0 (-> self clock seconds-per-frame))) + (vector-seek! (-> self beep-color) *null-vector* (* 4.0 (seconds-per-frame))) (when (< (-> self beep-time) (current-time)) (sound-play "cargo-beep") (set-vector! (-> self beep-color) 1.0 1.0 1.0 1.0) @@ -1150,9 +1148,9 @@ (none) ) :post (behavior () - (set! (-> self speed-y) (- (-> self speed-y) (* (-> self speed-y) (-> self clock seconds-per-frame)))) - (set! (-> self speed-y) (- (-> self speed-y) (* (-> self acc-y) (-> self clock seconds-per-frame)))) - (+! (-> self trans-y) (* (-> self speed-y) (-> self clock seconds-per-frame))) + (set! (-> self speed-y) (- (-> self speed-y) (* (-> self speed-y) (seconds-per-frame)))) + (set! (-> self speed-y) (- (-> self speed-y) (* (-> self acc-y) (seconds-per-frame)))) + (+! (-> self trans-y) (* (-> self speed-y) (seconds-per-frame))) (set! (-> self root trans y) (+ 2048.0 (-> self trans-y))) (transform-post) (none) @@ -1310,8 +1308,8 @@ ) :trans (behavior () (when (>= (- (current-time) (-> self state-time)) (seconds 0.3)) - (+! (-> self trans-y) (* (-> self root transv y) (-> self clock seconds-per-frame))) - (+! (-> self root transv y) (* -8.0 (-> self clock seconds-per-frame) (-> self root transv y))) + (+! (-> self trans-y) (* (-> self root transv y) (seconds-per-frame))) + (+! (-> self root transv y) (* -8.0 (seconds-per-frame) (-> self root transv y))) (set! (-> self root trans y) (+ (-> self trans-y) (* 1024.0 (+ (sin (* 182.04445 (* 50.0 (+ 10.0 (* 0.0033333334 (the float (current-time))))))) @@ -1557,11 +1555,11 @@ ) :trans (behavior () (+! (-> self speed-y) - (* 10.0 (-> self clock seconds-per-frame) (- (get-height *ocean* (-> self root trans) #t) (-> self trans-y))) + (* 10.0 (seconds-per-frame) (- (get-height *ocean* (-> self root trans) #t) (-> self trans-y))) ) - (set! (-> self speed-y) (- (-> self speed-y) (* (-> self speed-y) (-> self clock seconds-per-frame)))) - (set! (-> self speed-y) (- (-> self speed-y) (* 409.6 (-> self clock seconds-per-frame)))) - (+! (-> self trans-y) (* (-> self speed-y) (-> self clock seconds-per-frame))) + (set! (-> self speed-y) (- (-> self speed-y) (* (-> self speed-y) (seconds-per-frame)))) + (set! (-> self speed-y) (- (-> self speed-y) (* 409.6 (seconds-per-frame)))) + (+! (-> self trans-y) (* (-> self speed-y) (seconds-per-frame))) (set! (-> self root trans y) (-> self trans-y)) (none) ) diff --git a/test/decompiler/reference/jak2/levels/city/shuttle/shuttle_REF.gc b/test/decompiler/reference/jak2/levels/city/shuttle/shuttle_REF.gc index 2f62a6e532..a867dad7e0 100644 --- a/test/decompiler/reference/jak2/levels/city/shuttle/shuttle_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/shuttle/shuttle_REF.gc @@ -633,7 +633,7 @@ :frame-num (lerp-scale 0.0 2.0 (+ (* -2.0 f28-0 f28-0 f28-0) (* 3.0 f28-0 f28-0)) 0.0 1.0) ) (suspend) - (+! f28-0 (-> self clock seconds-per-frame)) + (+! f28-0 (seconds-per-frame)) ) ) (ja-channel-push! 1 (seconds 0.1)) @@ -800,7 +800,7 @@ :frame-num (lerp-scale 0.0 2.0 (+ (* -2.0 f28-0 f28-0 f28-0) (* 3.0 f28-0 f28-0)) 0.0 1.0) ) (suspend) - (+! f28-0 (-> self clock seconds-per-frame)) + (+! f28-0 (seconds-per-frame)) ) ) (ja-channel-push! 1 (seconds 0.1)) diff --git a/test/decompiler/reference/jak2/levels/city/slums/ctysluma-part_REF.gc b/test/decompiler/reference/jak2/levels/city/slums/ctysluma-part_REF.gc index 69e9b2d1cc..2b1826ffad 100644 --- a/test/decompiler/reference/jak2/levels/city/slums/ctysluma-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/slums/ctysluma-part_REF.gc @@ -665,14 +665,7 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 3718)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 3718) s3-0) ) ) (sparticle-motion-blur arg0 arg1 arg2) diff --git a/test/decompiler/reference/jak2/levels/city/slums/ctyslumb-part_REF.gc b/test/decompiler/reference/jak2/levels/city/slums/ctyslumb-part_REF.gc index 3915851c2d..af0f624320 100644 --- a/test/decompiler/reference/jak2/levels/city/slums/ctyslumb-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/slums/ctyslumb-part_REF.gc @@ -1208,14 +1208,7 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 3890)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 3890) s3-0) ) ) (sparticle-motion-blur arg0 arg1 arg2) diff --git a/test/decompiler/reference/jak2/levels/city/slums/kor/kid_REF.gc b/test/decompiler/reference/jak2/levels/city/slums/kor/kid_REF.gc index ab44f22f4a..8d6a9beeb9 100644 --- a/test/decompiler/reference/jak2/levels/city/slums/kor/kid_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/slums/kor/kid_REF.gc @@ -533,7 +533,7 @@ (with-pp (let ((f30-0 (-> obj nav state speed))) (let ((f0-1 (lerp-scale 0.0 1.0 f30-0 6144.0 22528.0))) - (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (-> pp clock seconds-per-frame))) + (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (seconds-per-frame))) ) (let ((f28-0 (-> obj travel-anim-interp)) (v1-7 (if (> (-> obj skel active-channels) 0) diff --git a/test/decompiler/reference/jak2/levels/city/slums/kor/kor_REF.gc b/test/decompiler/reference/jak2/levels/city/slums/kor/kor_REF.gc index 2185bacd11..f883b77e35 100644 --- a/test/decompiler/reference/jak2/levels/city/slums/kor/kor_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/slums/kor/kor_REF.gc @@ -549,7 +549,7 @@ (with-pp (let ((f30-0 (-> obj nav state speed))) (let ((f0-1 (lerp-scale 0.0 1.0 f30-0 6144.0 20889.6))) - (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (-> pp clock seconds-per-frame))) + (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (seconds-per-frame))) ) (let ((f28-0 (-> obj travel-anim-interp)) (v1-7 (if (> (-> obj skel active-channels) 0) diff --git a/test/decompiler/reference/jak2/levels/city/traffic/citizen/citizen-fat_REF.gc b/test/decompiler/reference/jak2/levels/city/traffic/citizen/citizen-fat_REF.gc index 51b26b5a15..6f7c2af2b4 100644 --- a/test/decompiler/reference/jak2/levels/city/traffic/citizen/citizen-fat_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/traffic/citizen/citizen-fat_REF.gc @@ -540,7 +540,7 @@ :frame-num (lerp-scale 0.0 2.0 (+ (* -2.0 f28-0 f28-0 f28-0) (* 3.0 f28-0 f28-0)) 0.0 1.0) ) (suspend) - (+! f28-0 (-> self clock seconds-per-frame)) + (+! f28-0 (seconds-per-frame)) ) ) (ja-channel-push! 1 (seconds 0.1)) diff --git a/test/decompiler/reference/jak2/levels/city/traffic/citizen/citizen-norm_REF.gc b/test/decompiler/reference/jak2/levels/city/traffic/citizen/citizen-norm_REF.gc index f7575961be..81a94b985b 100644 --- a/test/decompiler/reference/jak2/levels/city/traffic/citizen/citizen-norm_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/traffic/citizen/citizen-norm_REF.gc @@ -584,7 +584,7 @@ :frame-num (lerp-scale 0.0 2.0 (+ (* -2.0 f28-0 f28-0 f28-0) (* 3.0 f28-0 f28-0)) 0.0 1.0) ) (suspend) - (+! f28-0 (-> self clock seconds-per-frame)) + (+! f28-0 (seconds-per-frame)) ) ) (ja-channel-push! 1 (seconds 0.1)) diff --git a/test/decompiler/reference/jak2/levels/city/traffic/citizen/citizen_REF.gc b/test/decompiler/reference/jak2/levels/city/traffic/citizen/citizen_REF.gc index 498b008c8d..b43eb42e28 100644 --- a/test/decompiler/reference/jak2/levels/city/traffic/citizen/citizen_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/traffic/citizen/citizen_REF.gc @@ -371,31 +371,29 @@ ;; definition for method 200 of type citizen ;; WARN: Return type mismatch int vs none. (defmethod citizen-method-200 citizen ((obj citizen)) - (with-pp - (set! (-> obj root transv x) 0.0) - (set! (-> obj root transv z) 0.0) - (when (-> obj enemy-info move-to-ground) - (if (focus-test? obj under-water) - (enemy-method-47 obj (-> obj root transv)) - (+! (-> obj root transv y) (* (-> obj enemy-info movement-gravity) (-> pp clock seconds-per-frame))) - ) - ) - (let ((a2-0 (new 'stack-no-clear 'move-above-ground-params))) - (let ((v1-15 (-> obj enemy-info))) - (set! (-> a2-0 gnd-collide-with) (the-as collide-spec (-> obj gnd-collide))) - (set! (-> a2-0 popup) 8192.0) - (set! (-> a2-0 dont-move-if-overlaps?) #t) - (set! (-> a2-0 hover-if-no-ground?) (-> v1-15 hover-if-no-ground)) - (set! (-> a2-0 overlaps-params options) (overlaps-others-options oo0 oo2)) - (set! (-> a2-0 overlaps-params collide-with-filter) (-> v1-15 overlaps-others-collide-with-filter)) + (set! (-> obj root transv x) 0.0) + (set! (-> obj root transv z) 0.0) + (when (-> obj enemy-info move-to-ground) + (if (focus-test? obj under-water) + (enemy-method-47 obj (-> obj root transv)) + (+! (-> obj root transv y) (* (-> obj enemy-info movement-gravity) (seconds-per-frame))) ) - (set! (-> a2-0 overlaps-params tlist) *touching-list*) - (-> a2-0 overlaps-params) - (enemy-method-128 obj (-> obj root transv) a2-0) - ) - 0 - (none) ) + (let ((a2-0 (new 'stack-no-clear 'move-above-ground-params))) + (let ((v1-15 (-> obj enemy-info))) + (set! (-> a2-0 gnd-collide-with) (the-as collide-spec (-> obj gnd-collide))) + (set! (-> a2-0 popup) 8192.0) + (set! (-> a2-0 dont-move-if-overlaps?) #t) + (set! (-> a2-0 hover-if-no-ground?) (-> v1-15 hover-if-no-ground)) + (set! (-> a2-0 overlaps-params options) (overlaps-others-options oo0 oo2)) + (set! (-> a2-0 overlaps-params collide-with-filter) (-> v1-15 overlaps-others-collide-with-filter)) + ) + (set! (-> a2-0 overlaps-params tlist) *touching-list*) + (-> a2-0 overlaps-params) + (enemy-method-128 obj (-> obj root transv) a2-0) + ) + 0 + (none) ) ;; definition for method 55 of type citizen @@ -489,132 +487,130 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod enemy-method-128 citizen ((obj citizen) (arg0 vector) (arg1 move-above-ground-params)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((gp-0 (-> obj root))) + (set! (-> arg1 on-ground?) #f) + (set! (-> arg1 do-move?) #t) + (set! (-> arg1 old-gspot-pos quad) (-> gp-0 gspot-pos quad)) + (set! (-> arg1 old-gspot-normal quad) (-> gp-0 gspot-normal quad)) + (set! (-> gp-0 trans-old-old-old quad) (-> gp-0 trans-old-old quad)) + (set! (-> gp-0 trans-old-old quad) (-> gp-0 trans-old quad)) + (set! (-> gp-0 trans-old quad) (-> gp-0 trans quad)) + (set! (-> gp-0 prev-status) (-> gp-0 status)) + (vector-v+! (-> gp-0 trans) (-> gp-0 trans) arg0) + (set! (-> arg1 new-pos quad) (-> gp-0 trans quad)) + (when (= (-> obj controller traffic sync-mask-8) (ash 1 (logand (-> obj traffic-id) 7))) + (let ((s2-0 (new 'stack-no-clear 'collide-query))) + (logclear! (-> gp-0 status) (collide-status on-ground)) + (let* ((a0-14 obj) + (t9-1 (method-of-object a0-14 enemy-above-ground?)) + (a1-2 s2-0) + (a2-2 (new 'stack-no-clear 'vector)) + ) + (let ((v1-14 (-> gp-0 trans))) + (let ((a3-0 (-> gp-0 transv))) + (let ((t0-1 0.15)) + (.mov vf7 t0-1) + ) + (.lvf vf5 (&-> a3-0 quad)) + ) + (.lvf vf4 (&-> v1-14 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a2-2 quad) vf6) + (when (t9-1 a0-14 a1-2 a2-2 (-> arg1 gnd-collide-with) 16384.0 81920.0 1024.0) + (set! (-> gp-0 gspot-pos quad) (-> gp-0 trans quad)) + (set! (-> gp-0 gspot-pos y) (-> s2-0 best-other-tri intersect y)) + (set! (-> gp-0 gspot-normal quad) (-> s2-0 best-other-tri normal quad)) + (logior! (-> gp-0 status) (collide-status on-ground)) + (set! (-> gp-0 ground-pat) (-> s2-0 best-other-tri pat)) + ) + ) + ) + (set! (-> obj gnd-height) (-> gp-0 gspot-pos y)) + (set! (-> gp-0 gspot-pos y) (-> arg1 old-gspot-pos y)) + ) + (let ((f0-5 (- (-> obj gnd-height) (-> gp-0 gspot-pos y)))) + (cond + ((< 0.0 f0-5) + (+! (-> gp-0 gspot-pos y) (* 10.0 (seconds-per-frame) f0-5)) ) - (init-vf0-vector) - (let ((gp-0 (-> obj root))) - (set! (-> arg1 on-ground?) #f) - (set! (-> arg1 do-move?) #t) - (set! (-> arg1 old-gspot-pos quad) (-> gp-0 gspot-pos quad)) - (set! (-> arg1 old-gspot-normal quad) (-> gp-0 gspot-normal quad)) - (set! (-> gp-0 trans-old-old-old quad) (-> gp-0 trans-old-old quad)) - (set! (-> gp-0 trans-old-old quad) (-> gp-0 trans-old quad)) - (set! (-> gp-0 trans-old quad) (-> gp-0 trans quad)) - (set! (-> gp-0 prev-status) (-> gp-0 status)) - (vector-v+! (-> gp-0 trans) (-> gp-0 trans) arg0) - (set! (-> arg1 new-pos quad) (-> gp-0 trans quad)) - (when (= (-> obj controller traffic sync-mask-8) (ash 1 (logand (-> obj traffic-id) 7))) - (let ((s2-0 (new 'stack-no-clear 'collide-query))) - (logclear! (-> gp-0 status) (collide-status on-ground)) - (let* ((a0-14 obj) - (t9-1 (method-of-object a0-14 enemy-above-ground?)) - (a1-2 s2-0) - (a2-2 (new 'stack-no-clear 'vector)) - ) - (let ((v1-14 (-> gp-0 trans))) - (let ((a3-0 (-> gp-0 transv))) - (let ((t0-1 0.15)) - (.mov vf7 t0-1) - ) - (.lvf vf5 (&-> a3-0 quad)) - ) - (.lvf vf4 (&-> v1-14 quad)) + (else + (+! (-> gp-0 gspot-pos y) (* 10.0 (seconds-per-frame) f0-5)) + (if (< (-> gp-0 gspot-pos y) (-> obj gnd-height)) + (set! (-> gp-0 gspot-pos y) (-> obj gnd-height)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a2-2 quad) vf6) - (when (t9-1 a0-14 a1-2 a2-2 (-> arg1 gnd-collide-with) 16384.0 81920.0 1024.0) - (set! (-> gp-0 gspot-pos quad) (-> gp-0 trans quad)) - (set! (-> gp-0 gspot-pos y) (-> s2-0 best-other-tri intersect y)) - (set! (-> gp-0 gspot-normal quad) (-> s2-0 best-other-tri normal quad)) - (logior! (-> gp-0 status) (collide-status on-ground)) - (set! (-> gp-0 ground-pat) (-> s2-0 best-other-tri pat)) - ) - ) - ) - (set! (-> obj gnd-height) (-> gp-0 gspot-pos y)) - (set! (-> gp-0 gspot-pos y) (-> arg1 old-gspot-pos y)) - ) - (let ((f0-5 (- (-> obj gnd-height) (-> gp-0 gspot-pos y)))) - (cond - ((< 0.0 f0-5) - (+! (-> gp-0 gspot-pos y) (* 10.0 (-> pp clock seconds-per-frame) f0-5)) - ) - (else - (+! (-> gp-0 gspot-pos y) (* 10.0 (-> pp clock seconds-per-frame) f0-5)) - (if (< (-> gp-0 gspot-pos y) (-> obj gnd-height)) - (set! (-> gp-0 gspot-pos y) (-> obj gnd-height)) - ) - ) ) ) - (set! (-> arg1 on-ground?) #t) - (set! (-> arg1 pat) (-> gp-0 ground-pat)) - (when (>= (-> gp-0 gspot-pos y) (-> arg1 new-pos y)) - (set! (-> arg1 new-pos y) (-> gp-0 gspot-pos y)) - (set! (-> gp-0 ground-impact-vel) (- (vector-dot arg0 (-> gp-0 dynam gravity-normal)))) - (set! (-> arg0 y) 0.0) - ) - (set! (-> gp-0 trans quad) (-> arg1 new-pos quad)) - (when (-> arg1 do-move?) - (cond - ((-> arg1 on-ground?) - (let ((a1-3 (-> gp-0 gspot-pos)) - (a0-22 (-> gp-0 gspot-normal)) - (v1-41 (-> arg1 pat)) - ) - (set! (-> gp-0 grount-touch-point quad) (-> a1-3 quad)) - (set! (-> gp-0 poly-normal quad) (-> a0-22 quad)) - (set! (-> gp-0 surface-normal quad) (-> a0-22 quad)) - (set! (-> gp-0 local-normal quad) (-> a0-22 quad)) - (set! (-> gp-0 ground-poly-normal quad) (-> a0-22 quad)) - (set! (-> gp-0 poly-pat) v1-41) - (set! (-> gp-0 cur-pat) v1-41) - (set! (-> gp-0 ground-pat) v1-41) - ) - (logior! (-> gp-0 status) (collide-status on-surface on-ground touch-surface)) + ) + (set! (-> arg1 on-ground?) #t) + (set! (-> arg1 pat) (-> gp-0 ground-pat)) + (when (>= (-> gp-0 gspot-pos y) (-> arg1 new-pos y)) + (set! (-> arg1 new-pos y) (-> gp-0 gspot-pos y)) + (set! (-> gp-0 ground-impact-vel) (- (vector-dot arg0 (-> gp-0 dynam gravity-normal)))) + (set! (-> arg0 y) 0.0) + ) + (set! (-> gp-0 trans quad) (-> arg1 new-pos quad)) + (when (-> arg1 do-move?) + (cond + ((-> arg1 on-ground?) + (let ((a1-3 (-> gp-0 gspot-pos)) + (a0-22 (-> gp-0 gspot-normal)) + (v1-41 (-> arg1 pat)) + ) + (set! (-> gp-0 grount-touch-point quad) (-> a1-3 quad)) + (set! (-> gp-0 poly-normal quad) (-> a0-22 quad)) + (set! (-> gp-0 surface-normal quad) (-> a0-22 quad)) + (set! (-> gp-0 local-normal quad) (-> a0-22 quad)) + (set! (-> gp-0 ground-poly-normal quad) (-> a0-22 quad)) + (set! (-> gp-0 poly-pat) v1-41) + (set! (-> gp-0 cur-pat) v1-41) + (set! (-> gp-0 ground-pat) v1-41) ) - (else - (logclear! (-> gp-0 status) (collide-status - on-surface - on-ground - touch-surface - touch-wall - touch-ceiling - touch-actor - on-special-surface - touch-edge - blocked - on-water - impact-surface - touch-background - stuck - glance - ) - ) - (when (not (logtest? (-> gp-0 root-prim prim-core action) (collide-action no-normal-reset))) - (let ((v1-51 (-> gp-0 dynam gravity-normal))) - (set! (-> gp-0 local-normal quad) (-> v1-51 quad)) - (set! (-> gp-0 surface-normal quad) (-> v1-51 quad)) - (set! (-> gp-0 poly-normal quad) (-> v1-51 quad)) - ) - (set! (-> gp-0 coverage) 0.0) - (set! (-> gp-0 touch-angle) 0.0) + (logior! (-> gp-0 status) (collide-status on-surface on-ground touch-surface)) + ) + (else + (logclear! (-> gp-0 status) (collide-status + on-surface + on-ground + touch-surface + touch-wall + touch-ceiling + touch-actor + on-special-surface + touch-edge + blocked + on-water + impact-surface + touch-background + stuck + glance + ) + ) + (when (not (logtest? (-> gp-0 root-prim prim-core action) (collide-action no-normal-reset))) + (let ((v1-51 (-> gp-0 dynam gravity-normal))) + (set! (-> gp-0 local-normal quad) (-> v1-51 quad)) + (set! (-> gp-0 surface-normal quad) (-> v1-51 quad)) + (set! (-> gp-0 poly-normal quad) (-> v1-51 quad)) ) + (set! (-> gp-0 coverage) 0.0) + (set! (-> gp-0 touch-angle) 0.0) ) ) ) ) - 0 - (none) ) + 0 + (none) ) ) @@ -622,29 +618,27 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod nav-enemy-method-142 citizen ((obj citizen) (arg0 nav-control)) - (with-pp - (let ((s3-0 (new 'stack-no-clear 'vector))) - (let ((a1-1 (-> arg0 state))) - (set! (-> s3-0 quad) (-> a1-1 heading quad)) - ) - (set! (-> s3-0 y) 0.0) - (vector-normalize! s3-0 1.0) - (let ((gp-0 (new 'stack-no-clear 'quaternion)) - (s5-1 (-> obj root quat)) - ) - (quaternion-set! gp-0 0.0 (-> s3-0 x) 0.0 (+ 1.0 (-> s3-0 z))) - (quaternion-normalize! gp-0) - (quaternion-pseudo-seek - s5-1 - s5-1 - gp-0 - (* (fmax 0.5 (* 0.00024414062 (-> arg0 state speed))) (-> pp clock seconds-per-frame)) + (let ((s3-0 (new 'stack-no-clear 'vector))) + (let ((a1-1 (-> arg0 state))) + (set! (-> s3-0 quad) (-> a1-1 heading quad)) + ) + (set! (-> s3-0 y) 0.0) + (vector-normalize! s3-0 1.0) + (let ((gp-0 (new 'stack-no-clear 'quaternion)) + (s5-1 (-> obj root quat)) ) + (quaternion-set! gp-0 0.0 (-> s3-0 x) 0.0 (+ 1.0 (-> s3-0 z))) + (quaternion-normalize! gp-0) + (quaternion-pseudo-seek + s5-1 + s5-1 + gp-0 + (* (fmax 0.5 (* 0.00024414062 (-> arg0 state speed))) (seconds-per-frame)) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 176 of type citizen @@ -823,7 +817,7 @@ This commonly includes things such as: ) ) ) - (seek! (-> self interp) f28-0 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> self interp) f28-0 (* 4.0 (seconds-per-frame))) (let ((v1-76 (-> self skel root-channel 1)) (f0-21 (-> self interp)) ) @@ -1570,7 +1564,7 @@ This commonly includes things such as: ) (when (>= (- (current-time) (-> self state-time)) (-> self wait-time)) (let ((f0-2 (-> self nav state speed))) - (set! (-> self nav target-speed) (seek f0-2 0.0 (* 12288.0 (-> self clock seconds-per-frame)))) + (set! (-> self nav target-speed) (seek f0-2 0.0 (* 12288.0 (seconds-per-frame)))) ) 0 (when (= (-> self nav state speed) 0.0) @@ -1671,7 +1665,7 @@ This commonly includes things such as: (let ((a1-1 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> self root quat))) (gp-0 (new 'stack-no-clear 'quaternion)) ) - (quaternion-from-two-vectors-max-angle! gp-0 a1-1 *up-vector* (* 7281.778 (-> self clock seconds-per-frame))) + (quaternion-from-two-vectors-max-angle! gp-0 a1-1 *up-vector* (* 7281.778 (seconds-per-frame))) (quaternion*! (-> self root quat) gp-0 (-> self root quat)) ) (let ((t9-3 (-> (method-of-type nav-enemy knocked) trans))) diff --git a/test/decompiler/reference/jak2/levels/city/traffic/citizen/civilian_REF.gc b/test/decompiler/reference/jak2/levels/city/traffic/citizen/civilian_REF.gc index 1bc7a1364a..6046c68022 100644 --- a/test/decompiler/reference/jak2/levels/city/traffic/citizen/civilian_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/traffic/citizen/civilian_REF.gc @@ -1963,7 +1963,7 @@ :frame-num (lerp-scale 0.0 1.0 (+ (* -2.0 f30-0 f30-0 f30-0) (* 3.0 f30-0 f30-0)) 0.0 1.0) ) (suspend) - (+! f30-0 (* 3.0 (-> self clock seconds-per-frame))) + (+! f30-0 (* 3.0 (seconds-per-frame))) ) ) (let ((gp-2 (new 'stack-no-clear 'vector))) diff --git a/test/decompiler/reference/jak2/levels/city/traffic/citizen/guard_REF.gc b/test/decompiler/reference/jak2/levels/city/traffic/citizen/guard_REF.gc index a090cf14ef..42a44bf29f 100644 --- a/test/decompiler/reference/jak2/levels/city/traffic/citizen/guard_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/traffic/citizen/guard_REF.gc @@ -434,142 +434,133 @@ (sv-304 vector) (sv-320 vector) ) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (set! sv-240 arg0) - (let ((s0-0 (new 'stack-no-clear 'vector))) - (let ((v1-1 (-> obj root trans))) - (let ((a0-1 *y-vector*)) - (let ((a1-2 8192.0)) - (.mov vf7 a1-2) - ) - (.lvf vf5 (&-> a0-1 quad)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (set! sv-240 arg0) + (let ((s0-0 (new 'stack-no-clear 'vector))) + (let ((v1-1 (-> obj root trans))) + (let ((a0-1 *y-vector*)) + (let ((a1-2 8192.0)) + (.mov vf7 a1-2) ) - (.lvf vf4 (&-> v1-1 quad)) + (.lvf vf5 (&-> a0-1 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> s0-0 quad) vf6) - (set! sv-320 (new 'stack-no-clear 'vector)) - (set! sv-304 (new 'stack-no-clear 'vector)) - (let ((s1-0 (new 'stack-no-clear 'vector)) - (s2-0 (new 'stack-no-clear 'vector)) - (s5-0 (new 'stack-no-clear 'vector)) + (.lvf vf4 (&-> v1-1 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> s0-0 quad) vf6) + (set! sv-320 (new 'stack-no-clear 'vector)) + (set! sv-304 (new 'stack-no-clear 'vector)) + (let ((s1-0 (new 'stack-no-clear 'vector)) + (s2-0 (new 'stack-no-clear 'vector)) + (s5-0 (new 'stack-no-clear 'vector)) + ) + (-> obj node-list data 4 bone transform) + (let ((s4-0 (vector-x-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) + (s3-0 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) ) - (-> obj node-list data 4 bone transform) - (let ((s4-0 (vector-x-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) - (s3-0 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) - ) - (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)) - (set! (-> s0-0 quad) (-> obj root trans quad)) - (cond - ((logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) - (let ((a1-6 s0-0)) - (let ((v1-14 s0-0)) - (let ((a0-9 s4-0)) - (let ((a2-1 4096.0)) - (.mov vf7 a2-1) - ) - (.lvf vf5 (&-> a0-9 quad)) + (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)) + (set! (-> s0-0 quad) (-> obj root trans quad)) + (cond + ((logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) + (let ((a1-6 s0-0)) + (let ((v1-14 s0-0)) + (let ((a0-9 s4-0)) + (let ((a2-1 4096.0)) + (.mov vf7 a2-1) ) - (.lvf vf4 (&-> v1-14 quad)) + (.lvf vf5 (&-> a0-9 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-6 quad) vf6) + (.lvf vf4 (&-> v1-14 quad)) ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-6 quad) vf6) ) - (else - (let ((a1-7 s0-0)) - (let ((v1-15 s0-0)) - (let ((a0-10 s4-0)) - (let ((a2-3 2048.0)) - (.mov vf7 a2-3) - ) - (.lvf vf5 (&-> a0-10 quad)) + ) + (else + (let ((a1-7 s0-0)) + (let ((v1-15 s0-0)) + (let ((a0-10 s4-0)) + (let ((a2-3 2048.0)) + (.mov vf7 a2-3) ) - (.lvf vf4 (&-> v1-15 quad)) + (.lvf vf5 (&-> a0-10 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-7 quad) vf6) + (.lvf vf4 (&-> v1-15 quad)) ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-7 quad) vf6) ) ) - (let ((a1-8 s0-0)) - (let ((v1-16 s0-0)) - (let ((a0-11 s3-0)) - (let ((a2-5 8540.16)) - (.mov vf7 a2-5) - ) - (.lvf vf5 (&-> a0-11 quad)) + ) + (let ((a1-8 s0-0)) + (let ((v1-16 s0-0)) + (let ((a0-11 s3-0)) + (let ((a2-5 8540.16)) + (.mov vf7 a2-5) ) - (.lvf vf4 (&-> v1-16 quad)) + (.lvf vf5 (&-> a0-11 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-8 quad) vf6) + (.lvf vf4 (&-> v1-16 quad)) ) - (vector-normalize! (vector-! sv-320 sv-240 s0-0) 1.0) - (set! sv-288 (new 'stack-no-clear 'vector)) - (let ((v1-20 (-> sv-240 quad))) - (set! (-> sv-288 quad) v1-20) - ) - (set! sv-256 vector-rotate90-around-y!) - (set! sv-272 (new 'stack-no-clear 'vector)) - (let* ((a1-13 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) sv-288 s0-0) -2998.272)) - (v0-5 (sv-256 sv-272 a1-13)) - ) - (vector+! sv-288 sv-288 v0-5) - ) - (vector-normalize! (vector-! sv-320 sv-288 s0-0) 1.0) - (vector-z-quaternion! sv-304 (-> obj root quat)) - (rot-zxy-from-vector! s2-0 sv-304) - (rot-zxy-from-vector! s1-0 sv-320) - (set! (-> s5-0 x) (fmax -14563.556 (fmin 14563.556 (deg- (-> s1-0 x) (-> s2-0 x))))) - (set! (-> s5-0 y) (fmax -14563.556 (fmin 14563.556 (deg- (-> s1-0 y) (-> s2-0 y))))) - (set! (-> s5-0 z) 0.0) - (let ((s2-1 (new 'stack-no-clear 'quaternion))) - (let ((s1-1 (new 'stack-no-clear 'quaternion))) - (quaternion-vector-angle! s2-1 s4-0 (-> s5-0 x)) - (quaternion-vector-angle! s1-1 s3-0 (-> s5-0 y)) - (quaternion*! s2-1 s1-1 s2-1) - ) - (quaternion-pseudo-seek (-> obj joint quat) (-> obj joint quat) s2-1 (-> pp clock seconds-per-frame)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-8 quad) vf6) + ) + (vector-normalize! (vector-! sv-320 sv-240 s0-0) 1.0) + (set! sv-288 (new 'stack-no-clear 'vector)) + (let ((v1-20 (-> sv-240 quad))) + (set! (-> sv-288 quad) v1-20) + ) + (set! sv-256 vector-rotate90-around-y!) + (set! sv-272 (new 'stack-no-clear 'vector)) + (let* ((a1-13 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) sv-288 s0-0) -2998.272)) + (v0-5 (sv-256 sv-272 a1-13)) + ) + (vector+! sv-288 sv-288 v0-5) + ) + (vector-normalize! (vector-! sv-320 sv-288 s0-0) 1.0) + (vector-z-quaternion! sv-304 (-> obj root quat)) + (rot-zxy-from-vector! s2-0 sv-304) + (rot-zxy-from-vector! s1-0 sv-320) + (set! (-> s5-0 x) (fmax -14563.556 (fmin 14563.556 (deg- (-> s1-0 x) (-> s2-0 x))))) + (set! (-> s5-0 y) (fmax -14563.556 (fmin 14563.556 (deg- (-> s1-0 y) (-> s2-0 y))))) + (set! (-> s5-0 z) 0.0) + (let ((s2-1 (new 'stack-no-clear 'quaternion))) + (let ((s1-1 (new 'stack-no-clear 'quaternion))) + (quaternion-vector-angle! s2-1 s4-0 (-> s5-0 x)) + (quaternion-vector-angle! s1-1 s3-0 (-> s5-0 y)) + (quaternion*! s2-1 s1-1 s2-1) ) + (quaternion-pseudo-seek (-> obj joint quat) (-> obj joint quat) s2-1 (seconds-per-frame)) ) ) ) - 0 - (none) ) + 0 + (none) ) ) ;; definition for method 219 of type crimson-guard ;; WARN: Return type mismatch int vs none. (defmethod crimson-guard-method-219 crimson-guard ((obj crimson-guard)) - (with-pp - (quaternion-pseudo-seek - (-> obj joint quat) - (-> obj joint quat) - *unity-quaternion* - (-> pp clock seconds-per-frame) - ) - 0 - (none) - ) + (quaternion-pseudo-seek (-> obj joint quat) (-> obj joint quat) *unity-quaternion* (seconds-per-frame)) + 0 + (none) ) ;; definition for symbol *guard-min-id-hack*, type int @@ -3403,11 +3394,7 @@ :frame-num 0.0 ) (until (ja-done? 0) - (quaternion-rotate-local-y! - (-> self root quat) - (-> self root quat) - (* f30-0 (-> self clock seconds-per-frame)) - ) + (quaternion-rotate-local-y! (-> self root quat) (-> self root quat) (* f30-0 (seconds-per-frame))) (suspend) (ja :num! (seek!)) ) @@ -3418,11 +3405,7 @@ :frame-num (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 25)) frames num-frames) -1)) ) (until (ja-done? 0) - (quaternion-rotate-local-y! - (-> self root quat) - (-> self root quat) - (* f30-0 (-> self clock seconds-per-frame)) - ) + (quaternion-rotate-local-y! (-> self root quat) (-> self root quat) (* f30-0 (seconds-per-frame))) (suspend) (ja :num! (seek! 0.0)) ) diff --git a/test/decompiler/reference/jak2/levels/city/traffic/citizen/metalhead-flitter_REF.gc b/test/decompiler/reference/jak2/levels/city/traffic/citizen/metalhead-flitter_REF.gc index 1650cb3461..f3f581c897 100644 --- a/test/decompiler/reference/jak2/levels/city/traffic/citizen/metalhead-flitter_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/traffic/citizen/metalhead-flitter_REF.gc @@ -909,7 +909,7 @@ ) (until (ja-done? 0) (suspend) - (set! f30-0 (seek f30-0 (metalhead-flitter-method-209 self) (* 0.2 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 (metalhead-flitter-method-209 self) (* 0.2 (seconds-per-frame)))) (ja :num! (seek! max 0.8)) (let ((a0-7 (-> self skel root-channel 1))) (set! (-> a0-7 frame-interp 1) f30-0) diff --git a/test/decompiler/reference/jak2/levels/city/traffic/citizen/metalhead-predator_REF.gc b/test/decompiler/reference/jak2/levels/city/traffic/citizen/metalhead-predator_REF.gc index 2b53d41bda..db2b8a4e96 100644 --- a/test/decompiler/reference/jak2/levels/city/traffic/citizen/metalhead-predator_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/traffic/citizen/metalhead-predator_REF.gc @@ -375,59 +375,57 @@ ;; definition for method 208 of type metalhead-predator ;; WARN: Return type mismatch int vs none. (defmethod metalhead-predator-method-208 metalhead-predator ((obj metalhead-predator)) - (with-pp - (cond - ((< (-> obj hit-points) 2) - (when (!= (-> obj dest-fade) 128.0) - (sound-play "pred-uncloak") - (set! (-> obj sound) (the-as ambient-sound 0)) - 0 - ) - (set! (-> obj dest-fade) 128.0) + (cond + ((< (-> obj hit-points) 2) + (when (!= (-> obj dest-fade) 128.0) + (sound-play "pred-uncloak") + (set! (-> obj sound) (the-as ambient-sound 0)) + 0 ) - (else - (set! (-> obj dest-fade) 0.0) - ) + (set! (-> obj dest-fade) 128.0) + ) + (else + (set! (-> obj dest-fade) 0.0) ) - (seek! (-> obj fade) (-> obj dest-fade) (* 60.0 (-> pp clock seconds-per-frame))) - (set! (-> obj draw force-fade) (the-as uint (the int (-> obj fade)))) - (cond - ((zero? (-> obj draw force-fade)) - (setup-masks (-> obj draw) 8 0) - (setup-masks (-> obj draw) 0 4) - (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) - ) - ((= (-> obj draw force-fade) 128) - (setup-masks (-> obj draw) 0 8) - (setup-masks (-> obj draw) 4 0) - (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) - ) - (else - (setup-masks (-> obj draw) 8 0) - (setup-masks (-> obj draw) 4 0) - (logior! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) - ) - ) - (if (< 245760.0 (vector-vector-distance (-> obj root trans) (camera-pos))) - (setup-masks (-> obj draw) 0 8) - ) - (when (< (current-time) (-> obj shock-effect-end)) - (when (>= (- (current-time) (-> obj shock-effect-time)) (seconds 0.04)) - (set! (-> obj shock-effect-time) (current-time)) - (process-drawable-shock-skel-effect - obj - (-> *lightning-spec-id-table* 15) - lightning-probe-callback - (-> *part-id-table* 166) - 2048.0 - -1 - -1 - ) - ) - ) - 0 - (none) ) + (seek! (-> obj fade) (-> obj dest-fade) (* 60.0 (seconds-per-frame))) + (set! (-> obj draw force-fade) (the-as uint (the int (-> obj fade)))) + (cond + ((zero? (-> obj draw force-fade)) + (setup-masks (-> obj draw) 8 0) + (setup-masks (-> obj draw) 0 4) + (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) + ) + ((= (-> obj draw force-fade) 128) + (setup-masks (-> obj draw) 0 8) + (setup-masks (-> obj draw) 4 0) + (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) + ) + (else + (setup-masks (-> obj draw) 8 0) + (setup-masks (-> obj draw) 4 0) + (logior! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) + ) + ) + (if (< 245760.0 (vector-vector-distance (-> obj root trans) (camera-pos))) + (setup-masks (-> obj draw) 0 8) + ) + (when (< (current-time) (-> obj shock-effect-end)) + (when (>= (- (current-time) (-> obj shock-effect-time)) (seconds 0.04)) + (set! (-> obj shock-effect-time) (current-time)) + (process-drawable-shock-skel-effect + obj + (-> *lightning-spec-id-table* 15) + lightning-probe-callback + (-> *part-id-table* 166) + 2048.0 + -1 + -1 + ) + ) + ) + 0 + (none) ) ;; definition for method 55 of type metalhead-predator diff --git a/test/decompiler/reference/jak2/levels/city/traffic/traffic-engine_REF.gc b/test/decompiler/reference/jak2/levels/city/traffic/traffic-engine_REF.gc index 95f2195015..c8d2f6916d 100644 --- a/test/decompiler/reference/jak2/levels/city/traffic/traffic-engine_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/traffic/traffic-engine_REF.gc @@ -1373,167 +1373,165 @@ Process is recycled and moved to reserved, if it deactivates." (defmethod update-danger-from-target traffic-engine ((obj traffic-engine)) "make people run away from jak when he is dangerous." (local-vars (v1-20 float) (v1-32 float)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (let ((s5-0 *target*)) - (when s5-0 - (let ((v1-1 (-> obj danger-sphere-array))) - (set! (-> v1-1 0 handle) (process->handle s5-0)) - (let ((a0-4 (-> s5-0 focus-status)) - (notify-radius 0.0) - (danger-radius 0.0) - (decay-rate 1.0) - (danger-level 0.0) - ) - (cond - ((logtest? (focus-status mech dark shooting) a0-4) - (set! notify-radius 245760.0) - (set! danger-radius 163840.0) - (set! danger-level 1.0) - (set! decay-rate 0.0) - ) - ((logtest? (focus-status gun) a0-4) - (set! notify-radius 102400.0) - (set! danger-radius 61440.0) - (set! danger-level 0.5) - (set! decay-rate 0.5) - ) - ((logtest? (focus-status board pilot) a0-4) - (set! notify-radius 40960.0) - (set! danger-radius 24576.0) - (set! danger-level 0.5) - ) - ((logtest? a0-4 (focus-status dangerous)) - (set! notify-radius 61440.0) - (set! danger-radius 40960.0) - (set! decay-rate 0.0) - (set! danger-level 0.5) - ) - (else - (set! decay-rate 1.5) - ) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 *target*)) + (when s5-0 + (let ((v1-1 (-> obj danger-sphere-array))) + (set! (-> v1-1 0 handle) (process->handle s5-0)) + (let ((a0-4 (-> s5-0 focus-status)) + (notify-radius 0.0) + (danger-radius 0.0) + (decay-rate 1.0) + (danger-level 0.0) ) - (set! (-> v1-1 0 decay-rate) (* 0.1 decay-rate)) - (when (< (-> v1-1 0 danger-level) danger-level) - (set! (-> v1-1 0 danger-level) danger-level) - (set! (-> v1-1 0 sphere r) danger-radius) - (set! (-> v1-1 0 notify-radius) notify-radius) + (cond + ((logtest? (focus-status mech dark shooting) a0-4) + (set! notify-radius 245760.0) + (set! danger-radius 163840.0) + (set! danger-level 1.0) + (set! decay-rate 0.0) + ) + ((logtest? (focus-status gun) a0-4) + (set! notify-radius 102400.0) + (set! danger-radius 61440.0) + (set! danger-level 0.5) + (set! decay-rate 0.5) + ) + ((logtest? (focus-status board pilot) a0-4) + (set! notify-radius 40960.0) + (set! danger-radius 24576.0) + (set! danger-level 0.5) + ) + ((logtest? a0-4 (focus-status dangerous)) + (set! notify-radius 61440.0) + (set! danger-radius 40960.0) + (set! decay-rate 0.0) + (set! danger-level 0.5) + ) + (else + (set! decay-rate 1.5) ) ) - (let ((f0-1 (-> v1-1 0 sphere r))) - (set! (-> v1-1 0 sphere quad) (-> s5-0 control trans quad)) - (set! (-> v1-1 0 sphere r) f0-1) - ) - (set! (-> v1-1 0 velocity quad) (-> s5-0 control transv quad)) - (let ((f0-3 (- (-> v1-1 0 danger-level) (* (-> v1-1 0 decay-rate) (-> pp clock seconds-per-frame))))) - (set! (-> v1-1 0 danger-level) (fmax 0.0 f0-3)) + (set! (-> v1-1 0 decay-rate) (* 0.1 decay-rate)) + (when (< (-> v1-1 0 danger-level) danger-level) + (set! (-> v1-1 0 danger-level) danger-level) + (set! (-> v1-1 0 sphere r) danger-radius) + (set! (-> v1-1 0 notify-radius) notify-radius) ) ) - (let ((s3-0 (-> s5-0 focus-status)) - (f30-0 0.0) - (s4-0 (new 'stack-no-clear 'inline-array 'traffic-suppression-box 2)) - ) - (set! (-> s4-0 0 bbox max quad) (-> s5-0 control transv quad)) - (vector-z-quaternion! (the-as vector (-> s4-0 1)) (get-quat s5-0 3)) - (set! (-> s4-0 1 data 16) (the-as uint 3)) - (cond - ((logtest? (focus-status shooting) s3-0) - (vector-float*! (the-as vector (-> s4-0 0)) (the-as vector (-> s4-0 1)) 409600.0) - (set! f30-0 4096.0) - (set! (-> s4-0 1 data 16) (the-as uint 0)) - 0 - ) - ((and (logtest? (focus-status gun) s3-0) - (not (and (logtest? (focus-status pilot) s3-0) (let* ((v1-19 (-> s4-0 0 bbox max)) - (f0-6 40960.0) - (f0-8 (* f0-6 f0-6)) - ) - (.lvf vf1 (&-> v1-19 quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-20 vf1) - (< f0-8 v1-20) - ) - ) - ) - ) - (vector-float*! (the-as vector (-> s4-0 0)) (the-as vector (-> s4-0 1)) 163840.0) - (set! f30-0 8192.0) - (set! (-> s4-0 1 data 16) (the-as uint 1)) - ) - ((logtest? (focus-status dangerous board pilot) s3-0) - (vector-float*! (the-as vector (-> s4-0 0)) (-> s4-0 0 bbox max) 2.0) - (let* ((v1-31 (-> s4-0 0)) - (f0-11 20480.0) - (f0-13 (* f0-11 f0-11)) - ) - (.lvf vf1 (&-> v1-31 bbox min quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-32 vf1) - (if (< f0-13 v1-32) - (set! f30-0 20480.0) - ) - ) - (set! (-> s4-0 1 data 16) (the-as uint (cond - ((logtest? (focus-status pilot) s3-0) - 3 - ) - ((logtest? (focus-status board) s3-0) - 2 - ) - ((logtest? s3-0 (focus-status dangerous)) - 4 - ) - (else - 5 - ) - ) - ) - ) - ) + (let ((f0-1 (-> v1-1 0 sphere r))) + (set! (-> v1-1 0 sphere quad) (-> s5-0 control trans quad)) + (set! (-> v1-1 0 sphere r) f0-1) + ) + (set! (-> v1-1 0 velocity quad) (-> s5-0 control transv quad)) + (let ((f0-3 (- (-> v1-1 0 danger-level) (* (-> v1-1 0 decay-rate) (seconds-per-frame))))) + (set! (-> v1-1 0 danger-level) (fmax 0.0 f0-3)) + ) + ) + (let ((s3-0 (-> s5-0 focus-status)) + (f30-0 0.0) + (s4-0 (new 'stack-no-clear 'inline-array 'traffic-suppression-box 2)) ) - (when (< 0.0 f30-0) - (let ((s3-1 (new 'stack-no-clear 'array 'collide-shape 40)) - (s2-1 (new 'stack 'traffic-danger-info)) - ) - (set! (-> s2-1 sphere quad) (-> s5-0 control trans quad)) - (set! (-> s2-1 danger-type) (the-as traffic-danger-type (-> s4-0 1 data 16))) - (set! (-> s2-1 sphere r) f30-0) - (set! (-> s2-1 velocity quad) (-> s4-0 0 bbox min quad)) - (let ((gp-1 (fill-actor-list-for-line-sphere - (-> obj object-hash) - (-> s2-1 sphere) - (-> s2-1 velocity) - (-> s2-1 sphere r) - s3-1 - 40 - -1 - ) + (set! (-> s4-0 0 bbox max quad) (-> s5-0 control transv quad)) + (vector-z-quaternion! (the-as vector (-> s4-0 1)) (get-quat s5-0 3)) + (set! (-> s4-0 1 data 16) (the-as uint 3)) + (cond + ((logtest? (focus-status shooting) s3-0) + (vector-float*! (the-as vector (-> s4-0 0)) (the-as vector (-> s4-0 1)) 409600.0) + (set! f30-0 4096.0) + (set! (-> s4-0 1 data 16) (the-as uint 0)) + 0 + ) + ((and (logtest? (focus-status gun) s3-0) + (not (and (logtest? (focus-status pilot) s3-0) (let* ((v1-19 (-> s4-0 0 bbox max)) + (f0-6 40960.0) + (f0-8 (* f0-6 f0-6)) + ) + (.lvf vf1 (&-> v1-19 quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-20 vf1) + (< f0-8 v1-20) + ) + ) + ) + ) + (vector-float*! (the-as vector (-> s4-0 0)) (the-as vector (-> s4-0 1)) 163840.0) + (set! f30-0 8192.0) + (set! (-> s4-0 1 data 16) (the-as uint 1)) + ) + ((logtest? (focus-status dangerous board pilot) s3-0) + (vector-float*! (the-as vector (-> s4-0 0)) (-> s4-0 0 bbox max) 2.0) + (let* ((v1-31 (-> s4-0 0)) + (f0-11 20480.0) + (f0-13 (* f0-11 f0-11)) + ) + (.lvf vf1 (&-> v1-31 bbox min quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-32 vf1) + (if (< f0-13 v1-32) + (set! f30-0 20480.0) + ) + ) + (set! (-> s4-0 1 data 16) (the-as uint (cond + ((logtest? (focus-status pilot) s3-0) + 3 + ) + ((logtest? (focus-status board) s3-0) + 2 + ) + ((logtest? s3-0 (focus-status dangerous)) + 4 + ) + (else + 5 + ) + ) + ) + ) + ) + ) + (when (< 0.0 f30-0) + (let ((s3-1 (new 'stack-no-clear 'array 'collide-shape 40)) + (s2-1 (new 'stack 'traffic-danger-info)) + ) + (set! (-> s2-1 sphere quad) (-> s5-0 control trans quad)) + (set! (-> s2-1 danger-type) (the-as traffic-danger-type (-> s4-0 1 data 16))) + (set! (-> s2-1 sphere r) f30-0) + (set! (-> s2-1 velocity quad) (-> s4-0 0 bbox min quad)) + (let ((gp-1 (fill-actor-list-for-line-sphere + (-> obj object-hash) + (-> s2-1 sphere) + (-> s2-1 velocity) + (-> s2-1 sphere r) + s3-1 + 40 + -1 ) - ) - (dotimes (s5-1 gp-1) - (let* ((s4-1 (-> s3-1 s5-1)) - (a0-52 (if (type? s4-1 citizen) - s4-1 - ) - ) - ) - (if a0-52 - (send-event (the-as process-tree a0-52) 'clear-path s2-1) ) - ) + ) + (dotimes (s5-1 gp-1) + (let* ((s4-1 (-> s3-1 s5-1)) + (a0-52 (if (type? s4-1 citizen) + s4-1 + ) + ) + ) + (if a0-52 + (send-event (the-as process-tree a0-52) 'clear-path s2-1) + ) ) ) ) @@ -1541,9 +1539,9 @@ Process is recycled and moved to reserved, if it deactivates." ) ) ) - 0 - (none) ) + 0 + (none) ) ) diff --git a/test/decompiler/reference/jak2/levels/city/traffic/vehicle/transport_REF.gc b/test/decompiler/reference/jak2/levels/city/traffic/vehicle/transport_REF.gc index d08d273182..571a9c47a5 100644 --- a/test/decompiler/reference/jak2/levels/city/traffic/vehicle/transport_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/traffic/vehicle/transport_REF.gc @@ -369,7 +369,7 @@ :post (behavior () (set! (-> self root transv y) (* 2.0 (- (-> self y-dest) (-> self root trans y)))) (set! (-> self root transv y) (fmax -122880.0 (fmin 122880.0 (-> self root transv y)))) - (+! (-> self root trans y) (* (-> self root transv y) (-> self clock seconds-per-frame))) + (+! (-> self root trans y) (* (-> self root transv y) (seconds-per-frame))) (if (< (fabs (- (-> self root trans y) (-> self y-dest))) 409.6) (go-virtual idle) ) @@ -484,9 +484,9 @@ ) :post (behavior () (transport-method-35 self) - (+! (-> self root transv y) (* 40960.0 (-> self clock seconds-per-frame))) + (+! (-> self root transv y) (* 40960.0 (seconds-per-frame))) (set! (-> self root transv y) (fmax -122880.0 (fmin 122880.0 (-> self root transv y)))) - (+! (-> self root trans y) (* (-> self root transv y) (-> self clock seconds-per-frame))) + (+! (-> self root trans y) (* (-> self root transv y) (seconds-per-frame))) (if (and (not (logtest? (-> self draw status) (draw-control-status on-screen))) (< 163840.0 (- (-> self root trans y) (-> self y-dest))) ) diff --git a/test/decompiler/reference/jak2/levels/city/traffic/vehicle/vehicle-effects_REF.gc b/test/decompiler/reference/jak2/levels/city/traffic/vehicle/vehicle-effects_REF.gc index 6dce5b8b45..b26d9a9ded 100644 --- a/test/decompiler/reference/jak2/levels/city/traffic/vehicle/vehicle-effects_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/traffic/vehicle/vehicle-effects_REF.gc @@ -6,165 +6,163 @@ ;; WARN: Return type mismatch int vs none. (defmethod do-engine-sounds vehicle ((obj vehicle)) (local-vars (v1-36 float)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (if (logtest? (rigid-body-object-flag ignition) (-> obj flags)) - (seek! (-> obj engine-sound-envelope) 1.0 (* 2.0 (-> pp clock seconds-per-frame))) - (seek! (-> obj engine-sound-envelope) 0.0 (-> pp clock seconds-per-frame)) - ) - (cond - ((< 0.0 (-> obj scrape-sound-envelope)) - (if (zero? (-> obj scrape-sound-id)) - (set! (-> obj scrape-sound-id) (new-sound-id)) - ) - (sound-play-by-name - (-> obj info scrape-sound) - (-> obj scrape-sound-id) - (the int (* 1024.0 (-> obj scrape-sound-envelope))) - 0 - 0 - (sound-group sfx) - (-> obj impact-pos) - ) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) ) - (else - (when (nonzero? (-> obj scrape-sound-id)) - (sound-stop (-> obj scrape-sound-id)) - (set! (-> obj scrape-sound-id) (new 'static 'sound-id)) - 0 - ) - ) + (init-vf0-vector) + (if (logtest? (rigid-body-object-flag ignition) (-> obj flags)) + (seek! (-> obj engine-sound-envelope) 1.0 (* 2.0 (seconds-per-frame))) + (seek! (-> obj engine-sound-envelope) 0.0 (seconds-per-frame)) ) - (cond - ((< 0.0 (* (-> obj force-scale) (-> obj engine-sound-envelope))) - (when (zero? (-> obj engine-sound-id)) - (set! (-> obj engine-sound-id) (new-sound-id)) - (set! (-> obj extra-sound-id) (new-sound-id)) - ) - (let* ((f30-0 (fabs (* (-> obj engine-thrust) (-> obj power-level) (-> obj force-scale)))) - (f28-0 (* (-> obj engine-sound-envelope) (+ 0.6 (* 0.4 f30-0)))) - (f26-0 (doppler-pitch-shift (-> obj root trans) (-> obj root transv))) - (f0-22 - (+ (-> obj info engine-pitch-offset) - (* (-> obj info engine-pitch-scale) f30-0) - (* (-> obj info engine-pitch-mod-amp) (sin (* 109.22667 (the float (- (current-time) (-> obj state-time)))))) - f26-0 - ) - ) - (a0-9 (static-sound-spec "vehicle-engine" :volume 0.0 :mask (pitch reg0))) - ) - (set! (-> a0-9 sound-name) (-> obj info engine-sound)) - (set! (-> obj engine-sound-factor) f30-0) - (cond - (#f - (let* ((f0-23 40960.0) - (f0-25 (* f0-23 f0-23)) - ) - (.lvf vf1 (&-> (-> obj rbody state lin-velocity) quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-36 vf1) - (cond - ((< f0-25 v1-36) - (format *stdcon* "accel-to-steady ~d~%" (-> obj engine-sound-id)) - (when (logtest? (rigid-body-object-flag idle-sound) (-> obj flags)) - (format *stdcon* "new engine sound~%") - (sound-stop (-> obj engine-sound-id)) - (set! (-> obj engine-sound-id) (new-sound-id)) - (set! (-> obj flags) - (the-as rigid-body-object-flag (logclear (-> obj flags) (rigid-body-object-flag idle-sound))) - ) - ) - (sound-play "accel-to-steady" :id (-> obj engine-sound-id) :position (-> obj root trans)) - ) - (else - (format *stdcon* "decel-to-idle id ~d~%" (-> obj engine-sound-id)) - (when (not (logtest? (rigid-body-object-flag idle-sound) (-> obj flags))) - (format *stdcon* "new engine sound~%") - (sound-stop (-> obj engine-sound-id)) - (set! (-> obj engine-sound-id) (new-sound-id)) - (set! (-> obj flags) - (the-as rigid-body-object-flag (logior (rigid-body-object-flag idle-sound) (-> obj flags))) - ) - ) - (sound-play "decel-to-idle" :id (-> obj engine-sound-id) :position (-> obj root trans)) - ) - ) - ) - ) - (else - (set! (-> a0-9 volume) (the int (* 1024.0 f28-0))) - (set! (-> a0-9 pitch-mod) (the int (* 1524.0 f0-22))) - (set! (-> a0-9 reg 0) (the-as uint (-> obj info engine-sound-select))) - (set! (-> a0-9 reg 1) (the-as uint (the int (* 127.0 (-> obj hit-points))))) - (sound-play-by-spec a0-9 (-> obj engine-sound-id) (-> obj root trans)) - ) - ) + (cond + ((< 0.0 (-> obj scrape-sound-envelope)) + (if (zero? (-> obj scrape-sound-id)) + (set! (-> obj scrape-sound-id) (new-sound-id)) ) + (sound-play-by-name + (-> obj info scrape-sound) + (-> obj scrape-sound-id) + (the int (* 1024.0 (-> obj scrape-sound-envelope))) 0 + 0 + (sound-group sfx) + (-> obj impact-pos) + ) + ) + (else + (when (nonzero? (-> obj scrape-sound-id)) + (sound-stop (-> obj scrape-sound-id)) + (set! (-> obj scrape-sound-id) (new 'static 'sound-id)) + 0 + ) + ) + ) + (cond + ((< 0.0 (* (-> obj force-scale) (-> obj engine-sound-envelope))) + (when (zero? (-> obj engine-sound-id)) + (set! (-> obj engine-sound-id) (new-sound-id)) + (set! (-> obj extra-sound-id) (new-sound-id)) + ) + (let* ((f30-0 (fabs (* (-> obj engine-thrust) (-> obj power-level) (-> obj force-scale)))) + (f28-0 (* (-> obj engine-sound-envelope) (+ 0.6 (* 0.4 f30-0)))) + (f26-0 (doppler-pitch-shift (-> obj root trans) (-> obj root transv))) + (f0-22 + (+ (-> obj info engine-pitch-offset) + (* (-> obj info engine-pitch-scale) f30-0) + (* (-> obj info engine-pitch-mod-amp) (sin (* 109.22667 (the float (- (current-time) (-> obj state-time)))))) + f26-0 + ) + ) + (a0-9 (static-sound-spec "vehicle-engine" :volume 0.0 :mask (pitch reg0))) + ) + (set! (-> a0-9 sound-name) (-> obj info engine-sound)) + (set! (-> obj engine-sound-factor) f30-0) + (cond + (#f + (let* ((f0-23 40960.0) + (f0-25 (* f0-23 f0-23)) + ) + (.lvf vf1 (&-> (-> obj rbody state lin-velocity) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-36 vf1) + (cond + ((< f0-25 v1-36) + (format *stdcon* "accel-to-steady ~d~%" (-> obj engine-sound-id)) + (when (logtest? (rigid-body-object-flag idle-sound) (-> obj flags)) + (format *stdcon* "new engine sound~%") + (sound-stop (-> obj engine-sound-id)) + (set! (-> obj engine-sound-id) (new-sound-id)) + (set! (-> obj flags) + (the-as rigid-body-object-flag (logclear (-> obj flags) (rigid-body-object-flag idle-sound))) + ) + ) + (sound-play "accel-to-steady" :id (-> obj engine-sound-id) :position (-> obj root trans)) + ) + (else + (format *stdcon* "decel-to-idle id ~d~%" (-> obj engine-sound-id)) + (when (not (logtest? (rigid-body-object-flag idle-sound) (-> obj flags))) + (format *stdcon* "new engine sound~%") + (sound-stop (-> obj engine-sound-id)) + (set! (-> obj engine-sound-id) (new-sound-id)) + (set! (-> obj flags) + (the-as rigid-body-object-flag (logior (rigid-body-object-flag idle-sound) (-> obj flags))) + ) + ) + (sound-play "decel-to-idle" :id (-> obj engine-sound-id) :position (-> obj root trans)) + ) + ) + ) + ) + (else + (set! (-> a0-9 volume) (the int (* 1024.0 f28-0))) + (set! (-> a0-9 pitch-mod) (the int (* 1524.0 f0-22))) + (set! (-> a0-9 reg 0) (the-as uint (-> obj info engine-sound-select))) + (set! (-> a0-9 reg 1) (the-as uint (the int (* 127.0 (-> obj hit-points))))) + (sound-play-by-spec a0-9 (-> obj engine-sound-id) (-> obj root trans)) + ) + ) + ) + 0 + ) + (else + (when (nonzero? (-> obj engine-sound-id)) + (sound-stop (-> obj engine-sound-id)) + (set! (-> obj engine-sound-id) (new 'static 'sound-id)) + 0 + ) + ) + ) + (when (or (logtest? (-> obj flags) (rigid-body-object-flag player-driving)) (nonzero? (-> obj thrust-sound-id))) + (if (zero? (-> obj thrust-sound-id)) + (set! (-> obj thrust-sound-id) (new-sound-id)) + ) + (seek! (-> obj sputter-sound-envelope) 0.0 (* 2.0 (seconds-per-frame))) + (cond + ((logtest? (-> obj flags) (rigid-body-object-flag player-driving)) + (set! (-> obj sputter-sound-envelope) (fmax (-> obj sputter-sound-envelope) (-> obj power-level))) + (let ((f1-25 + (fmin + 1.0 + (* 0.7 + (-> obj force-scale) + (-> obj sputter-sound-envelope) + (+ (-> obj engine-sound-factor) (-> obj jump-thrust)) + ) + ) + ) + (f0-38 0.0) + ) + (sound-play-by-name + (-> obj info thrust-sound) + (-> obj thrust-sound-id) + (the int (* 1024.0 f1-25)) + (the int (* 1524.0 f0-38)) + 0 + (sound-group sfx) + #t + ) + ) ) (else - (when (nonzero? (-> obj engine-sound-id)) - (sound-stop (-> obj engine-sound-id)) - (set! (-> obj engine-sound-id) (new 'static 'sound-id)) + (when (= (-> obj sputter-sound-envelope) 0.0) + (sound-stop (-> obj thrust-sound-id)) + (set! (-> obj thrust-sound-id) (new 'static 'sound-id)) 0 ) ) ) - (when (or (logtest? (-> obj flags) (rigid-body-object-flag player-driving)) (nonzero? (-> obj thrust-sound-id))) - (if (zero? (-> obj thrust-sound-id)) - (set! (-> obj thrust-sound-id) (new-sound-id)) - ) - (seek! (-> obj sputter-sound-envelope) 0.0 (* 2.0 (-> pp clock seconds-per-frame))) - (cond - ((logtest? (-> obj flags) (rigid-body-object-flag player-driving)) - (set! (-> obj sputter-sound-envelope) (fmax (-> obj sputter-sound-envelope) (-> obj power-level))) - (let ((f1-25 - (fmin - 1.0 - (* 0.7 - (-> obj force-scale) - (-> obj sputter-sound-envelope) - (+ (-> obj engine-sound-factor) (-> obj jump-thrust)) - ) - ) - ) - (f0-38 0.0) - ) - (sound-play-by-name - (-> obj info thrust-sound) - (-> obj thrust-sound-id) - (the int (* 1024.0 f1-25)) - (the int (* 1524.0 f0-38)) - 0 - (sound-group sfx) - #t - ) - ) - ) - (else - (when (= (-> obj sputter-sound-envelope) 0.0) - (sound-stop (-> obj thrust-sound-id)) - (set! (-> obj thrust-sound-id) (new 'static 'sound-id)) - 0 - ) - ) - ) - ) - (if (< (rand-vu) (-> obj power-fluctuation-factor)) - (sound-play "damage-pops" :id (-> obj damage-pop-sound-id)) - ) - 0 - (none) ) + (if (< (rand-vu) (-> obj power-fluctuation-factor)) + (sound-play "damage-pops" :id (-> obj damage-pop-sound-id)) + ) + 0 + (none) ) ) @@ -318,278 +316,276 @@ ;; WARN: Return type mismatch int vs none. (defmethod draw-thrusters vehicle ((obj vehicle)) (local-vars (sv-272 sparticle-launcher) (sv-276 sparticle-launcher)) - (with-pp - (when (= (-> obj controller traffic sync-mask-32) (ash 1 (logand (-> obj traffic-priority-id) 31))) - (let ((f0-1 - (+ (-> *time-of-day-context* time) (* 0.048387095 (the float (logand (-> obj traffic-priority-id) 31)))) + (when (= (-> obj controller traffic sync-mask-32) (ash 1 (logand (-> obj traffic-priority-id) 31))) + (let ((f0-1 + (+ (-> *time-of-day-context* time) (* 0.048387095 (the float (logand (-> obj traffic-priority-id) 31)))) + ) + ) + (cond + ((and (logtest? (-> obj flags) (rigid-body-object-flag riding)) (or (< f0-1 7.0) (< 19.0 f0-1))) + (if (not (logtest? (rigid-body-object-flag lights-on) (-> obj flags))) + (vehicle-method-131 obj) + ) + ) + (else + (if (logtest? (rigid-body-object-flag lights-on) (-> obj flags)) + (vehicle-method-132 obj) + ) + ) + ) + ) + ) + (when (logtest? (rigid-body-object-flag lights-update) (-> obj flags)) + (let ((f30-0 (if (logtest? (rigid-body-object-flag lights-on) (-> obj flags)) + 1.0 + 0.0 + ) + ) + ) + (seek! (-> obj lights-factor) f30-0 (* 2.0 (seconds-per-frame))) + (if (= (-> obj lights-factor) f30-0) + (set! (-> obj flags) + (the-as rigid-body-object-flag (logclear (-> obj flags) (rigid-body-object-flag lights-update))) + ) + ) + ) + ) + (let ((s5-0 (new 'stack-no-clear 'inline-array 'matrix 2))) + (let* ((v1-38 (-> s5-0 1)) + (a3-0 (-> obj node-list data 0 bone transform)) + (a0-16 (-> a3-0 quad 0)) + (a1-1 (-> a3-0 quad 1)) + (a2-1 (-> a3-0 quad 2)) + (a3-1 (-> a3-0 trans quad)) + ) + (set! (-> v1-38 quad 0) a0-16) + (set! (-> v1-38 quad 1) a1-1) + (set! (-> v1-38 quad 2) a2-1) + (set! (-> v1-38 trans quad) a3-1) + ) + (set-vector! (-> s5-0 0 vector 1) 0.0 0.0 -1.0 1.0) + (vector-rotate*! (-> s5-0 0 vector 1) (-> s5-0 0 vector 1) (-> s5-0 1)) + (set! (-> obj fog-fade) (calc-fade-from-fog (-> obj root trans))) + (let ((f30-1 (* (-> obj fog-fade) (-> obj lights-factor)))) + (when (< 0.0 f30-1) + (let ((s4-0 (new 'stack-no-clear 'sprite-glow-data)) + (s3-0 *vehicle-headlight-glow-template*) + ) + (dotimes (s2-0 (-> obj info headlight-count)) + (quad-copy! (the-as pointer s4-0) (the-as pointer s3-0) 4) + (vector-matrix*! (the-as vector (-> s5-0 0)) (-> obj info headlight-local-pos s2-0) (-> s5-0 1)) + (let* ((v1-44 s4-0) + (a1-6 (-> s5-0 0)) + (f0-14 (-> v1-44 position w)) + ) + (set! (-> v1-44 position quad) (-> a1-6 quad 0)) + (set! (-> v1-44 position w) f0-14) + ) + 0 + (set! (-> s4-0 rot-angle) (* 182.04445 (rand-vu-float-range -17.0 -13.0))) + (set! (-> s4-0 color x) 255.0) + (set! (-> s4-0 color y) (rand-vu-float-range 192.0 255.0)) + (set! (-> s4-0 color w) (* f30-1 (rand-vu-float-range 16.0 18.0))) + (add! *simple-sprite-system* s4-0) + (let ((f0-21 (-> obj camera-dist2)) + (f1-6 245760.0) + ) + (when (< f0-21 (* f1-6 f1-6)) + (let ((f0-22 3276.8)) + (set! (-> s4-0 position w) f0-22) + (set! (-> s4-0 size-y) f0-22) + ) + (set! (-> s4-0 fade-a) -0.00001356) + (set! (-> s4-0 fade-b) 2.3332994) + (set! (-> s4-0 color z) (rand-vu-float-range 128.0 160.0)) + (set! (-> s4-0 color w) (* f30-1 (rand-vu-float-range 32.0 36.0))) + (add! *simple-sprite-system* s4-0) + ) ) ) - (cond - ((and (logtest? (-> obj flags) (rigid-body-object-flag riding)) (or (< f0-1 7.0) (< 19.0 f0-1))) - (if (not (logtest? (rigid-body-object-flag lights-on) (-> obj flags))) - (vehicle-method-131 obj) + ) + (let ((s4-1 (new 'stack-no-clear 'sprite-glow-data))) + (quad-copy! (the-as pointer s4-1) (the-as pointer *vehicle-taillight-glow-template*) 4) + (dotimes (s3-1 (-> obj info taillight-count)) + (vector-matrix*! (the-as vector (-> s5-0 0)) (-> obj info taillight-local-pos s3-1) (-> s5-0 1)) + (let* ((v1-66 s4-1) + (a1-18 (-> s5-0 0)) + (f0-28 (-> v1-66 position w)) + ) + (set! (-> v1-66 position quad) (-> a1-18 quad 0)) + (set! (-> v1-66 position w) f0-28) + ) + 0 + (set! (-> s4-1 rot-angle) (* 182.04445 (rand-vu-float-range -4.0 4.0))) + (set! (-> s4-1 color y) (* 64.0 (rand-vu))) + (set! (-> s4-1 color w) (* f30-1 (rand-vu-float-range 16.0 21.0))) + (add! *simple-sprite-system* s4-1) + ) + ) + ) + ) + (when (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics)) + (let* ((f30-2 + (fmax + 0.0 + (* (-> obj info thruster-flame-length) (-> obj power-level) (-> obj force-scale) (-> obj engine-thrust)) + ) ) + (f28-3 (fmin (-> obj info thruster-flame-width) f30-2)) + ) + (dotimes (s4-2 2) + (vector-matrix*! (the-as vector (-> s5-0 0)) (-> obj info thruster-local-pos s4-2) (-> s5-0 1)) + (draw-thruster obj (the-as vector (-> s5-0 0)) (-> s5-0 0 vector 1) f28-3 f30-2) + ) + ) + (when (logtest? (rigid-body-object-flag ignition) (-> obj flags)) + (set! (-> *part-id-table* 776 init-specs 2 initial-valuef) + (* 6.0 (+ 0.25 (-> obj engine-power-factor)) (rand-vu)) + ) + (let* ((f0-40 1.0) + (f1-15 (-> obj engine-power-factor)) + (f0-41 (- f0-40 (* f1-15 f1-15))) + ) + (set! (-> *part-id-table* 776 init-specs 9 initial-valuef) (* 16.0 f0-41)) + (set! (-> *part-id-table* 776 init-specs 9 random-rangef) (* 48.0 f0-41)) + ) + (let ((s4-3 (-> *part-id-table* 776))) + (dotimes (s3-2 2) + (vector-matrix*! (the-as vector (-> s5-0 0)) (-> obj info exhaust-local-pos s3-2) (-> s5-0 1)) + (vector-rotate*! (-> s5-0 0 vector 1) (-> obj info exhaust-local-dir s3-2) (-> s5-0 1)) + (vector+float*! + (-> obj info part-vel) + (-> obj rbody state lin-velocity) + (-> s5-0 0 vector 1) + (* 0.2 (-> obj info max-engine-thrust) (+ 0.5 (-> obj engine-power-factor))) + ) + (let ((v1-117 (-> obj info part-vel)) + (a0-45 (-> obj info part-vel)) + (f0-46 300.0) + ) + (vector-float*! v1-117 a0-45 (/ 1.0 f0-46)) + ) + (set! (-> s4-3 birthaccum) (the-as float (-> obj exhaust-part-accum s3-2))) + (let ((t9-25 sp-launch-particles-var) + (a0-46 (-> obj info particle-system-2d)) + (a1-34 s4-3) + (a2-14 *launch-matrix*) + ) + (set! (-> a2-14 trans quad) (-> s5-0 0 quad 0)) + (t9-25 + (the-as sparticle-system a0-46) + a1-34 + a2-14 + (the-as sparticle-launch-state #f) + (the-as sparticle-launch-control #f) + 1.0 + ) + ) + (set! (-> obj exhaust-part-accum s3-2) (the-as basic (-> s4-3 birthaccum))) + ) + ) + ) + (when (< (-> obj hit-points) 0.75) + (let* ((f28-5 (+ -32768.0 (* 32768.0 (rand-vu)))) + (f24-0 (* 65536.0 (rand-vu))) + (f30-6 (cos f28-5)) + (f28-6 (sin f28-5)) + (f26-0 (cos f24-0)) + ) + (set! (-> s5-0 0 trans x) (* f30-6 (sin f24-0))) + (set! (-> s5-0 0 trans y) f28-6) + (set! (-> s5-0 0 trans z) (* f30-6 f26-0)) + ) + (set! sv-272 (the-as sparticle-launcher #f)) + (set! sv-276 (the-as sparticle-launcher #f)) + (cond + ((< (-> obj hit-points) 0.25) + (set! sv-272 (-> *part-id-table* 778)) + (set! sv-276 (-> *part-id-table* 774)) + ) + ((< (-> obj hit-points) 0.5) + (set! sv-272 (-> *part-id-table* 781)) ) (else - (if (logtest? (rigid-body-object-flag lights-on) (-> obj flags)) - (vehicle-method-132 obj) + (if (< (rand-vu) 0.05) + (set! sv-272 (-> *part-id-table* 783)) ) ) ) - ) - ) - (when (logtest? (rigid-body-object-flag lights-update) (-> obj flags)) - (let ((f30-0 (if (logtest? (rigid-body-object-flag lights-on) (-> obj flags)) - 1.0 - 0.0 - ) - ) - ) - (seek! (-> obj lights-factor) f30-0 (* 2.0 (-> pp clock seconds-per-frame))) - (if (= (-> obj lights-factor) f30-0) - (set! (-> obj flags) - (the-as rigid-body-object-flag (logclear (-> obj flags) (rigid-body-object-flag lights-update))) - ) - ) - ) - ) - (let ((s5-0 (new 'stack-no-clear 'inline-array 'matrix 2))) - (let* ((v1-38 (-> s5-0 1)) - (a3-0 (-> obj node-list data 0 bone transform)) - (a0-16 (-> a3-0 quad 0)) - (a1-1 (-> a3-0 quad 1)) - (a2-1 (-> a3-0 quad 2)) - (a3-1 (-> a3-0 trans quad)) - ) - (set! (-> v1-38 quad 0) a0-16) - (set! (-> v1-38 quad 1) a1-1) - (set! (-> v1-38 quad 2) a2-1) - (set! (-> v1-38 trans quad) a3-1) - ) - (set-vector! (-> s5-0 0 vector 1) 0.0 0.0 -1.0 1.0) - (vector-rotate*! (-> s5-0 0 vector 1) (-> s5-0 0 vector 1) (-> s5-0 1)) - (set! (-> obj fog-fade) (calc-fade-from-fog (-> obj root trans))) - (let ((f30-1 (* (-> obj fog-fade) (-> obj lights-factor)))) - (when (< 0.0 f30-1) - (let ((s4-0 (new 'stack-no-clear 'sprite-glow-data)) - (s3-0 *vehicle-headlight-glow-template*) - ) - (dotimes (s2-0 (-> obj info headlight-count)) - (quad-copy! (the-as pointer s4-0) (the-as pointer s3-0) 4) - (vector-matrix*! (the-as vector (-> s5-0 0)) (-> obj info headlight-local-pos s2-0) (-> s5-0 1)) - (let* ((v1-44 s4-0) - (a1-6 (-> s5-0 0)) - (f0-14 (-> v1-44 position w)) - ) - (set! (-> v1-44 position quad) (-> a1-6 quad 0)) - (set! (-> v1-44 position w) f0-14) - ) - 0 - (set! (-> s4-0 rot-angle) (* 182.04445 (rand-vu-float-range -17.0 -13.0))) - (set! (-> s4-0 color x) 255.0) - (set! (-> s4-0 color y) (rand-vu-float-range 192.0 255.0)) - (set! (-> s4-0 color w) (* f30-1 (rand-vu-float-range 16.0 18.0))) - (add! *simple-sprite-system* s4-0) - (let ((f0-21 (-> obj camera-dist2)) - (f1-6 245760.0) + (when sv-272 + (let ((s3-3 #f)) + (dotimes (s4-4 2) + (vector-rotate*! (-> s5-0 0 vector 2) (-> obj info smoke-local-vel s4-4) (-> s5-0 1)) + (vector+! (-> s5-0 0 vector 2) (-> s5-0 0 vector 2) (-> obj rbody state lin-velocity)) + (vector+float*! (-> s5-0 0 vector 2) (-> s5-0 0 vector 2) (-> s5-0 0 trans) (* 24576.0 (rand-vu))) + (let ((v1-152 (-> obj info part-vel)) + (a0-54 (-> s5-0 0 vector 2)) + (f0-63 300.0) ) - (when (< f0-21 (* f1-6 f1-6)) - (let ((f0-22 3276.8)) - (set! (-> s4-0 position w) f0-22) - (set! (-> s4-0 size-y) f0-22) - ) - (set! (-> s4-0 fade-a) -0.00001356) - (set! (-> s4-0 fade-b) 2.3332994) - (set! (-> s4-0 color z) (rand-vu-float-range 128.0 160.0)) - (set! (-> s4-0 color w) (* f30-1 (rand-vu-float-range 32.0 36.0))) - (add! *simple-sprite-system* s4-0) - ) + (vector-float*! v1-152 a0-54 (/ 1.0 f0-63)) ) - ) - ) - (let ((s4-1 (new 'stack-no-clear 'sprite-glow-data))) - (quad-copy! (the-as pointer s4-1) (the-as pointer *vehicle-taillight-glow-template*) 4) - (dotimes (s3-1 (-> obj info taillight-count)) - (vector-matrix*! (the-as vector (-> s5-0 0)) (-> obj info taillight-local-pos s3-1) (-> s5-0 1)) - (let* ((v1-66 s4-1) - (a1-18 (-> s5-0 0)) - (f0-28 (-> v1-66 position w)) - ) - (set! (-> v1-66 position quad) (-> a1-18 quad 0)) - (set! (-> v1-66 position w) f0-28) - ) - 0 - (set! (-> s4-1 rot-angle) (* 182.04445 (rand-vu-float-range -4.0 4.0))) - (set! (-> s4-1 color y) (* 64.0 (rand-vu))) - (set! (-> s4-1 color w) (* f30-1 (rand-vu-float-range 16.0 21.0))) - (add! *simple-sprite-system* s4-1) - ) - ) - ) - ) - (when (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics)) - (let* ((f30-2 - (fmax - 0.0 - (* (-> obj info thruster-flame-length) (-> obj power-level) (-> obj force-scale) (-> obj engine-thrust)) - ) - ) - (f28-3 (fmin (-> obj info thruster-flame-width) f30-2)) - ) - (dotimes (s4-2 2) - (vector-matrix*! (the-as vector (-> s5-0 0)) (-> obj info thruster-local-pos s4-2) (-> s5-0 1)) - (draw-thruster obj (the-as vector (-> s5-0 0)) (-> s5-0 0 vector 1) f28-3 f30-2) - ) - ) - (when (logtest? (rigid-body-object-flag ignition) (-> obj flags)) - (set! (-> *part-id-table* 776 init-specs 2 initial-valuef) - (* 6.0 (+ 0.25 (-> obj engine-power-factor)) (rand-vu)) - ) - (let* ((f0-40 1.0) - (f1-15 (-> obj engine-power-factor)) - (f0-41 (- f0-40 (* f1-15 f1-15))) - ) - (set! (-> *part-id-table* 776 init-specs 9 initial-valuef) (* 16.0 f0-41)) - (set! (-> *part-id-table* 776 init-specs 9 random-rangef) (* 48.0 f0-41)) - ) - (let ((s4-3 (-> *part-id-table* 776))) - (dotimes (s3-2 2) - (vector-matrix*! (the-as vector (-> s5-0 0)) (-> obj info exhaust-local-pos s3-2) (-> s5-0 1)) - (vector-rotate*! (-> s5-0 0 vector 1) (-> obj info exhaust-local-dir s3-2) (-> s5-0 1)) - (vector+float*! - (-> obj info part-vel) - (-> obj rbody state lin-velocity) - (-> s5-0 0 vector 1) - (* 0.2 (-> obj info max-engine-thrust) (+ 0.5 (-> obj engine-power-factor))) - ) - (let ((v1-117 (-> obj info part-vel)) - (a0-45 (-> obj info part-vel)) - (f0-46 300.0) - ) - (vector-float*! v1-117 a0-45 (/ 1.0 f0-46)) - ) - (set! (-> s4-3 birthaccum) (the-as float (-> obj exhaust-part-accum s3-2))) - (let ((t9-25 sp-launch-particles-var) - (a0-46 (-> obj info particle-system-2d)) - (a1-34 s4-3) - (a2-14 *launch-matrix*) - ) - (set! (-> a2-14 trans quad) (-> s5-0 0 quad 0)) - (t9-25 - (the-as sparticle-system a0-46) - a1-34 - a2-14 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - ) - (set! (-> obj exhaust-part-accum s3-2) (the-as basic (-> s4-3 birthaccum))) - ) - ) - ) - (when (< (-> obj hit-points) 0.75) - (let* ((f28-5 (+ -32768.0 (* 32768.0 (rand-vu)))) - (f24-0 (* 65536.0 (rand-vu))) - (f30-6 (cos f28-5)) - (f28-6 (sin f28-5)) - (f26-0 (cos f24-0)) - ) - (set! (-> s5-0 0 trans x) (* f30-6 (sin f24-0))) - (set! (-> s5-0 0 trans y) f28-6) - (set! (-> s5-0 0 trans z) (* f30-6 f26-0)) - ) - (set! sv-272 (the-as sparticle-launcher #f)) - (set! sv-276 (the-as sparticle-launcher #f)) - (cond - ((< (-> obj hit-points) 0.25) - (set! sv-272 (-> *part-id-table* 778)) - (set! sv-276 (-> *part-id-table* 774)) - ) - ((< (-> obj hit-points) 0.5) - (set! sv-272 (-> *part-id-table* 781)) - ) - (else - (if (< (rand-vu) 0.05) - (set! sv-272 (-> *part-id-table* 783)) - ) - ) - ) - (when sv-272 - (let ((s3-3 #f)) - (dotimes (s4-4 2) - (vector-rotate*! (-> s5-0 0 vector 2) (-> obj info smoke-local-vel s4-4) (-> s5-0 1)) - (vector+! (-> s5-0 0 vector 2) (-> s5-0 0 vector 2) (-> obj rbody state lin-velocity)) - (vector+float*! (-> s5-0 0 vector 2) (-> s5-0 0 vector 2) (-> s5-0 0 trans) (* 24576.0 (rand-vu))) - (let ((v1-152 (-> obj info part-vel)) - (a0-54 (-> s5-0 0 vector 2)) - (f0-63 300.0) + (vector-matrix*! (the-as vector (-> s5-0 0)) (-> obj info smoke-local-pos s4-4) (-> s5-0 1)) + (when (and sv-276 (< (rand-vu) 0.005)) + (let ((t9-37 sp-launch-particles-var) + (a0-56 (-> obj info particle-system-2d)) + (a1-44 sv-276) + (a2-17 *launch-matrix*) ) - (vector-float*! v1-152 a0-54 (/ 1.0 f0-63)) - ) - (vector-matrix*! (the-as vector (-> s5-0 0)) (-> obj info smoke-local-pos s4-4) (-> s5-0 1)) - (when (and sv-276 (< (rand-vu) 0.005)) - (let ((t9-37 sp-launch-particles-var) - (a0-56 (-> obj info particle-system-2d)) - (a1-44 sv-276) - (a2-17 *launch-matrix*) - ) - (set! (-> a2-17 trans quad) (-> s5-0 0 quad 0)) - (t9-37 - (the-as sparticle-system a0-56) - a1-44 - a2-17 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - ) - (set! s3-3 #t) - ) - (set! (-> sv-272 birthaccum) (the-as float (-> obj smoke-part-accum s4-4))) - (let ((t9-38 sp-launch-particles-var) - (a0-57 (-> obj info particle-system-2d)) - (a1-45 sv-272) - (a2-18 *launch-matrix*) - ) - (set! (-> a2-18 trans quad) (-> s5-0 0 quad 0)) - (t9-38 - (the-as sparticle-system a0-57) - a1-45 - a2-18 + (set! (-> a2-17 trans quad) (-> s5-0 0 quad 0)) + (t9-37 + (the-as sparticle-system a0-56) + a1-44 + a2-17 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0 ) ) - (set! (-> obj smoke-part-accum s4-4) (the-as basic (-> sv-272 birthaccum))) + (set! s3-3 #t) ) - (if s3-3 - (sound-play "damage-zaps" :id (-> obj damage-zap-sound-id)) + (set! (-> sv-272 birthaccum) (the-as float (-> obj smoke-part-accum s4-4))) + (let ((t9-38 sp-launch-particles-var) + (a0-57 (-> obj info particle-system-2d)) + (a1-45 sv-272) + (a2-18 *launch-matrix*) + ) + (set! (-> a2-18 trans quad) (-> s5-0 0 quad 0)) + (t9-38 + (the-as sparticle-system a0-57) + a1-45 + a2-18 + (the-as sparticle-launch-state #f) + (the-as sparticle-launch-control #f) + 1.0 ) + ) + (set! (-> obj smoke-part-accum s4-4) (the-as basic (-> sv-272 birthaccum))) ) + (if s3-3 + (sound-play "damage-zaps" :id (-> obj damage-zap-sound-id)) + ) ) ) - (when (>= (-> obj scrape-sound-envelope) 0.75) - (let ((a1-47 (-> *part-id-table* 773)) - (t9-40 sp-launch-particles-var) - (a0-60 (-> obj info particle-system-2d)) - (a2-20 *launch-matrix*) - ) - (set! (-> a2-20 trans quad) (-> obj impact-pos quad)) - (t9-40 - (the-as sparticle-system a0-60) - a1-47 - a2-20 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 + ) + (when (>= (-> obj scrape-sound-envelope) 0.75) + (let ((a1-47 (-> *part-id-table* 773)) + (t9-40 sp-launch-particles-var) + (a0-60 (-> obj info particle-system-2d)) + (a2-20 *launch-matrix*) ) + (set! (-> a2-20 trans quad) (-> obj impact-pos quad)) + (t9-40 + (the-as sparticle-system a0-60) + a1-47 + a2-20 + (the-as sparticle-launch-state #f) + (the-as sparticle-launch-control #f) + 1.0 ) ) ) ) - 0 - (none) ) + 0 + (none) ) diff --git a/test/decompiler/reference/jak2/levels/city/traffic/vehicle/vehicle-guard_REF.gc b/test/decompiler/reference/jak2/levels/city/traffic/vehicle/vehicle-guard_REF.gc index 60497a9673..53513f704b 100644 --- a/test/decompiler/reference/jak2/levels/city/traffic/vehicle/vehicle-guard_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/traffic/vehicle/vehicle-guard_REF.gc @@ -285,32 +285,11 @@ (vector+float*! (new 'stack-no-clear 'vector) arg0 arg1 -1638.4) (cond (arg2 - (let ((t9-0 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 771)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> arg0 quad)) - (t9-0 a0-2 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 770)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> arg0 quad)) - (t9-1 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 771) arg0) + (launch-particles (-> *part-id-table* 770) arg0) ) (else - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 772)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> arg0 quad)) - (t9-2 a0-4 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 772) arg0) ) ) 0 @@ -358,155 +337,153 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod turret-control-method-9 turret-control ((obj turret-control) (arg0 vehicle) (arg1 vector) (arg2 vector)) - (with-pp - (let ((gp-0 (new 'stack-no-clear 'turret-unknown-stack-structure))) - (set! (-> gp-0 vec-12 x) (-> pp clock seconds-per-frame)) - (let* ((v1-1 (-> gp-0 mat-1)) - (a3-1 (-> arg0 node-list data (-> obj info joint-index) bone transform)) - (a0-4 (-> a3-1 quad 0)) - (a1-4 (-> a3-1 quad 1)) - (a2-1 (-> a3-1 quad 2)) - (a3-2 (-> a3-1 trans quad)) + (let ((gp-0 (new 'stack-no-clear 'turret-unknown-stack-structure))) + (set! (-> gp-0 vec-12 x) (seconds-per-frame)) + (let* ((v1-1 (-> gp-0 mat-1)) + (a3-1 (-> arg0 node-list data (-> obj info joint-index) bone transform)) + (a0-4 (-> a3-1 quad 0)) + (a1-4 (-> a3-1 quad 1)) + (a2-1 (-> a3-1 quad 2)) + (a3-2 (-> a3-1 trans quad)) + ) + (set! (-> v1-1 quad 0) a0-4) + (set! (-> v1-1 quad 1) a1-4) + (set! (-> v1-1 quad 2) a2-1) + (set! (-> v1-1 trans quad) a3-2) + ) + (set! (-> obj target-dist) (vector-vector-distance (-> gp-0 mat-1 trans) arg1)) + (let ((f0-3 (/ (-> obj target-dist) (-> obj info shot-speed)))) + (vector+float*! (-> gp-0 vec-1) arg1 arg2 f0-3) + ) + (when (not (logtest? (-> obj flags) (turret-flag aiming))) + (logior! (-> obj flags) (turret-flag aiming)) + (turret-control-method-13 obj) + ) + (vector-matrix*! (-> gp-0 vec-6) (-> obj info local-pos) (-> gp-0 mat-1)) + (vector-! (-> gp-0 vec-5) (-> gp-0 vec-1) (-> gp-0 vec-6)) + (let* ((v1-14 (-> gp-0 mat-1)) + (a3-3 (-> arg0 node-list data 0 bone transform)) + (a0-11 (-> a3-3 quad 0)) + (a1-9 (-> a3-3 quad 1)) + (a2-3 (-> a3-3 quad 2)) + (a3-4 (-> a3-3 trans quad)) + ) + (set! (-> v1-14 quad 0) a0-11) + (set! (-> v1-14 quad 1) a1-9) + (set! (-> v1-14 quad 2) a2-3) + (set! (-> v1-14 trans quad) a3-4) + ) + (matrix-transpose! (the-as matrix (-> gp-0 vec-8)) (-> gp-0 mat-1)) + (vector-rotate*! (-> gp-0 vec-3) (-> gp-0 vec-5) (the-as matrix (-> gp-0 vec-8))) + (set! (-> gp-0 vec-4 y) (atan (-> gp-0 vec-3 x) (-> gp-0 vec-3 z))) + (let* ((v1-15 (-> gp-0 vec-3)) + (f0-11 (sqrtf (+ (* (-> v1-15 x) (-> v1-15 x)) (* (-> v1-15 z) (-> v1-15 z))))) + ) + (set! (-> gp-0 vec-4 x) (atan (-> gp-0 vec-3 y) f0-11)) + ) + (+! (-> gp-0 vec-4 x) (-> obj aim-rot-offset 0)) + (+! (-> gp-0 vec-4 y) (-> obj aim-rot-offset 1)) + (dotimes (s3-1 2) + (+! (-> obj aim-rot-vel s3-1) + (* 5.0 + (- (* 8.0 (if (or (zero? s3-1) (not (logtest? (-> obj flags) (turret-flag no-rot-y-clamp)))) + (- (-> gp-0 vec-4 data s3-1) (-> obj aim-rot s3-1)) + (deg- (-> gp-0 vec-4 data s3-1) (-> obj aim-rot s3-1)) + ) + ) + (-> obj aim-rot-vel s3-1) + ) + (-> gp-0 vec-12 x) ) - (set! (-> v1-1 quad 0) a0-4) - (set! (-> v1-1 quad 1) a1-4) - (set! (-> v1-1 quad 2) a2-1) - (set! (-> v1-1 trans quad) a3-2) - ) - (set! (-> obj target-dist) (vector-vector-distance (-> gp-0 mat-1 trans) arg1)) - (let ((f0-3 (/ (-> obj target-dist) (-> obj info shot-speed)))) - (vector+float*! (-> gp-0 vec-1) arg1 arg2 f0-3) - ) - (when (not (logtest? (-> obj flags) (turret-flag aiming))) - (logior! (-> obj flags) (turret-flag aiming)) - (turret-control-method-13 obj) - ) - (vector-matrix*! (-> gp-0 vec-6) (-> obj info local-pos) (-> gp-0 mat-1)) - (vector-! (-> gp-0 vec-5) (-> gp-0 vec-1) (-> gp-0 vec-6)) - (let* ((v1-14 (-> gp-0 mat-1)) - (a3-3 (-> arg0 node-list data 0 bone transform)) - (a0-11 (-> a3-3 quad 0)) - (a1-9 (-> a3-3 quad 1)) - (a2-3 (-> a3-3 quad 2)) - (a3-4 (-> a3-3 trans quad)) - ) - (set! (-> v1-14 quad 0) a0-11) - (set! (-> v1-14 quad 1) a1-9) - (set! (-> v1-14 quad 2) a2-3) - (set! (-> v1-14 trans quad) a3-4) - ) - (matrix-transpose! (the-as matrix (-> gp-0 vec-8)) (-> gp-0 mat-1)) - (vector-rotate*! (-> gp-0 vec-3) (-> gp-0 vec-5) (the-as matrix (-> gp-0 vec-8))) - (set! (-> gp-0 vec-4 y) (atan (-> gp-0 vec-3 x) (-> gp-0 vec-3 z))) - (let* ((v1-15 (-> gp-0 vec-3)) - (f0-11 (sqrtf (+ (* (-> v1-15 x) (-> v1-15 x)) (* (-> v1-15 z) (-> v1-15 z))))) - ) - (set! (-> gp-0 vec-4 x) (atan (-> gp-0 vec-3 y) f0-11)) - ) - (+! (-> gp-0 vec-4 x) (-> obj aim-rot-offset 0)) - (+! (-> gp-0 vec-4 y) (-> obj aim-rot-offset 1)) - (dotimes (s3-1 2) - (+! (-> obj aim-rot-vel s3-1) - (* 5.0 - (- (* 8.0 (if (or (zero? s3-1) (not (logtest? (-> obj flags) (turret-flag no-rot-y-clamp)))) - (- (-> gp-0 vec-4 data s3-1) (-> obj aim-rot s3-1)) - (deg- (-> gp-0 vec-4 data s3-1) (-> obj aim-rot s3-1)) - ) - ) - (-> obj aim-rot-vel s3-1) - ) - (-> gp-0 vec-12 x) - ) - ) - (set! (-> obj aim-rot-vel s3-1) (* (-> obj aim-rot-vel s3-1) (fmax 0.0 (- 1.0 (* 0.1 (-> gp-0 vec-12 x)))))) - (+! (-> obj aim-rot s3-1) (* (-> obj aim-rot-vel s3-1) (-> gp-0 vec-12 x))) - (when (or (zero? s3-1) (not (logtest? (-> obj flags) (turret-flag no-rot-y-clamp)))) - (let ((f0-31 (-> obj info rot-min s3-1))) - (when (< (-> obj aim-rot s3-1) f0-31) - (set! (-> obj aim-rot s3-1) f0-31) - (set! (-> obj aim-rot-vel s3-1) 0.0) - ) - ) - (let ((f0-33 (-> obj info rot-max s3-1))) - (when (< f0-33 (-> obj aim-rot s3-1)) - (set! (-> obj aim-rot s3-1) f0-33) - (set! (-> obj aim-rot-vel s3-1) 0.0) - ) + ) + (set! (-> obj aim-rot-vel s3-1) (* (-> obj aim-rot-vel s3-1) (fmax 0.0 (- 1.0 (* 0.1 (-> gp-0 vec-12 x)))))) + (+! (-> obj aim-rot s3-1) (* (-> obj aim-rot-vel s3-1) (-> gp-0 vec-12 x))) + (when (or (zero? s3-1) (not (logtest? (-> obj flags) (turret-flag no-rot-y-clamp)))) + (let ((f0-31 (-> obj info rot-min s3-1))) + (when (< (-> obj aim-rot s3-1) f0-31) + (set! (-> obj aim-rot s3-1) f0-31) + (set! (-> obj aim-rot-vel s3-1) 0.0) ) ) - ) - (logclear! (-> obj flags) (turret-flag should-shoot)) - (when (and (< (fabs (deg- (-> obj aim-rot-x) (-> gp-0 vec-4 x))) 2912.7112) - (< (fabs (deg- (-> obj aim-rot-y) (-> gp-0 vec-4 y))) 2912.7112) - (< (-> obj target-dist) (-> obj info attack-range)) - ) - (logior! (-> obj flags) (turret-flag should-shoot)) - (when (logtest? (-> obj flags) (turret-flag targetting-laser)) - (let* ((v1-88 (-> gp-0 mat-1)) - (a3-5 (-> arg0 node-list data (-> obj info joint-index) bone transform)) - (a0-29 (-> a3-5 quad 0)) - (a1-20 (-> a3-5 quad 1)) - (a2-5 (-> a3-5 quad 2)) - (a3-6 (-> a3-5 trans quad)) - ) - (set! (-> v1-88 quad 0) a0-29) - (set! (-> v1-88 quad 1) a1-20) - (set! (-> v1-88 quad 2) a2-5) - (set! (-> v1-88 trans quad) a3-6) - ) - (set! (-> gp-0 vec-7 quad) (-> gp-0 mat-1 vector 2 quad)) - (let ((s3-2 (new 'stack-no-clear 'collide-query))) - (set! (-> s3-2 start-pos quad) (-> gp-0 vec-6 quad)) - (vector-float*! (-> s3-2 move-dist) (-> gp-0 vec-7) (-> obj info attack-range)) - (let ((v1-93 s3-2)) - (set! (-> v1-93 radius) 409.6) - (set! (-> v1-93 collide-with) - (collide-spec backgnd jak bot crate enemy obstacle hit-by-others-list player-list) - ) - (set! (-> v1-93 ignore-process0) arg0) - (set! (-> v1-93 ignore-process1) #f) - (set! (-> v1-93 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (set! (-> v1-93 action-mask) (collide-action solid)) - ) - (let ((f30-1 (fill-and-probe-using-line-sphere *collide-cache* s3-2)) - (s5-1 #f) - ) - (cond - ((< f30-1 0.0) - (vector+! (-> gp-0 vec-2) (-> s3-2 start-pos) (-> s3-2 move-dist)) - ) - (else - (let* ((s4-1 (-> s3-2 best-other-tri collide-ptr)) - (a0-43 (if (type? s4-1 collide-shape-prim) - s4-1 - ) - ) - ) - (if (and a0-43 (logtest? (-> (the-as collide-shape-prim a0-43) prim-core collide-as) (collide-spec jak))) - (set! s5-1 #t) - ) - ) - (vector+float*! (-> gp-0 vec-2) (-> s3-2 start-pos) (-> s3-2 move-dist) f30-1) - (vehicle-draw-laser-spot (-> gp-0 vec-2) (-> gp-0 vec-7) s5-1) - ) - ) - (when (not s5-1) - ) - ) - ) - (let ((t9-13 vehicle-draw-laser) - (a0-48 (-> gp-0 vec-6)) - (a1-27 (-> gp-0 vec-2)) - ) - (-> gp-0 vec-7) - (t9-13 a0-48 a1-27) + (let ((f0-33 (-> obj info rot-max s3-1))) + (when (< f0-33 (-> obj aim-rot s3-1)) + (set! (-> obj aim-rot s3-1) f0-33) + (set! (-> obj aim-rot-vel s3-1) 0.0) ) ) ) ) - 0 - (none) + (logclear! (-> obj flags) (turret-flag should-shoot)) + (when (and (< (fabs (deg- (-> obj aim-rot-x) (-> gp-0 vec-4 x))) 2912.7112) + (< (fabs (deg- (-> obj aim-rot-y) (-> gp-0 vec-4 y))) 2912.7112) + (< (-> obj target-dist) (-> obj info attack-range)) + ) + (logior! (-> obj flags) (turret-flag should-shoot)) + (when (logtest? (-> obj flags) (turret-flag targetting-laser)) + (let* ((v1-88 (-> gp-0 mat-1)) + (a3-5 (-> arg0 node-list data (-> obj info joint-index) bone transform)) + (a0-29 (-> a3-5 quad 0)) + (a1-20 (-> a3-5 quad 1)) + (a2-5 (-> a3-5 quad 2)) + (a3-6 (-> a3-5 trans quad)) + ) + (set! (-> v1-88 quad 0) a0-29) + (set! (-> v1-88 quad 1) a1-20) + (set! (-> v1-88 quad 2) a2-5) + (set! (-> v1-88 trans quad) a3-6) + ) + (set! (-> gp-0 vec-7 quad) (-> gp-0 mat-1 vector 2 quad)) + (let ((s3-2 (new 'stack-no-clear 'collide-query))) + (set! (-> s3-2 start-pos quad) (-> gp-0 vec-6 quad)) + (vector-float*! (-> s3-2 move-dist) (-> gp-0 vec-7) (-> obj info attack-range)) + (let ((v1-93 s3-2)) + (set! (-> v1-93 radius) 409.6) + (set! (-> v1-93 collide-with) + (collide-spec backgnd jak bot crate enemy obstacle hit-by-others-list player-list) + ) + (set! (-> v1-93 ignore-process0) arg0) + (set! (-> v1-93 ignore-process1) #f) + (set! (-> v1-93 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (set! (-> v1-93 action-mask) (collide-action solid)) + ) + (let ((f30-1 (fill-and-probe-using-line-sphere *collide-cache* s3-2)) + (s5-1 #f) + ) + (cond + ((< f30-1 0.0) + (vector+! (-> gp-0 vec-2) (-> s3-2 start-pos) (-> s3-2 move-dist)) + ) + (else + (let* ((s4-1 (-> s3-2 best-other-tri collide-ptr)) + (a0-43 (if (type? s4-1 collide-shape-prim) + s4-1 + ) + ) + ) + (if (and a0-43 (logtest? (-> (the-as collide-shape-prim a0-43) prim-core collide-as) (collide-spec jak))) + (set! s5-1 #t) + ) + ) + (vector+float*! (-> gp-0 vec-2) (-> s3-2 start-pos) (-> s3-2 move-dist) f30-1) + (vehicle-draw-laser-spot (-> gp-0 vec-2) (-> gp-0 vec-7) s5-1) + ) + ) + (when (not s5-1) + ) + ) + ) + (let ((t9-13 vehicle-draw-laser) + (a0-48 (-> gp-0 vec-6)) + (a1-27 (-> gp-0 vec-2)) + ) + (-> gp-0 vec-7) + (t9-13 a0-48 a1-27) + ) + ) + ) ) + 0 + (none) ) ;; definition for method 10 of type turret-control @@ -609,29 +586,27 @@ ;; definition for method 16 of type turret-control ;; WARN: Return type mismatch int vs none. (defmethod turret-control-method-16 turret-control ((obj turret-control) (arg0 float) (arg1 float)) - (with-pp - (let ((f0-0 (-> pp clock seconds-per-frame))) - (set! (-> obj aim-rot-vel-x) arg1) - (set! (-> obj aim-rot-vel-y) arg0) - (dotimes (v1-1 2) - (+! (-> obj aim-rot v1-1) (* f0-0 (-> obj aim-rot-vel v1-1))) - (let ((f1-4 (-> obj info rot-min v1-1))) - (when (< (-> obj aim-rot v1-1) f1-4) - (set! (-> obj aim-rot v1-1) f1-4) - (set! (-> obj aim-rot-vel v1-1) 0.0) - ) + (let ((f0-0 (seconds-per-frame))) + (set! (-> obj aim-rot-vel-x) arg1) + (set! (-> obj aim-rot-vel-y) arg0) + (dotimes (v1-1 2) + (+! (-> obj aim-rot v1-1) (* f0-0 (-> obj aim-rot-vel v1-1))) + (let ((f1-4 (-> obj info rot-min v1-1))) + (when (< (-> obj aim-rot v1-1) f1-4) + (set! (-> obj aim-rot v1-1) f1-4) + (set! (-> obj aim-rot-vel v1-1) 0.0) ) - (let ((f1-6 (-> obj info rot-max v1-1))) - (when (< f1-6 (-> obj aim-rot v1-1)) - (set! (-> obj aim-rot v1-1) f1-6) - (set! (-> obj aim-rot-vel v1-1) 0.0) - ) + ) + (let ((f1-6 (-> obj info rot-max v1-1))) + (when (< f1-6 (-> obj aim-rot v1-1)) + (set! (-> obj aim-rot v1-1) f1-6) + (set! (-> obj aim-rot-vel v1-1) 0.0) ) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition of type vehicle-guard-target-data @@ -1235,68 +1210,64 @@ ;; definition for method 156 of type vehicle-guard ;; WARN: Return type mismatch int vs none. (defmethod vehicle-guard-method-156 vehicle-guard ((obj vehicle-guard)) - (with-pp - (let ((f30-0 (-> pp clock seconds-per-frame))) - (seek! (-> obj controls throttle) 0.0 (* 4.0 f30-0)) - (+! (-> obj controls brake) (* (- 1.0 (-> obj controls brake)) (fmin 1.0 (* 8.0 f30-0)))) - (let ((s4-0 (-> obj rbody state matrix)) - (s3-0 (-> obj rbody state matrix vector 2)) - (s5-0 (new 'stack-no-clear 'vector)) - ) - (vector-reset! s5-0) - (let ((v1-9 (handle->process (-> obj pursuit-target))) - (f28-0 0.0) - ) - (when (and v1-9 (logtest? (rigid-body-object-flag target-in-sight) (-> obj flags))) - (vector-! s5-0 (-> (the-as process-drawable v1-9) root trans) (-> obj root trans)) - (set! (-> s5-0 y) 0.0) - (vector-normalize! s5-0 1.0) - (if (< (vector-dot s3-0 s5-0) (cos 2730.6667)) - (set! f28-0 (vector-dot (the-as vector s4-0) s5-0)) - ) - ) - (+! (-> obj controls steering) (* (- f28-0 (-> obj controls steering)) (fmin 1.0 (* 8.0 f30-0)))) + (let ((f30-0 (seconds-per-frame))) + (seek! (-> obj controls throttle) 0.0 (* 4.0 f30-0)) + (+! (-> obj controls brake) (* (- 1.0 (-> obj controls brake)) (fmin 1.0 (* 8.0 f30-0)))) + (let ((s4-0 (-> obj rbody state matrix)) + (s3-0 (-> obj rbody state matrix vector 2)) + (s5-0 (new 'stack-no-clear 'vector)) ) + (vector-reset! s5-0) + (let ((v1-9 (handle->process (-> obj pursuit-target))) + (f28-0 0.0) + ) + (when (and v1-9 (logtest? (rigid-body-object-flag target-in-sight) (-> obj flags))) + (vector-! s5-0 (-> (the-as process-drawable v1-9) root trans) (-> obj root trans)) + (set! (-> s5-0 y) 0.0) + (vector-normalize! s5-0 1.0) + (if (< (vector-dot s3-0 s5-0) (cos 2730.6667)) + (set! f28-0 (vector-dot (the-as vector s4-0) s5-0)) + ) + ) + (+! (-> obj controls steering) (* (- f28-0 (-> obj controls steering)) (fmin 1.0 (* 8.0 f30-0)))) ) ) - (when (zero? (-> obj flight-level-index)) - (if (logtest? (-> obj flags) (rigid-body-object-flag riding)) - (vehicle-method-80 obj) - ) - ) - 0 - (none) ) + (when (zero? (-> obj flight-level-index)) + (if (logtest? (-> obj flags) (rigid-body-object-flag riding)) + (vehicle-method-80 obj) + ) + ) + 0 + (none) ) ;; definition for method 154 of type vehicle-guard ;; WARN: Return type mismatch int vs none. (defmethod vehicle-guard-method-154 vehicle-guard ((obj vehicle-guard)) - (with-pp - (if (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) - (rigid-body-object-method-38 obj) - ) - (set! (-> obj camera-dist2) (vector-vector-distance-squared (-> obj root trans) (camera-pos))) - (set! (-> obj player-dist2) (vector-vector-distance-squared (-> obj root trans) (target-pos 0))) - (vehicle-controller-method-18 - (-> obj controller) - (-> obj target-acceleration) - (-> obj root transv) - obj - (/ 1.0 (-> pp clock seconds-per-frame)) + (if (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) + (rigid-body-object-method-38 obj) ) - ((-> obj ai-hook) obj) - (vehicle-method-121 obj) - (vehicle-method-106 obj) - (when (not (logtest? (rigid-body-object-flag in-pursuit) (-> obj flags))) - (if (not (logtest? (-> obj target-flags) (turret-flag aiming))) - (speech-control-method-12 *speech-control* obj (speech-type speech-type-2)) - ) - (go (method-of-object obj active)) - ) - 0 - (none) + (set! (-> obj camera-dist2) (vector-vector-distance-squared (-> obj root trans) (camera-pos))) + (set! (-> obj player-dist2) (vector-vector-distance-squared (-> obj root trans) (target-pos 0))) + (vehicle-controller-method-18 + (-> obj controller) + (-> obj target-acceleration) + (-> obj root transv) + obj + (/ 1.0 (seconds-per-frame)) ) + ((-> obj ai-hook) obj) + (vehicle-method-121 obj) + (vehicle-method-106 obj) + (when (not (logtest? (rigid-body-object-flag in-pursuit) (-> obj flags))) + (if (not (logtest? (-> obj target-flags) (turret-flag aiming))) + (speech-control-method-12 *speech-control* obj (speech-type speech-type-2)) + ) + (go (method-of-object obj active)) + ) + 0 + (none) ) ;; definition for method 158 of type vehicle-guard diff --git a/test/decompiler/reference/jak2/levels/city/traffic/vehicle/vehicle-rider_REF.gc b/test/decompiler/reference/jak2/levels/city/traffic/vehicle/vehicle-rider_REF.gc index bf55edb855..07f123bcbc 100644 --- a/test/decompiler/reference/jak2/levels/city/traffic/vehicle/vehicle-rider_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/traffic/vehicle/vehicle-rider_REF.gc @@ -118,26 +118,24 @@ ;; definition for method 34 of type vehicle-rider ;; WARN: Return type mismatch int vs none. (defmethod vehicle-rider-method-34 vehicle-rider ((obj vehicle-rider)) - (with-pp - (let ((a0-1 (ppointer->process (-> obj parent)))) - (when a0-1 - (+! (-> obj anim-t) (* 41870.223 (-> obj anim-speed) (-> pp clock seconds-per-frame))) - (if (< 65536.0 (-> obj anim-t)) - (+! (-> obj anim-t) -65536.0) - ) - (let* ((f0-5 (vehicle-method-75 a0-1)) - (f0-9 (+ (* 5.0 (- 1.0 f0-5)) (sin (-> obj anim-t)))) - (gp-1 (-> obj skel root-channel 0)) - ) - (set! (-> gp-1 num-func) num-func-identity) - (set! (-> gp-1 frame-num) (ja-aframe f0-9 0)) + (let ((a0-1 (ppointer->process (-> obj parent)))) + (when a0-1 + (+! (-> obj anim-t) (* 41870.223 (-> obj anim-speed) (seconds-per-frame))) + (if (< 65536.0 (-> obj anim-t)) + (+! (-> obj anim-t) -65536.0) ) + (let* ((f0-5 (vehicle-method-75 a0-1)) + (f0-9 (+ (* 5.0 (- 1.0 f0-5)) (sin (-> obj anim-t)))) + (gp-1 (-> obj skel root-channel 0)) + ) + (set! (-> gp-1 num-func) num-func-identity) + (set! (-> gp-1 frame-num) (ja-aframe f0-9 0)) ) ) - (ja-post) - 0 - (none) ) + (ja-post) + 0 + (none) ) ;; definition for function vehicle-rider-event-handler diff --git a/test/decompiler/reference/jak2/levels/city/traffic/vehicle/vehicle-states_REF.gc b/test/decompiler/reference/jak2/levels/city/traffic/vehicle/vehicle-states_REF.gc index e7a7ad6279..fd9a5317ef 100644 --- a/test/decompiler/reference/jak2/levels/city/traffic/vehicle/vehicle-states_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/traffic/vehicle/vehicle-states_REF.gc @@ -265,7 +265,7 @@ (none) ) :trans (behavior () - (set! (-> self hit-points) (- (-> self hit-points) (* 0.5 (-> self clock seconds-per-frame)))) + (set! (-> self hit-points) (- (-> self hit-points) (* 0.5 (seconds-per-frame)))) (if (and (>= (- (current-time) (-> self state-time)) 1) (< (-> self hit-points) -0.25)) (go-virtual explode) ) diff --git a/test/decompiler/reference/jak2/levels/city/traffic/vehicle/vehicle_REF.gc b/test/decompiler/reference/jak2/levels/city/traffic/vehicle/vehicle_REF.gc index 051450bb18..34293de9ee 100644 --- a/test/decompiler/reference/jak2/levels/city/traffic/vehicle/vehicle_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/traffic/vehicle/vehicle_REF.gc @@ -205,179 +205,169 @@ ;; definition for method 104 of type vehicle ;; WARN: Return type mismatch int vs none. (defmethod vehicle-method-104 vehicle ((obj vehicle)) - (with-pp - (when (= (-> obj controller traffic sync-mask-8) (ash 1 (logand (-> obj traffic-priority-id) 7))) - (let ((a1-0 (-> obj root trans))) - (set! (-> obj flight-level) (get-height-at-point *traffic-height-map* a1-0)) - ) + (when (= (-> obj controller traffic sync-mask-8) (ash 1 (logand (-> obj traffic-priority-id) 7))) + (let ((a1-0 (-> obj root trans))) + (set! (-> obj flight-level) (get-height-at-point *traffic-height-map* a1-0)) ) - (set! (-> obj target-acceleration y) - (- (* 8.0 (- (-> obj flight-level) (-> obj root trans y))) (-> obj root transv y)) - ) - (vector-v++! (-> obj root transv) (-> obj target-acceleration)) - (vector-v++! (-> obj root trans) (-> obj root transv)) - (let* ((v1-14 (-> obj root transv)) - (f30-0 (sqrtf (+ (* (-> v1-14 x) (-> v1-14 x)) (* (-> v1-14 z) (-> v1-14 z))))) - (s5-0 (new 'stack-no-clear 'vehicle-control-point)) - ) - (when (< 40.96 f30-0) - (vector-float*! (-> s5-0 normal) (-> obj root transv) (/ 1.0 f30-0)) - (quaternion-set! - (the-as quaternion (-> s5-0 local-pos)) - 0.0 - (-> s5-0 normal x) - 0.0 - (+ 1.0 (-> s5-0 normal z)) - ) - (quaternion-normalize! (the-as quaternion (-> s5-0 local-pos))) - (quaternion-rotate-local-z! - (the-as quaternion (-> s5-0 local-pos)) - (the-as quaternion (-> s5-0 local-pos)) - (* -0.08886719 (-> obj controls steering) (fmin 81920.0 f30-0)) - ) - (quaternion-smooth-seek! - (-> obj root quat) - (-> obj root quat) - (the-as quaternion (-> s5-0 local-pos)) - (* 0.00014686584 (-> pp clock seconds-per-frame) f30-0) - ) - ) - ) - 0 - (none) ) + (set! (-> obj target-acceleration y) + (- (* 8.0 (- (-> obj flight-level) (-> obj root trans y))) (-> obj root transv y)) + ) + (vector-v++! (-> obj root transv) (-> obj target-acceleration)) + (vector-v++! (-> obj root trans) (-> obj root transv)) + (let* ((v1-14 (-> obj root transv)) + (f30-0 (sqrtf (+ (* (-> v1-14 x) (-> v1-14 x)) (* (-> v1-14 z) (-> v1-14 z))))) + (s5-0 (new 'stack-no-clear 'vehicle-control-point)) + ) + (when (< 40.96 f30-0) + (vector-float*! (-> s5-0 normal) (-> obj root transv) (/ 1.0 f30-0)) + (quaternion-set! + (the-as quaternion (-> s5-0 local-pos)) + 0.0 + (-> s5-0 normal x) + 0.0 + (+ 1.0 (-> s5-0 normal z)) + ) + (quaternion-normalize! (the-as quaternion (-> s5-0 local-pos))) + (quaternion-rotate-local-z! + (the-as quaternion (-> s5-0 local-pos)) + (the-as quaternion (-> s5-0 local-pos)) + (* -0.08886719 (-> obj controls steering) (fmin 81920.0 f30-0)) + ) + (quaternion-smooth-seek! + (-> obj root quat) + (-> obj root quat) + (the-as quaternion (-> s5-0 local-pos)) + (* 0.00014686584 (seconds-per-frame) f30-0) + ) + ) + ) + 0 + (none) ) ;; definition for method 93 of type vehicle ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod vehicle-method-93 vehicle ((obj vehicle)) - (with-pp - (let ((s5-0 (new 'stack-no-clear 'matrix))) - (set! (-> s5-0 vector 2 quad) (-> obj rbody state matrix quad 0)) - (set! (-> s5-0 trans quad) (-> obj rbody state matrix vector 2 quad)) - (let ((f28-0 (* (-> obj rbody state ang-velocity y) (vector-length (-> obj rbody state lin-velocity)))) - (f30-0 (-> pp clock seconds-per-frame)) + (let ((s5-0 (new 'stack-no-clear 'matrix))) + (set! (-> s5-0 vector 2 quad) (-> obj rbody state matrix quad 0)) + (set! (-> s5-0 trans quad) (-> obj rbody state matrix vector 2 quad)) + (let ((f28-0 (* (-> obj rbody state ang-velocity y) (vector-length (-> obj rbody state lin-velocity)))) + (f30-0 (seconds-per-frame)) + ) + (when (zero? (-> obj flight-level-index)) + (if (logtest? (-> obj flags) (rigid-body-object-flag riding)) + (vehicle-method-80 obj) ) - (when (zero? (-> obj flight-level-index)) - (if (logtest? (-> obj flags) (rigid-body-object-flag riding)) - (vehicle-method-80 obj) - ) - ) - (vector-! (-> s5-0 vector 1) (-> obj target-acceleration) (-> obj lin-acceleration)) - (let ((f0-3 (* 0.00006 (vector-dot (-> s5-0 trans) (-> s5-0 vector 1)) f30-0))) - (set! (-> s5-0 vector 0 y) (fmax 0.0 (fmin 1.0 (* 20.0 f0-3)))) - (set! (-> s5-0 vector 0 z) (fmax 0.0 (fmin 1.0 (* -40.0 f0-3)))) - (if (= obj *debug-actor*) - (format *stdcon* "delta-throttle ~f~%" f0-3) - ) - ) - (when (logtest? (-> obj flags) (rigid-body-object-flag player-edge-grabbing)) - (set! (-> s5-0 vector 0 y) 0.0) - (set! (-> s5-0 vector 0 z) 1.0) - (logclear! (-> obj flags) (rigid-body-object-flag reverse-gear)) - ) - (let ((f0-7 (* 6.0 f30-0)) - (f4-0 (* 0.00018024445 - (- (vector-dot (-> s5-0 vector 2) (-> obj target-acceleration)) f28-0) - (if (< (-> obj controls throttle) 0.0) - -1.0 - 1.0 - ) - f30-0 - ) - ) - ) - (set! (-> s5-0 vector 0 x) - (fmax -1.0 (fmin 1.0 (+ (-> obj controls steering) (fmax (fmin f4-0 f0-7) (- f0-7))))) - ) - ) ) - (set! (-> s5-0 vector 0 w) 0.0) - (vehicle-method-95 obj (the-as vector (-> s5-0 vector))) - (when (= obj *debug-actor*) - (let ((v1-43 (-> s5-0 vector))) - (format *stdcon* "steer ~f, throttle ~f, brake ~f~%" (-> v1-43 0 x) (-> v1-43 0 y) (-> v1-43 0 z)) - ) - (let ((v1-45 (-> obj controls))) - (format *stdcon* "steer ~f, throttle ~f, brake ~f~%" (-> v1-45 steering) (-> v1-45 throttle) (-> v1-45 brake)) - ) + (vector-! (-> s5-0 vector 1) (-> obj target-acceleration) (-> obj lin-acceleration)) + (let ((f0-3 (* 0.00006 (vector-dot (-> s5-0 trans) (-> s5-0 vector 1)) f30-0))) + (set! (-> s5-0 vector 0 y) (fmax 0.0 (fmin 1.0 (* 20.0 f0-3)))) + (set! (-> s5-0 vector 0 z) (fmax 0.0 (fmin 1.0 (* -40.0 f0-3)))) + (if (= obj *debug-actor*) + (format *stdcon* "delta-throttle ~f~%" f0-3) + ) + ) + (when (logtest? (-> obj flags) (rigid-body-object-flag player-edge-grabbing)) + (set! (-> s5-0 vector 0 y) 0.0) + (set! (-> s5-0 vector 0 z) 1.0) + (logclear! (-> obj flags) (rigid-body-object-flag reverse-gear)) + ) + (let ((f0-7 (* 6.0 f30-0)) + (f4-0 (* 0.00018024445 + (- (vector-dot (-> s5-0 vector 2) (-> obj target-acceleration)) f28-0) + (if (< (-> obj controls throttle) 0.0) + -1.0 + 1.0 + ) + f30-0 + ) + ) + ) + (set! (-> s5-0 vector 0 x) + (fmax -1.0 (fmin 1.0 (+ (-> obj controls steering) (fmax (fmin f4-0 f0-7) (- f0-7))))) + ) + ) + ) + (set! (-> s5-0 vector 0 w) 0.0) + (vehicle-method-95 obj (the-as vector (-> s5-0 vector))) + (when (= obj *debug-actor*) + (let ((v1-43 (-> s5-0 vector))) + (format *stdcon* "steer ~f, throttle ~f, brake ~f~%" (-> v1-43 0 x) (-> v1-43 0 y) (-> v1-43 0 z)) + ) + (let ((v1-45 (-> obj controls))) + (format *stdcon* "steer ~f, throttle ~f, brake ~f~%" (-> v1-45 steering) (-> v1-45 throttle) (-> v1-45 brake)) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 95 of type vehicle ;; WARN: Return type mismatch int vs none. (defmethod vehicle-method-95 vehicle ((obj vehicle) (arg0 vector)) - (with-pp - (seek! (-> obj controls steering) (-> arg0 x) (* 8.0 (-> pp clock seconds-per-frame))) - (seek! (-> obj controls lean-z) (-> arg0 w) (* 8.0 (-> pp clock seconds-per-frame))) - (logclear! (-> obj flags) (rigid-body-object-flag slide)) - (let ((f0-10 (-> arg0 y)) - (f30-0 (-> arg0 z)) - ) - (set! f30-0 - (cond - ((< 0.0 f0-10) - (logclear! (-> obj flags) (rigid-body-object-flag reverse-gear)) - (when (< 0.0 f30-0) - (set! f30-0 0.25) - (logior! (-> obj flags) (rigid-body-object-flag slide)) - ) - f30-0 + (seek! (-> obj controls steering) (-> arg0 x) (* 8.0 (seconds-per-frame))) + (seek! (-> obj controls lean-z) (-> arg0 w) (* 8.0 (seconds-per-frame))) + (logclear! (-> obj flags) (rigid-body-object-flag slide)) + (let ((f0-10 (-> arg0 y)) + (f30-0 (-> arg0 z)) + ) + (set! f30-0 + (cond + ((< 0.0 f0-10) + (logclear! (-> obj flags) (rigid-body-object-flag reverse-gear)) + (when (< 0.0 f30-0) + (set! f30-0 0.25) + (logior! (-> obj flags) (rigid-body-object-flag slide)) ) - ((< 0.0 f30-0) - (cond - ((logtest? (rigid-body-object-flag reverse-gear) (-> obj flags)) - (let ((f0-11 -0.5) - (f1-5 0.0) - (f2-0 -40960.0) + f30-0 + ) + ((< 0.0 f30-0) + (cond + ((logtest? (rigid-body-object-flag reverse-gear) (-> obj flags)) + (let ((f0-11 -0.5) + (f1-5 0.0) + (f2-0 -40960.0) + ) + (set! f0-10 + (fmax + f0-11 + (fmin f1-5 (* (/ 1.0 f2-0) + f30-0 + (- 8192.0 (vector-dot (-> obj rbody state lin-velocity) (-> obj rbody state matrix vector 2))) + ) + ) + ) ) - (set! f0-10 - (fmax - f0-11 - (fmin - f1-5 - (* (/ 1.0 f2-0) - f30-0 - (- 8192.0 (vector-dot (-> obj rbody state lin-velocity) (-> obj rbody state matrix vector 2))) - ) - ) - ) - ) - ) - 0.0 ) - (else - (let* ((v1-25 (-> obj rbody state lin-velocity)) - (f1-10 (+ (* (-> v1-25 x) (-> v1-25 x)) (* (-> v1-25 z) (-> v1-25 z)))) - (f2-8 8192.0) - ) - (if (< f1-10 (* f2-8 f2-8)) - (logior! (-> obj flags) (rigid-body-object-flag reverse-gear)) - ) - ) - f30-0 + 0.0 + ) + (else + (let* ((v1-25 (-> obj rbody state lin-velocity)) + (f1-10 (+ (* (-> v1-25 x) (-> v1-25 x)) (* (-> v1-25 z) (-> v1-25 z)))) + (f2-8 8192.0) + ) + (if (< f1-10 (* f2-8 f2-8)) + (logior! (-> obj flags) (rigid-body-object-flag reverse-gear)) + ) ) + f30-0 ) ) - (else - (logclear! (-> obj flags) (rigid-body-object-flag reverse-gear)) - f30-0 - ) + ) + (else + (logclear! (-> obj flags) (rigid-body-object-flag reverse-gear)) + f30-0 ) ) - (seek! (-> obj controls throttle) f0-10 (* 4.0 (-> pp clock seconds-per-frame))) - (+! (-> obj controls brake) - (* (- f30-0 (-> obj controls brake)) (fmin 1.0 (* 8.0 (-> pp clock seconds-per-frame)))) ) - ) - 0 - (none) + (seek! (-> obj controls throttle) f0-10 (* 4.0 (seconds-per-frame))) + (+! (-> obj controls brake) (* (- f30-0 (-> obj controls brake)) (fmin 1.0 (* 8.0 (seconds-per-frame))))) ) + 0 + (none) ) ;; definition for method 94 of type vehicle @@ -431,167 +421,163 @@ ;; definition for method 96 of type vehicle ;; WARN: Return type mismatch int vs none. (defmethod vehicle-method-96 vehicle ((obj vehicle)) - (with-pp - (when (and *target* (logtest? (rigid-body-object-flag ignition) (-> obj flags))) - (when (and (logtest? (-> obj flags) (rigid-body-object-flag player-driving)) - (zero? (-> obj root num-riders)) - (or (not *target*) (or (< 32768.0 (vector-vector-distance (-> obj root trans) (-> *target* control trans))) - (focus-test? *target* teleporting) - ) - ) - ) - (set! (-> obj controls throttle) 0.0) - (set! (-> obj controls steering) 0.0) - (set! (-> obj controls lean-z) 0.0) - (mem-copy! (the-as pointer (-> obj prev-controls)) (the-as pointer (-> obj controls)) 16) - ) - ) - (cond - ((zero? (-> obj crash-level)) - (seek! (-> obj force-scale) 1.0 (-> pp clock seconds-per-frame)) - ) - ((< (-> obj crash-level) 3) - (when (>= (- (current-time) (-> obj crash-time)) (the-as time-frame (-> obj crash-duration))) - (if (or (>= (-> obj rbody state matrix vector 1 y) (cos 18204.445)) - (>= (- (current-time) (-> obj crash-time)) (seconds 3)) - ) - (vehicle-method-77 obj) - ) - ) - ) - ) - (set! (-> obj force-level) (-> obj crash-level)) - (cond - ((>= (-> obj hit-points) 0.9) - (set! (-> obj power-fluctuation-factor) 0.01) - ) - ((>= (-> obj hit-points) 0.75) - (set! (-> obj power-fluctuation-factor) 0.02) - ) - ((>= (-> obj hit-points) 0.5) - (set! (-> obj power-fluctuation-factor) 0.04) - ) - ((>= (-> obj hit-points) 0.3) - (set! (-> obj power-fluctuation-factor) 0.08) - ) - ((>= (-> obj hit-points) 0.15) - (set! (-> obj power-fluctuation-factor) 0.16) - ) - ((>= (-> obj hit-points) 0.05) - (set! (-> obj power-fluctuation-factor) 0.32) - ) - (else - (set! (-> obj power-fluctuation-factor) 0.7) - ) - ) - (let ((f1-6 0.0)) - (when (logtest? (rigid-body-object-flag ignition) (-> obj flags)) - (let ((f0-23 (- 1.0 (* (rand-vu) (-> obj power-fluctuation-factor))))) - (set! f1-6 (* f0-23 f0-23)) - ) - (if (not (logtest? (-> obj flags) (rigid-body-object-flag riding))) - (set! f1-6 (* 0.5 f1-6)) - ) - ) - (+! (-> obj power-level) - (* (- f1-6 (-> obj power-level)) - (fmin 1.0 (* (+ 1.0 (* 50.0 (-> obj power-fluctuation-factor))) (-> pp clock seconds-per-frame))) - ) - ) - ) - (when (logtest? (rigid-body-object-flag turbo-boost) (-> obj flags)) - (if (or (>= (- (current-time) (-> obj turbo-boost-time)) (the-as time-frame (-> obj turbo-boost-duration))) - (and (>= (- (current-time) (-> obj turbo-boost-time)) (seconds 0.1)) (>= (-> obj controls brake) 0.75)) - ) - (logclear! (-> obj flags) (rigid-body-object-flag turbo-boost)) - ) - ) - (cond - ((logtest? (rigid-body-object-flag ignition) (-> obj flags)) - (-> obj controls throttle) - (let* ((f1-13 - (fmax - 0.0 - (fmin 1.0 (/ (* (vector-length (-> obj rbody state lin-velocity)) (-> obj info engine-intake-factor)) - (-> obj info max-xz-speed) - ) - ) - ) - ) - (f1-16 (fmin (-> obj controls throttle) (* 0.83333 (+ 0.5 f1-13)))) - ) - 0 - (if (logtest? (rigid-body-object-flag turbo-boost) (-> obj flags)) - (set! f1-16 (+ 1.0 (* (-> obj turbo-boost-factor) (-> obj info turbo-boost-factor)))) - ) - (if (< (-> obj engine-thrust) f1-16) - (+! (-> obj engine-thrust) - (* (- f1-16 (-> obj engine-thrust)) - (fmin 1.0 (* (-> obj info engine-response-rate) (-> pp clock seconds-per-frame))) - ) - ) - (seek! (-> obj engine-thrust) f1-16 (-> pp clock seconds-per-frame)) - ) - ) - ) - (else - (set! (-> obj engine-thrust) 0.0) - ) - ) - (set! (-> obj engine-power-factor) (fabs (-> obj engine-thrust))) - (if (and (logtest? (rigid-body-object-flag jump) (-> obj flags)) (< 0.0 (-> obj jump-time))) - (set! (-> obj jump-thrust) 1.0) - (set! (-> obj jump-thrust) 0.0) - ) - (cond - ((logtest? (rigid-body-object-flag jump) (-> obj flags)) - (seek! (-> obj jump-time) 0.0 (-> pp clock seconds-per-frame)) - ) - ((not (logtest? (-> obj flags) (rigid-body-object-flag in-air))) - (if (< 0.0 (-> obj jump-time)) - (logclear! (-> obj flags) (rigid-body-object-flag jump-sound)) - ) - (seek! (-> obj jump-time) 0.1 (* 0.5 (-> pp clock seconds-per-frame))) - ) - ) - (when (and (logtest? (rigid-body-object-flag jump) (-> obj flags)) - (not (logtest? (-> obj flags) (rigid-body-object-flag in-air))) - (logtest? (-> obj vehicle-jkhn1b23jn1) 1024) - ) - (logior! (-> obj flags) (rigid-body-object-flag hard-turn)) - (set! (-> obj turn-time) (current-time)) - ) - (if (or (not (logtest? (rigid-body-object-flag jump) (-> obj flags))) - (>= (- (current-time) (-> obj turn-time)) (seconds 1)) - ) - (logclear! (-> obj flags) (rigid-body-object-flag hard-turn)) - ) - (if (logtest? (-> obj flags) (rigid-body-object-flag on-ground on-flight-level)) - (set! (-> obj air-time) (current-time)) - ) - (when (logtest? (rigid-body-object-flag flight-level-transition) (-> obj flags)) - (if (or (and (> (-> obj flight-level-index) 0) - (< (fabs (- (-> obj flight-level) (-> obj rbody state position y))) 8192.0) - (< (fabs (-> obj rbody state lin-velocity y)) 8192.0) + (when (and *target* (logtest? (rigid-body-object-flag ignition) (-> obj flags))) + (when (and (logtest? (-> obj flags) (rigid-body-object-flag player-driving)) + (zero? (-> obj root num-riders)) + (or (not *target*) (or (< 32768.0 (vector-vector-distance (-> obj root trans) (-> *target* control trans))) + (focus-test? *target* teleporting) + ) ) - (and (zero? (-> obj flight-level-index)) (logtest? (-> obj flags) (rigid-body-object-flag on-ground))) - ) - (vehicle-method-79 obj) - ) - (when (and (> (-> obj flight-level-index) 0) (>= (- (current-time) (-> obj transition-time)) (seconds 2))) - (vehicle-method-79 obj) - (vehicle-method-83 obj) - ) - ) - (when (and (logtest? (rigid-body-object-flag flight-level-transition-ending) (-> obj flags)) - (>= (- (current-time) (-> obj transition-end-time)) (seconds 1)) ) - (logclear! (-> obj flags) (rigid-body-object-flag flight-level-transition-ending)) - (vehicle-method-92 obj) + (set! (-> obj controls throttle) 0.0) + (set! (-> obj controls steering) 0.0) + (set! (-> obj controls lean-z) 0.0) + (mem-copy! (the-as pointer (-> obj prev-controls)) (the-as pointer (-> obj controls)) 16) ) - 0 - (none) ) + (cond + ((zero? (-> obj crash-level)) + (seek! (-> obj force-scale) 1.0 (seconds-per-frame)) + ) + ((< (-> obj crash-level) 3) + (when (>= (- (current-time) (-> obj crash-time)) (the-as time-frame (-> obj crash-duration))) + (if (or (>= (-> obj rbody state matrix vector 1 y) (cos 18204.445)) + (>= (- (current-time) (-> obj crash-time)) (seconds 3)) + ) + (vehicle-method-77 obj) + ) + ) + ) + ) + (set! (-> obj force-level) (-> obj crash-level)) + (cond + ((>= (-> obj hit-points) 0.9) + (set! (-> obj power-fluctuation-factor) 0.01) + ) + ((>= (-> obj hit-points) 0.75) + (set! (-> obj power-fluctuation-factor) 0.02) + ) + ((>= (-> obj hit-points) 0.5) + (set! (-> obj power-fluctuation-factor) 0.04) + ) + ((>= (-> obj hit-points) 0.3) + (set! (-> obj power-fluctuation-factor) 0.08) + ) + ((>= (-> obj hit-points) 0.15) + (set! (-> obj power-fluctuation-factor) 0.16) + ) + ((>= (-> obj hit-points) 0.05) + (set! (-> obj power-fluctuation-factor) 0.32) + ) + (else + (set! (-> obj power-fluctuation-factor) 0.7) + ) + ) + (let ((f1-6 0.0)) + (when (logtest? (rigid-body-object-flag ignition) (-> obj flags)) + (let ((f0-23 (- 1.0 (* (rand-vu) (-> obj power-fluctuation-factor))))) + (set! f1-6 (* f0-23 f0-23)) + ) + (if (not (logtest? (-> obj flags) (rigid-body-object-flag riding))) + (set! f1-6 (* 0.5 f1-6)) + ) + ) + (+! (-> obj power-level) + (* (- f1-6 (-> obj power-level)) + (fmin 1.0 (* (+ 1.0 (* 50.0 (-> obj power-fluctuation-factor))) (seconds-per-frame))) + ) + ) + ) + (when (logtest? (rigid-body-object-flag turbo-boost) (-> obj flags)) + (if (or (>= (- (current-time) (-> obj turbo-boost-time)) (the-as time-frame (-> obj turbo-boost-duration))) + (and (>= (- (current-time) (-> obj turbo-boost-time)) (seconds 0.1)) (>= (-> obj controls brake) 0.75)) + ) + (logclear! (-> obj flags) (rigid-body-object-flag turbo-boost)) + ) + ) + (cond + ((logtest? (rigid-body-object-flag ignition) (-> obj flags)) + (-> obj controls throttle) + (let* ((f1-13 + (fmax + 0.0 + (fmin 1.0 (/ (* (vector-length (-> obj rbody state lin-velocity)) (-> obj info engine-intake-factor)) + (-> obj info max-xz-speed) + ) + ) + ) + ) + (f1-16 (fmin (-> obj controls throttle) (* 0.83333 (+ 0.5 f1-13)))) + ) + 0 + (if (logtest? (rigid-body-object-flag turbo-boost) (-> obj flags)) + (set! f1-16 (+ 1.0 (* (-> obj turbo-boost-factor) (-> obj info turbo-boost-factor)))) + ) + (if (< (-> obj engine-thrust) f1-16) + (+! (-> obj engine-thrust) + (* (- f1-16 (-> obj engine-thrust)) (fmin 1.0 (* (-> obj info engine-response-rate) (seconds-per-frame)))) + ) + (seek! (-> obj engine-thrust) f1-16 (seconds-per-frame)) + ) + ) + ) + (else + (set! (-> obj engine-thrust) 0.0) + ) + ) + (set! (-> obj engine-power-factor) (fabs (-> obj engine-thrust))) + (if (and (logtest? (rigid-body-object-flag jump) (-> obj flags)) (< 0.0 (-> obj jump-time))) + (set! (-> obj jump-thrust) 1.0) + (set! (-> obj jump-thrust) 0.0) + ) + (cond + ((logtest? (rigid-body-object-flag jump) (-> obj flags)) + (seek! (-> obj jump-time) 0.0 (seconds-per-frame)) + ) + ((not (logtest? (-> obj flags) (rigid-body-object-flag in-air))) + (if (< 0.0 (-> obj jump-time)) + (logclear! (-> obj flags) (rigid-body-object-flag jump-sound)) + ) + (seek! (-> obj jump-time) 0.1 (* 0.5 (seconds-per-frame))) + ) + ) + (when (and (logtest? (rigid-body-object-flag jump) (-> obj flags)) + (not (logtest? (-> obj flags) (rigid-body-object-flag in-air))) + (logtest? (-> obj vehicle-jkhn1b23jn1) 1024) + ) + (logior! (-> obj flags) (rigid-body-object-flag hard-turn)) + (set! (-> obj turn-time) (current-time)) + ) + (if (or (not (logtest? (rigid-body-object-flag jump) (-> obj flags))) + (>= (- (current-time) (-> obj turn-time)) (seconds 1)) + ) + (logclear! (-> obj flags) (rigid-body-object-flag hard-turn)) + ) + (if (logtest? (-> obj flags) (rigid-body-object-flag on-ground on-flight-level)) + (set! (-> obj air-time) (current-time)) + ) + (when (logtest? (rigid-body-object-flag flight-level-transition) (-> obj flags)) + (if (or (and (> (-> obj flight-level-index) 0) + (< (fabs (- (-> obj flight-level) (-> obj rbody state position y))) 8192.0) + (< (fabs (-> obj rbody state lin-velocity y)) 8192.0) + ) + (and (zero? (-> obj flight-level-index)) (logtest? (-> obj flags) (rigid-body-object-flag on-ground))) + ) + (vehicle-method-79 obj) + ) + (when (and (> (-> obj flight-level-index) 0) (>= (- (current-time) (-> obj transition-time)) (seconds 2))) + (vehicle-method-79 obj) + (vehicle-method-83 obj) + ) + ) + (when (and (logtest? (rigid-body-object-flag flight-level-transition-ending) (-> obj flags)) + (>= (- (current-time) (-> obj transition-end-time)) (seconds 1)) + ) + (logclear! (-> obj flags) (rigid-body-object-flag flight-level-transition-ending)) + (vehicle-method-92 obj) + ) + 0 + (none) ) ;; definition for method 97 of type vehicle @@ -599,151 +585,149 @@ ;; WARN: Return type mismatch int vs none. (defmethod vehicle-method-97 vehicle ((obj vehicle)) (local-vars (v1-88 float) (v1-98 float)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (when (logtest? (rigid-body-object-flag camera) (-> obj flags)) - (let ((f0-0 -4096000.0)) - (dotimes (v1-4 (-> *level* length)) - (let ((a0-5 (-> *level* level v1-4))) - (when (= (-> a0-5 status) 'active) - (let ((a0-7 (-> a0-5 bsp city-level-info))) - (when (nonzero? a0-7) - (let ((f1-0 (the-as float (-> a0-7 camera-ceiling)))) - (if (= (the-as meters f1-0) 0.0) - (set! f1-0 40960000.0) - ) - (set! f0-0 (fmax f0-0 f1-0)) - ) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (when (logtest? (rigid-body-object-flag camera) (-> obj flags)) + (let ((f0-0 -4096000.0)) + (dotimes (v1-4 (-> *level* length)) + (let ((a0-5 (-> *level* level v1-4))) + (when (= (-> a0-5 status) 'active) + (let ((a0-7 (-> a0-5 bsp city-level-info))) + (when (nonzero? a0-7) + (let ((f1-0 (the-as float (-> a0-7 camera-ceiling)))) + (if (= (the-as meters f1-0) 0.0) + (set! f1-0 40960000.0) + ) + (set! f0-0 (fmax f0-0 f1-0)) ) ) ) ) ) - (set-setting! 'string-camera-ceiling 'abs f0-0 0) + ) + (set-setting! 'string-camera-ceiling 'abs f0-0 0) + ) + (cond + ((logtest? (-> obj flags) (rigid-body-object-flag in-air)) + (when (or (< 55296.0 (-> obj rbody state lin-velocity y)) (>= (- (current-time) (-> obj air-time)) (seconds 0.75))) + (set-setting! 'extra-follow-height 'abs (meters -4) 0) + (send-event *camera* 'set-max-angle-offset (-> obj info camera-air-max-angle-offset)) + ) + ) + (else + (remove-setting! 'extra-follow-height) + (send-event *camera* 'set-max-angle-offset (-> obj info camera-normal-max-angle-offset)) + ) + ) + (let ((f0-5 (vector-dot (-> obj rbody state lin-velocity) (-> obj rbody state matrix vector 2)))) + (cond + ((= (-> obj crash-level) 2) + (vehicle-method-90 obj) + ) + ((< f0-5 (-> obj info camera-max-lookaround-speed)) + (vehicle-method-90 obj) + ) + ((< (+ 4096.0 (-> obj info camera-max-lookaround-speed)) f0-5) + (vehicle-method-89 obj) + ) + ) + ) + (when (not (logtest? (rigid-body-object-flag flight-level-transition) (-> obj flags))) + (let* ((f0-6 1.0) + (v1-57 (-> obj rbody state lin-velocity)) + (f0-7 + (fmin + f0-6 + (/ (sqrtf (+ (* (-> v1-57 x) (-> v1-57 x)) (* (-> v1-57 z) (-> v1-57 z)))) (-> obj info max-xz-speed)) + ) + ) + ) + (seek! (-> obj cam-speed-interp) f0-7 (* 0.1 (seconds-per-frame))) + ) + (let ((f30-0 (-> obj cam-speed-interp))) + (if #f + (set! f30-0 + (fmax 0.0 (fmin 1.0 (analog-input (the-as int (-> *cpad-list* cpads 1 righty)) 128.0 48.0 110.0 -1.0))) + ) + ) + (let ((f0-15 (lerp-scale (-> obj info camera-min-fov) (-> obj info camera-max-fov) f30-0 0.0 1.0))) + (set-setting! 'fov 'abs f0-15 0) + ) + (let ((f30-2 (lerp-scale 1.0 0.6 f30-0 0.0 1.0))) + (set-setting! 'string-min-length 'abs (* f30-2 (-> obj info camera-string-min-length)) 0) + (set-setting! 'string-max-length 'abs (* f30-2 (-> obj info camera-string-max-length)) 0) + ) + ) + ) + (when *target* + (let ((v1-83 (-> *target* draw shadow-ctrl settings shadow-dir quad))) + (set! (-> obj draw shadow-ctrl settings shadow-dir quad) v1-83) ) (cond - ((logtest? (-> obj flags) (rigid-body-object-flag in-air)) - (when (or (< 55296.0 (-> obj rbody state lin-velocity y)) (>= (- (current-time) (-> obj air-time)) (seconds 0.75))) - (set-setting! 'extra-follow-height 'abs (meters -4) 0) - (send-event *camera* 'set-max-angle-offset (-> obj info camera-air-max-angle-offset)) + ((logtest? (rigid-body-object-flag camera-rapid-track-mode) (-> obj flags)) + (.lvf vf1 (&-> (-> obj root transv) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-88 vf1) + (let ((f0-20 v1-88) + (f1-13 122880.0) + ) + (if (< f0-20 (* f1-13 f1-13)) + (vehicle-method-92 obj) + ) ) ) (else - (remove-setting! 'extra-follow-height) - (send-event *camera* 'set-max-angle-offset (-> obj info camera-normal-max-angle-offset)) - ) - ) - (let ((f0-5 (vector-dot (-> obj rbody state lin-velocity) (-> obj rbody state matrix vector 2)))) - (cond - ((= (-> obj crash-level) 2) - (vehicle-method-90 obj) - ) - ((< f0-5 (-> obj info camera-max-lookaround-speed)) - (vehicle-method-90 obj) - ) - ((< (+ 4096.0 (-> obj info camera-max-lookaround-speed)) f0-5) - (vehicle-method-89 obj) - ) - ) - ) - (when (not (logtest? (rigid-body-object-flag flight-level-transition) (-> obj flags))) - (let* ((f0-6 1.0) - (v1-57 (-> obj rbody state lin-velocity)) - (f0-7 - (fmin - f0-6 - (/ (sqrtf (+ (* (-> v1-57 x) (-> v1-57 x)) (* (-> v1-57 z) (-> v1-57 z)))) (-> obj info max-xz-speed)) - ) + (let* ((f0-21 143360.0) + (f0-23 (* f0-21 f0-21)) ) - ) - (seek! (-> obj cam-speed-interp) f0-7 (* 0.1 (-> pp clock seconds-per-frame))) + (.lvf vf1 (&-> (-> obj root transv) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-98 vf1) + (if (< f0-23 v1-98) + (vehicle-method-91 obj) + ) + ) ) - (let ((f30-0 (-> obj cam-speed-interp))) - (if #f - (set! f30-0 - (fmax 0.0 (fmin 1.0 (analog-input (the-as int (-> *cpad-list* cpads 1 righty)) 128.0 48.0 110.0 -1.0))) - ) + ) + (let ((v1-102 (math-camera-matrix)) + (a0-39 (new 'stack-no-clear 'vehicle-control-point)) + ) + (set! (-> a0-39 normal quad) (-> *target* alt-cam-pos quad)) + (vector-! (-> a0-39 local-pos) (-> a0-39 normal) (-> v1-102 trans)) + (let ((f0-26 (/ (vector-dot (-> a0-39 local-pos) (-> v1-102 vector 1)) + (vector-dot (-> a0-39 local-pos) (-> v1-102 vector 2)) + ) + ) ) - (let ((f0-15 (lerp-scale (-> obj info camera-min-fov) (-> obj info camera-max-fov) f30-0 0.0 1.0))) - (set-setting! 'fov 'abs f0-15 0) - ) - (let ((f30-2 (lerp-scale 1.0 0.6 f30-0 0.0 1.0))) - (set-setting! 'string-min-length 'abs (* f30-2 (-> obj info camera-string-min-length)) 0) - (set-setting! 'string-max-length 'abs (* f30-2 (-> obj info camera-string-max-length)) 0) - ) - ) - ) - (when *target* - (let ((v1-83 (-> *target* draw shadow-ctrl settings shadow-dir quad))) - (set! (-> obj draw shadow-ctrl settings shadow-dir quad) v1-83) - ) - (cond - ((logtest? (rigid-body-object-flag camera-rapid-track-mode) (-> obj flags)) - (.lvf vf1 (&-> (-> obj root transv) quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-88 vf1) - (let ((f0-20 v1-88) - (f1-13 122880.0) - ) - (if (< f0-20 (* f1-13 f1-13)) - (vehicle-method-92 obj) - ) + (cond + ((and (< f0-26 0.15) (< -0.5 f0-26)) + (set-setting! 'vertical-follow-matches-camera #f 0.0 0) ) - ) - (else - (let* ((f0-21 143360.0) - (f0-23 (* f0-21 f0-21)) - ) - (.lvf vf1 (&-> (-> obj root transv) quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-98 vf1) - (if (< f0-23 v1-98) - (vehicle-method-91 obj) + (else + (if (< (fabs (-> obj root transv y)) 8192.0) + (remove-setting! 'vertical-follow-matches-camera) ) ) ) ) - (let ((v1-102 (math-camera-matrix)) - (a0-39 (new 'stack-no-clear 'vehicle-control-point)) - ) - (set! (-> a0-39 normal quad) (-> *target* alt-cam-pos quad)) - (vector-! (-> a0-39 local-pos) (-> a0-39 normal) (-> v1-102 trans)) - (let ((f0-26 (/ (vector-dot (-> a0-39 local-pos) (-> v1-102 vector 1)) - (vector-dot (-> a0-39 local-pos) (-> v1-102 vector 2)) - ) - ) - ) - (cond - ((and (< f0-26 0.15) (< -0.5 f0-26)) - (set-setting! 'vertical-follow-matches-camera #f 0.0 0) - ) - (else - (if (< (fabs (-> obj root transv y)) 8192.0) - (remove-setting! 'vertical-follow-matches-camera) - ) - ) - ) - ) - ) ) - 0 ) 0 - (none) ) + 0 + (none) ) ) @@ -751,150 +735,142 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod vehicle-method-120 vehicle ((obj vehicle)) - (with-pp - (let ((s5-0 (-> obj draw shadow-ctrl))) - (when (!= *vehicle-shadow-control-disabled* s5-0) - (let ((f30-0 (vector-vector-xz-distance (camera-pos) (-> obj root trans)))) - (cond - ((< 245760.0 f30-0) - (logior! (-> s5-0 settings flags) (shadow-flags disable-draw)) - 0 - (set! (-> obj draw bounds w) (-> obj bound-radius)) - ) - (else - (let ((s4-1 (-> obj root))) - (when (or (logtest? (-> s5-0 settings flags) (shadow-flags disable-draw)) - (= (-> obj controller traffic sync-mask-8) (ash 1 (logand (-> obj traffic-priority-id) 7))) - ) - (let ((s3-0 (new 'stack-no-clear 'collide-query))) - (logclear! (-> s4-1 status) (collide-status on-ground)) - (cond - ((above-ground? s4-1 s3-0 (-> s4-1 trans) (collide-spec backgnd) 0.0 102400.0 1024.0) - (set! (-> s4-1 gspot-pos quad) (-> s4-1 trans quad)) - (set! (-> s4-1 gspot-pos y) (-> s3-0 best-other-tri intersect y)) - (set! (-> s4-1 gspot-normal quad) (-> s3-0 best-other-tri normal quad)) - (set! (-> s4-1 ground-pat) (-> s3-0 best-other-tri pat)) - (when (logtest? (-> s5-0 settings flags) (shadow-flags disable-draw)) - (set! (-> s5-0 settings top-plane w) (- (-> s5-0 settings center y) (-> obj root gspot-pos y))) - (set! (-> s5-0 settings bot-plane w) (- (-> s5-0 settings center y) (-> obj root gspot-pos y))) - ) - (let ((v1-29 s5-0)) - (logclear! (-> v1-29 settings flags) (shadow-flags disable-draw)) - ) - 0 - ) - (else - (let ((v1-31 s5-0)) - (logior! (-> v1-31 settings flags) (shadow-flags disable-draw)) - ) - 0 + (let ((s5-0 (-> obj draw shadow-ctrl))) + (when (!= *vehicle-shadow-control-disabled* s5-0) + (let ((f30-0 (vector-vector-xz-distance (camera-pos) (-> obj root trans)))) + (cond + ((< 245760.0 f30-0) + (logior! (-> s5-0 settings flags) (shadow-flags disable-draw)) + 0 + (set! (-> obj draw bounds w) (-> obj bound-radius)) + ) + (else + (let ((s4-1 (-> obj root))) + (when (or (logtest? (-> s5-0 settings flags) (shadow-flags disable-draw)) + (= (-> obj controller traffic sync-mask-8) (ash 1 (logand (-> obj traffic-priority-id) 7))) ) + (let ((s3-0 (new 'stack-no-clear 'collide-query))) + (logclear! (-> s4-1 status) (collide-status on-ground)) + (cond + ((above-ground? s4-1 s3-0 (-> s4-1 trans) (collide-spec backgnd) 0.0 102400.0 1024.0) + (set! (-> s4-1 gspot-pos quad) (-> s4-1 trans quad)) + (set! (-> s4-1 gspot-pos y) (-> s3-0 best-other-tri intersect y)) + (set! (-> s4-1 gspot-normal quad) (-> s3-0 best-other-tri normal quad)) + (set! (-> s4-1 ground-pat) (-> s3-0 best-other-tri pat)) + (when (logtest? (-> s5-0 settings flags) (shadow-flags disable-draw)) + (set! (-> s5-0 settings top-plane w) (- (-> s5-0 settings center y) (-> obj root gspot-pos y))) + (set! (-> s5-0 settings bot-plane w) (- (-> s5-0 settings center y) (-> obj root gspot-pos y))) + ) + (let ((v1-29 s5-0)) + (logclear! (-> v1-29 settings flags) (shadow-flags disable-draw)) + ) + 0 + ) + (else + (let ((v1-31 s5-0)) + (logior! (-> v1-31 settings flags) (shadow-flags disable-draw)) + ) + 0 ) ) ) ) - (set! (-> obj draw bounds w) (lerp-scale - (- (-> s5-0 settings center y) (-> obj root gspot-pos y)) - (-> obj bound-radius) - f30-0 - 81920.0 - 122880.0 - ) - ) - (if (< (-> obj draw bounds w) (-> obj bound-radius)) - (set! (-> obj draw bounds w) (-> obj bound-radius)) - ) - (let* ((f0-13 (lerp-scale 0.0 1.0 f30-0 245760.0 40960.0)) - (f30-1 (* 4096.0 (+ 5.0 (* 5.0 (- 1.0 (-> obj root gspot-normal y)))))) - (f28-0 (- (-> s5-0 settings center y) (-> obj root gspot-pos y))) - (f0-16 (fmax 0.01 (+ (* -2.0 f0-13 f0-13 f0-13) (* 3.0 f0-13 f0-13)))) - ) - (set! (-> s5-0 settings shadow-dir w) (+ 20480.0 (* 409600.0 f0-16) f28-0)) - (let ((f26-0 (+ 0.5 f0-16))) - (seek! - (-> s5-0 settings top-plane w) - (+ f28-0 (* f26-0 (- f30-1))) - (* 81920.0 (-> pp clock seconds-per-frame)) - ) - (seek! (-> s5-0 settings bot-plane w) (+ f28-0 (* f26-0 f30-1)) (* 81920.0 (-> pp clock seconds-per-frame))) + ) + (set! (-> obj draw bounds w) (lerp-scale + (- (-> s5-0 settings center y) (-> obj root gspot-pos y)) + (-> obj bound-radius) + f30-0 + 81920.0 + 122880.0 + ) ) + (if (< (-> obj draw bounds w) (-> obj bound-radius)) + (set! (-> obj draw bounds w) (-> obj bound-radius)) + ) + (let* ((f0-13 (lerp-scale 0.0 1.0 f30-0 245760.0 40960.0)) + (f30-1 (* 4096.0 (+ 5.0 (* 5.0 (- 1.0 (-> obj root gspot-normal y)))))) + (f28-0 (- (-> s5-0 settings center y) (-> obj root gspot-pos y))) + (f0-16 (fmax 0.01 (+ (* -2.0 f0-13 f0-13 f0-13) (* 3.0 f0-13 f0-13)))) + ) + (set! (-> s5-0 settings shadow-dir w) (+ 20480.0 (* 409600.0 f0-16) f28-0)) + (let ((f26-0 (+ 0.5 f0-16))) + (seek! (-> s5-0 settings top-plane w) (+ f28-0 (* f26-0 (- f30-1))) (* 81920.0 (seconds-per-frame))) + (seek! (-> s5-0 settings bot-plane w) (+ f28-0 (* f26-0 f30-1)) (* 81920.0 (seconds-per-frame))) ) ) ) ) ) ) - (set! (-> obj vehicle-jkhn1b23jn1) (the-as int (-> obj flags))) - (ja-post) - 0 - (none) ) + (set! (-> obj vehicle-jkhn1b23jn1) (the-as int (-> obj flags))) + (ja-post) + 0 + (none) ) ;; definition for method 51 of type vehicle ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod rigid-body-object-method-51 vehicle ((obj vehicle)) - (with-pp - (let ((s5-0 (new 'stack-no-clear 'collide-query))) - (let ((f30-0 -4096000.0)) - (set! (-> s5-0 start-pos quad) (-> obj rbody state position quad)) - (vector-float*! (-> s5-0 move-dist) (-> obj rbody state lin-velocity) (-> pp clock seconds-per-frame)) - (let ((v1-4 s5-0)) - (set! (-> v1-4 radius) (+ 4096.0 (-> obj root root-prim local-sphere w))) - (set! (-> v1-4 collide-with) (collide-spec - backgnd - crate - civilian - enemy - obstacle - vehicle-sphere - hit-by-player-list - hit-by-others-list - collectable - blocking-plane - pusher - vehicle-mesh-probeable - ) - ) - (set! (-> v1-4 ignore-process0) obj) - (set! (-> v1-4 ignore-process1) #f) - (set! (-> v1-4 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nopilot #x1)) - (set! (-> v1-4 action-mask) (collide-action solid)) - ) - (if (focus-test? obj dead) - (set! (-> s5-0 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nopilot #x1 :probe #x1)) - ) - (if (logtest? (-> obj flags) (rigid-body-object-flag player-touching)) - (logclear! (-> s5-0 collide-with) (collide-spec jak player-list)) - ) - (let ((s4-0 (new 'stack-no-clear 'water-info))) - (water-info-init! (-> obj root) s4-0 (collide-action solid semi-solid)) - (if (and (logtest? (-> s4-0 flags) (water-flags active)) (logtest? (water-flags over-water) (-> s4-0 flags))) - (set! f30-0 (-> s4-0 base-height)) + (let ((s5-0 (new 'stack-no-clear 'collide-query))) + (let ((f30-0 -4096000.0)) + (set! (-> s5-0 start-pos quad) (-> obj rbody state position quad)) + (vector-float*! (-> s5-0 move-dist) (-> obj rbody state lin-velocity) (seconds-per-frame)) + (let ((v1-4 s5-0)) + (set! (-> v1-4 radius) (+ 4096.0 (-> obj root root-prim local-sphere w))) + (set! (-> v1-4 collide-with) (collide-spec + backgnd + crate + civilian + enemy + obstacle + vehicle-sphere + hit-by-player-list + hit-by-others-list + collectable + blocking-plane + pusher + vehicle-mesh-probeable + ) ) + (set! (-> v1-4 ignore-process0) obj) + (set! (-> v1-4 ignore-process1) #f) + (set! (-> v1-4 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nopilot #x1)) + (set! (-> v1-4 action-mask) (collide-action solid)) + ) + (if (focus-test? obj dead) + (set! (-> s5-0 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nopilot #x1 :probe #x1)) ) - (set! (-> obj water-height) f30-0) - (when (< (- (+ (-> s5-0 start-pos y) (fmin 0.0 (-> s5-0 move-dist y))) (-> s5-0 radius)) f30-0) - (let ((v1-23 - (new 'static 'water-control :flags (water-flags active swim-ground can-ground over-water) :joint-index 3) - ) - ) - (logior! (-> s5-0 collide-with) (collide-spec water)) - (set! (-> v1-23 height) f30-0) - (set! (-> v1-23 collide-height) f30-0) - (set! (-> obj water) v1-23) + (if (logtest? (-> obj flags) (rigid-body-object-flag player-touching)) + (logclear! (-> s5-0 collide-with) (collide-spec jak player-list)) + ) + (let ((s4-0 (new 'stack-no-clear 'water-info))) + (water-info-init! (-> obj root) s4-0 (collide-action solid semi-solid)) + (if (and (logtest? (-> s4-0 flags) (water-flags active)) (logtest? (water-flags over-water) (-> s4-0 flags))) + (set! f30-0 (-> s4-0 base-height)) ) + ) + (set! (-> obj water-height) f30-0) + (when (< (- (+ (-> s5-0 start-pos y) (fmin 0.0 (-> s5-0 move-dist y))) (-> s5-0 radius)) f30-0) + (let ((v1-23 + (new 'static 'water-control :flags (water-flags active swim-ground can-ground over-water) :joint-index 3) + ) + ) + (logior! (-> s5-0 collide-with) (collide-spec water)) + (set! (-> v1-23 height) f30-0) + (set! (-> v1-23 collide-height) f30-0) + (set! (-> obj water) v1-23) ) ) - (fill-using-line-sphere *collide-cache* s5-0) ) - (set! (-> obj water) (the-as water-control 0)) - 0 - (rigid-body-control-method-10 (-> obj rbody) obj (-> obj rbody state time-remaining) (-> obj max-time-step)) - 0 - (none) + (fill-using-line-sphere *collide-cache* s5-0) ) + (set! (-> obj water) (the-as water-control 0)) + 0 + (rigid-body-control-method-10 (-> obj rbody) obj (-> obj rbody state time-remaining) (-> obj max-time-step)) + 0 + (none) ) ;; definition for method 52 of type vehicle @@ -995,7 +971,7 @@ (if (logtest? (rigid-body-object-flag nav-spheres) (-> obj flags)) (vehicle-method-143 obj) ) - (seek! (-> obj scrape-sound-envelope) 0.0 (* 2.0 (-> pp clock seconds-per-frame))) + (seek! (-> obj scrape-sound-envelope) 0.0 (* 2.0 (seconds-per-frame))) (mem-copy! (the-as pointer (-> obj prev-controls)) (the-as pointer (-> obj controls)) 16) (logclear! (-> obj flags) (rigid-body-object-flag player-impulse-force player-contact-force jump)) 0 @@ -1225,159 +1201,157 @@ ;; WARN: Return type mismatch int vs none. (defmethod vehicle-method-122 vehicle ((obj vehicle)) (local-vars (a0-23 int) (a0-25 int) (a0-35 int) (a0-37 int) (a0-40 int) (a0-42 int)) - (with-pp - (let* ((v1-1 (-> *perf-stats* data 37)) - (a0-1 (-> v1-1 ctrl)) - ) - (+! (-> v1-1 count) 1) - (b! (zero? a0-1) cfg-2 :delay (nop!)) - (.mtc0 Perf 0) - (.sync.l) - (.sync.p) - (.mtpc pcr0 0) - (.mtpc pcr1 0) - (.sync.l) - (.sync.p) - (.mtc0 Perf a0-1) - ) + (let* ((v1-1 (-> *perf-stats* data 37)) + (a0-1 (-> v1-1 ctrl)) + ) + (+! (-> v1-1 count) 1) + (b! (zero? a0-1) cfg-2 :delay (nop!)) + (.mtc0 Perf 0) (.sync.l) (.sync.p) - (label cfg-2) - 0 - (set! (-> obj camera-dist2) (vector-vector-distance-squared (-> obj root trans) (camera-pos))) - (set! (-> obj player-dist2) (vector-vector-distance-squared (-> obj root trans) (target-pos 0))) - (vehicle-controller-method-18 - (-> obj controller) - (-> obj target-acceleration) - (-> obj root transv) - obj - (/ 1.0 (-> pp clock seconds-per-frame)) + (.mtpc pcr0 0) + (.mtpc pcr1 0) + (.sync.l) + (.sync.p) + (.mtc0 Perf a0-1) + ) + (.sync.l) + (.sync.p) + (label cfg-2) + 0 + (set! (-> obj camera-dist2) (vector-vector-distance-squared (-> obj root trans) (camera-pos))) + (set! (-> obj player-dist2) (vector-vector-distance-squared (-> obj root trans) (target-pos 0))) + (vehicle-controller-method-18 + (-> obj controller) + (-> obj target-acceleration) + (-> obj root transv) + obj + (/ 1.0 (seconds-per-frame)) + ) + (cond + ((logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics)) + (if (not (vehicle-method-105 obj)) + (rigid-body-object-method-39 obj) + ) + ) + (else + (if (vehicle-method-105 obj) + (rigid-body-object-method-38 obj) + ) ) - (cond - ((logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics)) - (if (not (vehicle-method-105 obj)) - (rigid-body-object-method-39 obj) - ) - ) - (else - (if (vehicle-method-105 obj) - (rigid-body-object-method-38 obj) + ) + (cond + ((logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics)) + (vehicle-method-93 obj) + (vehicle-method-106 obj) + (vehicle-method-121 obj) + ) + (else + (let ((f1-3 (* 0.000024414063 + (vector-dot (the-as vector (-> obj node-list data 0 bone transform)) (-> obj target-acceleration)) + ) + ) ) + (+! (-> obj controls steering) (* 0.1 (- f1-3 (-> obj controls steering)))) ) - ) - (cond - ((logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics)) - (vehicle-method-93 obj) - (vehicle-method-106 obj) - (vehicle-method-121 obj) - ) - (else - (let ((f1-3 (* 0.000024414063 - (vector-dot (the-as vector (-> obj node-list data 0 bone transform)) (-> obj target-acceleration)) - ) - ) - ) - (+! (-> obj controls steering) (* 0.1 (- f1-3 (-> obj controls steering)))) - ) - (set! (-> obj controls steering) (fmax -1.0 (fmin 1.0 (-> obj controls steering)))) - (let* ((v1-42 (-> *perf-stats* data 19)) - (a0-14 (-> v1-42 ctrl)) - ) - (+! (-> v1-42 count) 1) - (b! (zero? a0-14) cfg-12 :delay (nop!)) - (.mtc0 Perf 0) - (.sync.l) - (.sync.p) - (.mtpc pcr0 0) - (.mtpc pcr1 0) - (.sync.l) - (.sync.p) - (.mtc0 Perf a0-14) - ) + (set! (-> obj controls steering) (fmax -1.0 (fmin 1.0 (-> obj controls steering)))) + (let* ((v1-42 (-> *perf-stats* data 19)) + (a0-14 (-> v1-42 ctrl)) + ) + (+! (-> v1-42 count) 1) + (b! (zero? a0-14) cfg-12 :delay (nop!)) + (.mtc0 Perf 0) (.sync.l) (.sync.p) - (label cfg-12) - 0 - (vehicle-method-104 obj) - (let ((f0-9 (-> obj player-dist2)) - (f1-8 245760.0) - ) - (when (< f0-9 (* f1-8 f1-8)) - (let ((f0-10 (vector-length (-> obj root transv)))) - (seek! (-> obj engine-power-factor) (* 0.000016276043 f0-10) (* 6.0 (-> pp clock seconds-per-frame))) - ) - (do-engine-sounds obj) - ) - ) - (when (logtest? (-> obj draw status) (draw-control-status on-screen)) - (when #t - (set! (-> obj node-list data 0 bone transform trans quad) (-> obj root trans quad)) - (draw-thrusters obj) - ) - ) - (let ((v1-70 (-> *perf-stats* data 19))) - (b! (zero? (-> v1-70 ctrl)) cfg-19 :delay (nop!)) - (.mtc0 Perf 0) - (.sync.l) - (.sync.p) - (.mfpc a0-23 pcr0) - (+! (-> v1-70 accum0) a0-23) - (.mfpc a0-25 pcr1) - (+! (-> v1-70 accum1) a0-25) - ) - (label cfg-19) - 0 - (let* ((v1-73 (-> *perf-stats* data 20)) - (a0-27 (-> v1-73 ctrl)) - ) - (+! (-> v1-73 count) 1) - (b! (zero? a0-27) cfg-21 :delay (nop!)) - (.mtc0 Perf 0) - (.sync.l) - (.sync.p) - (.mtpc pcr0 0) - (.mtpc pcr1 0) - (.sync.l) - (.sync.p) - (.mtc0 Perf a0-27) - ) + (.mtpc pcr0 0) + (.mtpc pcr1 0) (.sync.l) (.sync.p) - (label cfg-21) - 0 - (vehicle-method-120 obj) - (update-transforms (-> obj root)) - (set! (-> obj node-list data 0 bone transform trans quad) (-> obj root trans quad)) - (vehicle-method-119 obj) - (let ((v1-85 (-> *perf-stats* data 20))) - (b! (zero? (-> v1-85 ctrl)) cfg-23 :delay (nop!)) - (.mtc0 Perf 0) - (.sync.l) - (.sync.p) - (.mfpc a0-35 pcr0) - (+! (-> v1-85 accum0) a0-35) - (.mfpc a0-37 pcr1) - (+! (-> v1-85 accum1) a0-37) - ) - (label cfg-23) - 0 + (.mtc0 Perf a0-14) ) - ) - (let ((v1-88 (-> *perf-stats* data 37))) - (b! (zero? (-> v1-88 ctrl)) cfg-26 :delay (nop!)) - (.mtc0 Perf 0) (.sync.l) (.sync.p) - (.mfpc a0-40 pcr0) - (+! (-> v1-88 accum0) a0-40) - (.mfpc a0-42 pcr1) - (+! (-> v1-88 accum1) a0-42) + (label cfg-12) + 0 + (vehicle-method-104 obj) + (let ((f0-9 (-> obj player-dist2)) + (f1-8 245760.0) + ) + (when (< f0-9 (* f1-8 f1-8)) + (let ((f0-10 (vector-length (-> obj root transv)))) + (seek! (-> obj engine-power-factor) (* 0.000016276043 f0-10) (* 6.0 (seconds-per-frame))) + ) + (do-engine-sounds obj) + ) + ) + (when (logtest? (-> obj draw status) (draw-control-status on-screen)) + (when #t + (set! (-> obj node-list data 0 bone transform trans quad) (-> obj root trans quad)) + (draw-thrusters obj) + ) + ) + (let ((v1-70 (-> *perf-stats* data 19))) + (b! (zero? (-> v1-70 ctrl)) cfg-19 :delay (nop!)) + (.mtc0 Perf 0) + (.sync.l) + (.sync.p) + (.mfpc a0-23 pcr0) + (+! (-> v1-70 accum0) a0-23) + (.mfpc a0-25 pcr1) + (+! (-> v1-70 accum1) a0-25) + ) + (label cfg-19) + 0 + (let* ((v1-73 (-> *perf-stats* data 20)) + (a0-27 (-> v1-73 ctrl)) + ) + (+! (-> v1-73 count) 1) + (b! (zero? a0-27) cfg-21 :delay (nop!)) + (.mtc0 Perf 0) + (.sync.l) + (.sync.p) + (.mtpc pcr0 0) + (.mtpc pcr1 0) + (.sync.l) + (.sync.p) + (.mtc0 Perf a0-27) + ) + (.sync.l) + (.sync.p) + (label cfg-21) + 0 + (vehicle-method-120 obj) + (update-transforms (-> obj root)) + (set! (-> obj node-list data 0 bone transform trans quad) (-> obj root trans quad)) + (vehicle-method-119 obj) + (let ((v1-85 (-> *perf-stats* data 20))) + (b! (zero? (-> v1-85 ctrl)) cfg-23 :delay (nop!)) + (.mtc0 Perf 0) + (.sync.l) + (.sync.p) + (.mfpc a0-35 pcr0) + (+! (-> v1-85 accum0) a0-35) + (.mfpc a0-37 pcr1) + (+! (-> v1-85 accum1) a0-37) + ) + (label cfg-23) + 0 ) - (label cfg-26) - 0 - 0 - (none) ) + (let ((v1-88 (-> *perf-stats* data 37))) + (b! (zero? (-> v1-88 ctrl)) cfg-26 :delay (nop!)) + (.mtc0 Perf 0) + (.sync.l) + (.sync.p) + (.mfpc a0-40 pcr0) + (+! (-> v1-88 accum0) a0-40) + (.mfpc a0-42 pcr1) + (+! (-> v1-88 accum1) a0-42) + ) + (label cfg-26) + 0 + 0 + (none) ) ;; definition for method 124 of type vehicle diff --git a/test/decompiler/reference/jak2/levels/city/vinroom/vinroom-obs_REF.gc b/test/decompiler/reference/jak2/levels/city/vinroom/vinroom-obs_REF.gc index 3cc430f675..ea5d9a266b 100644 --- a/test/decompiler/reference/jak2/levels/city/vinroom/vinroom-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/vinroom/vinroom-obs_REF.gc @@ -206,14 +206,7 @@ (set! (-> v1-36 initial-valuef) (the-as float (-> (the-as lightning-tracker (-> s3-2 0)) duration))) ) ) - (let ((t9-20 sp-launch-particles-var) - (a0-33 *sp-particle-system-2d*) - (a1-21 (-> *part-id-table* 1245)) - (a2-10 *launch-matrix*) - ) - (set! (-> a2-10 trans quad) (-> s4-3 quad)) - (t9-20 a0-33 a1-21 a2-10 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1245) s4-3) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/city/vinroom/vinroom-scenes_REF.gc b/test/decompiler/reference/jak2/levels/city/vinroom/vinroom-scenes_REF.gc index e12e7eca9e..599b11a57f 100644 --- a/test/decompiler/reference/jak2/levels/city/vinroom/vinroom-scenes_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/vinroom/vinroom-scenes_REF.gc @@ -133,22 +133,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 1234)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-3d*) - (a1-3 (-> *part-id-table* 1235)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1234) gp-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 1235) gp-0) ) ) (none) diff --git a/test/decompiler/reference/jak2/levels/common/ai/ashelin/ash-shot_REF.gc b/test/decompiler/reference/jak2/levels/common/ai/ashelin/ash-shot_REF.gc index 984af51c45..af14bf1337 100644 --- a/test/decompiler/reference/jak2/levels/common/ai/ashelin/ash-shot_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/ai/ashelin/ash-shot_REF.gc @@ -324,14 +324,7 @@ (set! (-> *part-id-table* 672 init-specs 4 initial-valuef) f30-0) ) (vector-normalize! s5-1 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-5 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 673)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-2 a0-5 a1-2 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 673) gp-0) (let ((f0-4 (vector-dot s5-1 (-> (camera-matrix) vector 2)))) (when (< 0.0 f0-4) (let ((f0-5 (* f0-4 f0-4)) @@ -340,14 +333,7 @@ ) (set! (-> *part-id-table* 674 init-specs 8 initial-valuef) (* f30-1 f0-5)) (set! (-> *part-id-table* 674 init-specs 8 random-rangef) (* f28-0 f0-5)) - (let ((t9-4 sp-launch-particles-var) - (a0-6 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 674)) - (a2-4 *launch-matrix*) - ) - (set! (-> a2-4 trans quad) (-> gp-0 quad)) - (t9-4 a0-6 a1-3 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 674) gp-0) (set! (-> *part-id-table* 674 init-specs 8 initial-valuef) f30-1) (set! (-> *part-id-table* 674 init-specs 8 random-rangef) f28-0) ) diff --git a/test/decompiler/reference/jak2/levels/common/ai/ashelin/ash_REF.gc b/test/decompiler/reference/jak2/levels/common/ai/ashelin/ash_REF.gc index d7c40659c0..0804820a89 100644 --- a/test/decompiler/reference/jak2/levels/common/ai/ashelin/ash_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/ai/ashelin/ash_REF.gc @@ -822,7 +822,7 @@ (cond ((and v1-5 (= v1-5 (-> obj draw art-group data 5))) (let ((f28-0 f1-0) - (f0-4 (seek f1-0 f0-1 (* 4.0 (-> pp clock seconds-per-frame)))) + (f0-4 (seek f1-0 f0-1 (* 4.0 (seconds-per-frame)))) ) (cond ((logtest? (bot-flags bf19) (-> obj bot-flags)) @@ -890,7 +890,7 @@ ) ) (else - (let ((f30-1 (seek f1-0 f0-1 (* 4.0 (-> pp clock seconds-per-frame))))) + (let ((f30-1 (seek f1-0 f0-1 (* 4.0 (seconds-per-frame))))) (set! (-> obj travel-anim-interp) f30-1) (ja-channel-push! 2 (seconds 0.15)) (let ((a0-26 (-> obj skel root-channel 0))) diff --git a/test/decompiler/reference/jak2/levels/common/ai/bot_REF.gc b/test/decompiler/reference/jak2/levels/common/ai/bot_REF.gc index fa65d2ee0f..a6595d91dd 100644 --- a/test/decompiler/reference/jak2/levels/common/ai/bot_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/ai/bot_REF.gc @@ -1704,34 +1704,32 @@ If the player is too far, play a warning speech." ;; definition for method 208 of type bot (defmethod bot-method-208 bot ((obj bot)) - (with-pp - (let ((s5-0 #f)) - (when *target* - (let ((target-trans (-> *target* control trans)) - (bot-root (-> obj root)) - (f0-0 14336.0) - ) - (when (>= (* f0-0 f0-0) (vector-vector-distance-squared (-> bot-root trans) target-trans)) - (let ((v1-8 (-> *target* control transv))) - (when (>= (sqrtf (+ (* (-> v1-8 x) (-> v1-8 x)) (* (-> v1-8 z) (-> v1-8 z)))) 2048.0) - (if (logtest? (-> obj nav state flags) (nav-state-flag avoiding-sphere)) - (set! s5-0 #t) - ) - ) + (let ((s5-0 #f)) + (when *target* + (let ((target-trans (-> *target* control trans)) + (bot-root (-> obj root)) + (f0-0 14336.0) + ) + (when (>= (* f0-0 f0-0) (vector-vector-distance-squared (-> bot-root trans) target-trans)) + (let ((v1-8 (-> *target* control transv))) + (when (>= (sqrtf (+ (* (-> v1-8 x) (-> v1-8 x)) (* (-> v1-8 z) (-> v1-8 z)))) 2048.0) + (if (logtest? (-> obj nav state flags) (nav-state-flag avoiding-sphere)) + (set! s5-0 #t) + ) ) ) ) ) - (let* ((f0-8 (-> obj player-blocking)) - (f0-10 (if s5-0 - (seek f0-8 1.0 (-> pp clock seconds-per-frame)) - (seek f0-8 0.0 (-> pp clock seconds-per-frame)) - ) - ) - ) - (set! (-> obj player-blocking) f0-10) - (= f0-10 1.0) - ) + ) + (let* ((f0-8 (-> obj player-blocking)) + (f0-10 (if s5-0 + (seek f0-8 1.0 (seconds-per-frame)) + (seek f0-8 0.0 (seconds-per-frame)) + ) + ) + ) + (set! (-> obj player-blocking) f0-10) + (= f0-10 1.0) ) ) ) @@ -1751,50 +1749,46 @@ If the player is too far, play a warning speech." ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod bot-method-222 bot ((obj bot) (arg0 vector)) - (with-pp - (let ((s1-0 (new 'stack-no-clear 'vector)) - (s3-0 (new 'stack-no-clear 'vector)) - (v1-0 (new 'stack-no-clear 'vector)) - (s2-0 (new 'stack-no-clear 'vector)) - (s4-0 (new 'stack-no-clear 'vector)) - (s5-0 (new 'stack-no-clear 'vector)) - ) - (set! (-> v1-0 quad) (-> obj root trans quad)) - (+! (-> v1-0 y) 9216.0) - (vector-! s1-0 arg0 v1-0) - (vector-normalize! s1-0 1.0) - (vector-z-quaternion! s2-0 (-> obj root quat)) - (rot-zxy-from-vector! s4-0 s2-0) - (rot-zxy-from-vector! s3-0 s1-0) - (set! (-> s5-0 x) (fmax -3640.889 (fmin 3640.889 (deg- (-> s3-0 x) (-> s4-0 x))))) - (set! (-> s5-0 y) (fmax -3640.889 (fmin 3640.889 (deg- (-> s3-0 y) (-> s4-0 y))))) - (set! (-> s5-0 z) 0.0) - (let ((s4-1 (new 'stack-no-clear 'quaternion))) - (quaternion-zxy! s4-1 s5-0) - (quaternion-pseudo-seek - (-> obj swivel-joint-mod quat) - (-> obj swivel-joint-mod quat) - s4-1 - (-> pp clock seconds-per-frame) - ) + (let ((s1-0 (new 'stack-no-clear 'vector)) + (s3-0 (new 'stack-no-clear 'vector)) + (v1-0 (new 'stack-no-clear 'vector)) + (s2-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + (s5-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> v1-0 quad) (-> obj root trans quad)) + (+! (-> v1-0 y) 9216.0) + (vector-! s1-0 arg0 v1-0) + (vector-normalize! s1-0 1.0) + (vector-z-quaternion! s2-0 (-> obj root quat)) + (rot-zxy-from-vector! s4-0 s2-0) + (rot-zxy-from-vector! s3-0 s1-0) + (set! (-> s5-0 x) (fmax -3640.889 (fmin 3640.889 (deg- (-> s3-0 x) (-> s4-0 x))))) + (set! (-> s5-0 y) (fmax -3640.889 (fmin 3640.889 (deg- (-> s3-0 y) (-> s4-0 y))))) + (set! (-> s5-0 z) 0.0) + (let ((s4-1 (new 'stack-no-clear 'quaternion))) + (quaternion-zxy! s4-1 s5-0) + (quaternion-pseudo-seek + (-> obj swivel-joint-mod quat) + (-> obj swivel-joint-mod quat) + s4-1 + (seconds-per-frame) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 221 of type bot (defmethod bot-method-221 bot ((obj bot)) - (with-pp - (let ((gp-0 (new 'stack-no-clear 'quaternion))) - (quaternion-identity! gp-0) - (quaternion-pseudo-seek - (-> obj swivel-joint-mod quat) - (-> obj swivel-joint-mod quat) - gp-0 - (-> pp clock seconds-per-frame) - ) + (let ((gp-0 (new 'stack-no-clear 'quaternion))) + (quaternion-identity! gp-0) + (quaternion-pseudo-seek + (-> obj swivel-joint-mod quat) + (-> obj swivel-joint-mod quat) + gp-0 + (seconds-per-frame) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/common/ai/sig/sig-plasma_REF.gc b/test/decompiler/reference/jak2/levels/common/ai/sig/sig-plasma_REF.gc index 5239ce6007..75d6444c66 100644 --- a/test/decompiler/reference/jak2/levels/common/ai/sig/sig-plasma_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/ai/sig/sig-plasma_REF.gc @@ -143,89 +143,87 @@ ;; definition for method 14 of type sig-plasma (defmethod sig-plasma-method-14 sig-plasma ((obj sig-plasma) (arg0 process-focusable)) - (with-pp - (let* ((f0-0 (-> obj level)) - (f30-0 (cond - ((logtest? (-> obj flags) (plasma-flags pf01)) - (seek f0-0 1.0 (* (-> obj charge-speed) (-> pp clock seconds-per-frame))) - ) - (else - (let ((f1-1 (-> obj min-level))) - (when (< f0-0 f1-1) - (set! f1-1 f0-0) - (set! (-> obj min-level) f1-1) - ) - (seek f0-0 f1-1 (* 0.25 (-> pp clock seconds-per-frame))) + (let* ((f0-0 (-> obj level)) + (f30-0 (cond + ((logtest? (-> obj flags) (plasma-flags pf01)) + (seek f0-0 1.0 (* (-> obj charge-speed) (seconds-per-frame))) + ) + (else + (let ((f1-1 (-> obj min-level))) + (when (< f0-0 f1-1) + (set! f1-1 f0-0) + (set! (-> obj min-level) f1-1) ) + (seek f0-0 f1-1 (* 0.25 (seconds-per-frame))) ) ) ) - ) - (set! (-> obj level) f30-0) - (cond - ((= f30-0 0.0) - (let ((v1-9 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) - (set! (-> v1-9 command) (sound-command set-param)) - (set! (-> v1-9 id) (-> obj powerup-sound-id)) - (set! (-> v1-9 params volume) -4) - (set! (-> v1-9 auto-time) 24) - (set! (-> v1-9 auto-from) 2) - (set! (-> v1-9 params mask) (the-as uint 17)) - (-> v1-9 id) - ) - (let ((v1-11 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) - (set! (-> v1-11 command) (sound-command set-param)) - (set! (-> v1-11 id) (-> obj plasma-sound-id)) - (set! (-> v1-11 params volume) -4) - (set! (-> v1-11 auto-time) 24) - (set! (-> v1-11 auto-from) 2) - (set! (-> v1-11 params mask) (the-as uint 17)) - (-> v1-11 id) - ) + ) ) - (else - (let ((s4-0 (-> arg0 root trans))) - (if (movie?) - (set! s4-0 (camera-pos)) - ) - (let ((f28-0 (+ 0.25 (* 0.75 f30-0)))) - (sound-play-by-name - (static-sound-name "sig-gun-powerup") - (-> obj powerup-sound-id) - (the int (* 1024.0 f28-0)) - (the int (* 1524.0 (+ 0.5 (* 0.5 f30-0)))) - 0 - (sound-group sfx) - s4-0 - ) - (sound-play-by-name - (static-sound-name "sig-gun-plasma") - (-> obj plasma-sound-id) - (the int (* 1024.0 f28-0)) - (the int (* 1524.0 (rand-vu-float-range -1.0 1.0))) - 0 - (sound-group sfx) - s4-0 - ) + (set! (-> obj level) f30-0) + (cond + ((= f30-0 0.0) + (let ((v1-9 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> v1-9 command) (sound-command set-param)) + (set! (-> v1-9 id) (-> obj powerup-sound-id)) + (set! (-> v1-9 params volume) -4) + (set! (-> v1-9 auto-time) 24) + (set! (-> v1-9 auto-from) 2) + (set! (-> v1-9 params mask) (the-as uint 17)) + (-> v1-9 id) + ) + (let ((v1-11 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) + (set! (-> v1-11 command) (sound-command set-param)) + (set! (-> v1-11 id) (-> obj plasma-sound-id)) + (set! (-> v1-11 params volume) -4) + (set! (-> v1-11 auto-time) 24) + (set! (-> v1-11 auto-from) 2) + (set! (-> v1-11 params mask) (the-as uint 17)) + (-> v1-11 id) + ) + ) + (else + (let ((s4-0 (-> arg0 root trans))) + (if (movie?) + (set! s4-0 (camera-pos)) + ) + (let ((f28-0 (+ 0.25 (* 0.75 f30-0)))) + (sound-play-by-name + (static-sound-name "sig-gun-powerup") + (-> obj powerup-sound-id) + (the int (* 1024.0 f28-0)) + (the int (* 1524.0 (+ 0.5 (* 0.5 f30-0)))) + 0 + (sound-group sfx) + s4-0 + ) + (sound-play-by-name + (static-sound-name "sig-gun-plasma") + (-> obj plasma-sound-id) + (the int (* 1024.0 f28-0)) + (the int (* 1524.0 (rand-vu-float-range -1.0 1.0))) + 0 + (sound-group sfx) + s4-0 ) ) - (when (not (logtest? (-> arg0 draw status) (draw-control-status no-draw))) - (let ((s5-2 (vector<-cspace! (new 'stack-no-clear 'vector) (-> arg0 node-list data 24)))) - (set! (-> *part-id-table* 667 init-specs 2 initial-valuef) (lerp 409.6 9216.0 f30-0)) - (set! (-> *part-id-table* 667 init-specs 8 initial-valuef) (lerp 0.0 32.0 f30-0)) - (set! (-> *part-id-table* 668 init-specs 2 initial-valuef) (lerp 409.6 32768.0 f30-0)) - (set! (-> *part-id-table* 668 init-specs 8 initial-valuef) (lerp 0.0 16.0 f30-0)) - (set! (-> *part-id-table* 666 init-specs 2 initial-valuef) (lerp 409.6 8192.0 f30-0)) - (set! (-> *part-id-table* 665 init-specs 1 initial-valuef) (lerp 0.1 1.0 f30-0)) - (set! (-> *part-id-table* 665 init-specs 2 initial-valuef) (lerp 409.6 3686.4 f30-0)) - (spawn (-> arg0 part) s5-2) - ) + ) + (when (not (logtest? (-> arg0 draw status) (draw-control-status no-draw))) + (let ((s5-2 (vector<-cspace! (new 'stack-no-clear 'vector) (-> arg0 node-list data 24)))) + (set! (-> *part-id-table* 667 init-specs 2 initial-valuef) (lerp 409.6 9216.0 f30-0)) + (set! (-> *part-id-table* 667 init-specs 8 initial-valuef) (lerp 0.0 32.0 f30-0)) + (set! (-> *part-id-table* 668 init-specs 2 initial-valuef) (lerp 409.6 32768.0 f30-0)) + (set! (-> *part-id-table* 668 init-specs 8 initial-valuef) (lerp 0.0 16.0 f30-0)) + (set! (-> *part-id-table* 666 init-specs 2 initial-valuef) (lerp 409.6 8192.0 f30-0)) + (set! (-> *part-id-table* 665 init-specs 1 initial-valuef) (lerp 0.1 1.0 f30-0)) + (set! (-> *part-id-table* 665 init-specs 2 initial-valuef) (lerp 409.6 3686.4 f30-0)) + (spawn (-> arg0 part) s5-2) ) ) ) ) - (none) ) + (none) ) ;; definition for method 12 of type sig-plasma diff --git a/test/decompiler/reference/jak2/levels/common/ai/sig/sig-shot_REF.gc b/test/decompiler/reference/jak2/levels/common/ai/sig/sig-shot_REF.gc index e36f4bcb80..3ad6880f40 100644 --- a/test/decompiler/reference/jak2/levels/common/ai/sig/sig-shot_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/ai/sig/sig-shot_REF.gc @@ -324,14 +324,7 @@ (set! (-> *part-id-table* 652 init-specs 4 initial-valuef) f30-0) ) (vector-normalize! s5-1 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-5 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 653)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-2 a0-5 a1-2 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 653) gp-0) (let ((f0-4 (vector-dot s5-1 (-> (camera-matrix) vector 2)))) (when (< 0.0 f0-4) (let ((f0-5 (* f0-4 f0-4)) @@ -340,14 +333,7 @@ ) (set! (-> *part-id-table* 654 init-specs 8 initial-valuef) (* f30-1 f0-5)) (set! (-> *part-id-table* 654 init-specs 8 random-rangef) (* f28-0 f0-5)) - (let ((t9-4 sp-launch-particles-var) - (a0-6 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 654)) - (a2-4 *launch-matrix*) - ) - (set! (-> a2-4 trans quad) (-> gp-0 quad)) - (t9-4 a0-6 a1-3 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 654) gp-0) (set! (-> *part-id-table* 654 init-specs 8 initial-valuef) f30-1) (set! (-> *part-id-table* 654 init-specs 8 random-rangef) f28-0) ) diff --git a/test/decompiler/reference/jak2/levels/common/ai/sig/sig_REF.gc b/test/decompiler/reference/jak2/levels/common/ai/sig/sig_REF.gc index 754148ca9d..b6b3c3e985 100644 --- a/test/decompiler/reference/jak2/levels/common/ai/sig/sig_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/ai/sig/sig_REF.gc @@ -832,7 +832,7 @@ (with-pp (let ((f30-0 (-> obj nav state speed))) (let ((f0-1 (lerp-scale 0.0 1.0 f30-0 16384.0 28672.0))) - (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (-> pp clock seconds-per-frame))) + (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (seconds-per-frame))) ) (let ((f28-0 (-> obj travel-anim-interp)) (v1-7 (if (> (-> obj skel active-channels) 0) diff --git a/test/decompiler/reference/jak2/levels/common/airlock_REF.gc b/test/decompiler/reference/jak2/levels/common/airlock_REF.gc index 13404c008e..8112a01640 100644 --- a/test/decompiler/reference/jak2/levels/common/airlock_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/airlock_REF.gc @@ -352,8 +352,8 @@ ) (set! (-> obj gear-sound-id) (sound-play-by-spec (-> obj sound-gear) (new-sound-id) (the-as vector #t))) ) - (seek! (-> obj gear-rotv) arg0 (* 131072.0 (-> self clock seconds-per-frame))) - (+! (-> obj gear-rot) (* (-> obj gear-rotv) (-> self clock seconds-per-frame))) + (seek! (-> obj gear-rotv) arg0 (* 131072.0 (seconds-per-frame))) + (+! (-> obj gear-rot) (* (-> obj gear-rotv) (seconds-per-frame))) (twist-set! (-> obj gear) (the-as float #f) (the-as float #f) (-> obj gear-rot)) ) (-> obj gear-rotv) diff --git a/test/decompiler/reference/jak2/levels/common/elec-gate_REF.gc b/test/decompiler/reference/jak2/levels/common/elec-gate_REF.gc index 56a885e534..10782d3d71 100644 --- a/test/decompiler/reference/jak2/levels/common/elec-gate_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/elec-gate_REF.gc @@ -565,7 +565,7 @@ ) ) ) - (seek! (-> s3-5 pos) 1.5 (* (-> s2-2 speed-mult) (+ 0.2 (-> s3-5 pos)) (-> self clock seconds-per-frame))) + (seek! (-> s3-5 pos) 1.5 (* (-> s2-2 speed-mult) (+ 0.2 (-> s3-5 pos)) (seconds-per-frame))) (cond ((>= (-> s3-5 pos) 1.5) (let ((v1-59 (-> self l-bolt bolt-idx bolt)) @@ -716,7 +716,7 @@ (let ((go-idle? #t)) (dotimes (bolt-idx 5) (let ((left-bolt-0 (-> self l-bolt bolt-idx))) - (seek! (-> left-bolt-0 pos) 0.0 (* (- 1.14 (-> left-bolt-0 pos)) (-> self clock seconds-per-frame))) + (seek! (-> left-bolt-0 pos) 0.0 (* (- 1.14 (-> left-bolt-0 pos)) (seconds-per-frame))) (set! go-idle? (cond ((or (< 1.0 (-> left-bolt-0 pos)) (>= 0.0 (-> left-bolt-0 pos))) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/amphibian/amphibian_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/amphibian/amphibian_REF.gc index 3361873b73..1b9502ec31 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/amphibian/amphibian_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/amphibian/amphibian_REF.gc @@ -1833,17 +1833,17 @@ (cond ((= (-> self tongue-scale) 1.0) (set! (-> self tongue-mode) (the-as uint 2)) - (seek! (-> self tongue-scale) 0.0 (* 7.0 (-> self clock seconds-per-frame))) + (seek! (-> self tongue-scale) 0.0 (* 7.0 (seconds-per-frame))) ) (else - (seek! (-> self tongue-scale) 1.0 (* 7.0 (-> self clock seconds-per-frame))) + (seek! (-> self tongue-scale) 1.0 (* 7.0 (seconds-per-frame))) ) ) ) ((= v1-0 2) (if (= (-> self tongue-scale) 0.0) (set! (-> self tongue-mode) (the-as uint 3)) - (seek! (-> self tongue-scale) 0.0 (* 7.0 (-> self clock seconds-per-frame))) + (seek! (-> self tongue-scale) 0.0 (* 7.0 (seconds-per-frame))) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/centurion_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/centurion_REF.gc index 152d61f332..b8b150c283 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/centurion_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/centurion_REF.gc @@ -626,61 +626,59 @@ ;; INFO: Used lq/sq (defmethod centurion-method-181 centurion ((obj centurion) (arg0 vector)) (local-vars (sv-224 vector) (sv-240 vector) (sv-256 vector)) - (with-pp - (if (not (-> obj joint-enable)) - (return (the-as int #f)) - ) - (let ((s5-0 (new 'stack-no-clear 'vector))) - (set! (-> s5-0 quad) (-> arg0 quad)) - (let* ((v0-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 4))) - (s1-0 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) s5-0 v0-1) 1.0)) - (s3-0 (new 'stack-no-clear 'vector)) - ) - (new 'stack-no-clear 'vector) - (let ((s5-1 (new 'stack-no-clear 'quaternion))) - (vector-z-quaternion! + (if (not (-> obj joint-enable)) + (return (the-as int #f)) + ) + (let ((s5-0 (new 'stack-no-clear 'vector))) + (set! (-> s5-0 quad) (-> arg0 quad)) + (let* ((v0-1 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 4))) + (s1-0 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) s5-0 v0-1) 1.0)) + (s3-0 (new 'stack-no-clear 'vector)) + ) + (new 'stack-no-clear 'vector) + (let ((s5-1 (new 'stack-no-clear 'quaternion))) + (vector-z-quaternion! + (new 'stack-no-clear 'vector) + (quaternion*! (new 'stack-no-clear 'quaternion) (-> obj joint quat) (-> obj root quat)) + ) + (let ((s4-1 (new 'stack-no-clear 'vector))) + (vector-z-quaternion! s3-0 (-> obj root quat)) + (let ((f30-0 (deg-diff (vector-y-angle s3-0) (vector-y-angle s1-0)))) + 0.0 (new 'stack-no-clear 'vector) - (quaternion*! (new 'stack-no-clear 'quaternion) (-> obj joint quat) (-> obj root quat)) - ) - (let ((s4-1 (new 'stack-no-clear 'vector))) - (vector-z-quaternion! s3-0 (-> obj root quat)) - (let ((f30-0 (deg-diff (vector-y-angle s3-0) (vector-y-angle s1-0)))) - 0.0 - (new 'stack-no-clear 'vector) - (new 'stack-no-clear 'vector) - (let ((s2-2 (new 'stack-no-clear 'vector))) - (let ((s0-1 vector-rotate-around-y!)) - (set! sv-224 s4-1) - (set! sv-240 s1-0) - (let ((a2-1 (- (vector-y-angle s1-0)))) - (s0-1 sv-224 sv-240 a2-1) - ) - ) - (let ((s1-1 vector-rotate-around-y!) - (s0-2 s2-2) - ) - (set! sv-256 s3-0) - (let ((a2-2 (- (vector-y-angle s3-0)))) - (s1-1 s0-2 sv-256 a2-2) - ) - ) - (let ((f0-9 (deg-diff (atan (-> s4-1 y) (-> s4-1 z)) (atan (-> s2-2 y) (-> s2-2 z))))) - (set-vector! s4-1 f0-9 f30-0 0.0 1.0) + (new 'stack-no-clear 'vector) + (let ((s2-2 (new 'stack-no-clear 'vector))) + (let ((s0-1 vector-rotate-around-y!)) + (set! sv-224 s4-1) + (set! sv-240 s1-0) + (let ((a2-1 (- (vector-y-angle s1-0)))) + (s0-1 sv-224 sv-240 a2-1) ) ) + (let ((s1-1 vector-rotate-around-y!) + (s0-2 s2-2) + ) + (set! sv-256 s3-0) + (let ((a2-2 (- (vector-y-angle s3-0)))) + (s1-1 s0-2 sv-256 a2-2) + ) + ) + (let ((f0-9 (deg-diff (atan (-> s4-1 y) (-> s4-1 z)) (atan (-> s2-2 y) (-> s2-2 z))))) + (set-vector! s4-1 f0-9 f30-0 0.0 1.0) + ) ) - (quaternion-zxy! s5-1 s4-1) ) - (quaternion-pseudo-seek (-> obj joint quat) (-> obj joint quat) s5-1 (-> pp clock seconds-per-frame)) + (quaternion-zxy! s5-1 s4-1) ) + (quaternion-pseudo-seek (-> obj joint quat) (-> obj joint quat) s5-1 (seconds-per-frame)) ) ) - (vector-z-quaternion! - (-> obj shoot-dir) - (quaternion*! (new 'stack-no-clear 'quaternion) (-> obj joint quat) (-> obj root quat)) - ) - 0 ) + (vector-z-quaternion! + (-> obj shoot-dir) + (quaternion*! (new 'stack-no-clear 'quaternion) (-> obj joint quat) (-> obj root quat)) + ) + 0 ) ;; failed to figure out what this is: @@ -1041,152 +1039,150 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (let ((f30-0 (* 4.0 (-> pp clock seconds-per-frame)))) - (set! (-> *part-id-table* 2104 init-specs 2 initial-valuef) - (lerp - (-> *part-id-table* 2104 init-specs 2 initial-valuef) - (the float *centurion-shield-glow-spt-scale-x*) - f30-0 - ) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((f30-0 (* 4.0 (seconds-per-frame)))) + (set! (-> *part-id-table* 2104 init-specs 2 initial-valuef) + (lerp + (-> *part-id-table* 2104 init-specs 2 initial-valuef) + (the float *centurion-shield-glow-spt-scale-x*) + f30-0 ) - (set! (-> *part-id-table* 2104 init-specs 4 initial-valuef) - (lerp - (-> *part-id-table* 2104 init-specs 4 initial-valuef) - (the float *centurion-shield-glow-spt-scale-y*) - f30-0 - ) - ) - (set! (-> *part-id-table* 2103 init-specs 5 initial-valuef) - (lerp - (-> *part-id-table* 2103 init-specs 5 initial-valuef) - (the float *centurion-shield-center-spt-scale-x*) - f30-0 - ) - ) - (set! (-> *part-id-table* 2103 init-specs 9 initial-valuef) - (lerp - (-> *part-id-table* 2103 init-specs 9 initial-valuef) - (the float *centurion-shield-center-spt-scale-y*) - f30-0 - ) - ) - (set! (-> *part-id-table* 2102 init-specs 5 initial-valuef) - (lerp (-> *part-id-table* 2102 init-specs 5 initial-valuef) (the float *centurion-shield-spt-scale-x*) f30-0) - ) - (set! (-> *part-id-table* 2102 init-specs 9 initial-valuef) - (lerp (-> *part-id-table* 2102 init-specs 9 initial-valuef) (the float *centurion-shield-spt-scale-y*) f30-0) - ) - (set! (-> *part-id-table* 2101 init-specs 5 initial-valuef) - (lerp - (-> *part-id-table* 2101 init-specs 5 initial-valuef) - (the float *centurion-shield-2-spt-scale-x*) - f30-0 - ) - ) - (set! (-> *part-id-table* 2101 init-specs 9 initial-valuef) - (lerp - (-> *part-id-table* 2101 init-specs 9 initial-valuef) - (the float *centurion-shield-2-spt-scale-y*) - f30-0 - ) - ) - (cond - ((logtest? (-> obj fact enemy-options) (enemy-option user0)) - (set! (-> *part-id-table* 2101 init-specs 10 initial-valuef) 0.0) - (set! (-> *part-id-table* 2101 init-specs 10 random-rangef) 0.0) - (set! (-> *part-id-table* 2102 init-specs 10 initial-valuef) 0.0) - (set! (-> *part-id-table* 2102 init-specs 10 random-rangef) 0.0) - (set! (-> *part-id-table* 2104 init-specs 5 initial-valuef) 0.0) - (set! (-> *part-id-table* 2104 init-specs 5 random-rangef) 0.0) - ) - (else - (set! (-> *part-id-table* 2101 init-specs 10 initial-valuef) 128.0) - (set! (-> *part-id-table* 2101 init-specs 10 random-rangef) 128.0) - (set! (-> *part-id-table* 2102 init-specs 10 initial-valuef) 128.0) - (set! (-> *part-id-table* 2102 init-specs 10 random-rangef) 128.0) - (set! (-> *part-id-table* 2104 init-specs 5 initial-valuef) 64.0) - (set! (-> *part-id-table* 2104 init-specs 5 random-rangef) 64.0) ) - ) - (set! (-> *part-id-table* 2102 init-specs 13 initial-valuef) - (lerp (-> *part-id-table* 2102 init-specs 13 initial-valuef) 10.0 f30-0) + (set! (-> *part-id-table* 2104 init-specs 4 initial-valuef) + (lerp + (-> *part-id-table* 2104 init-specs 4 initial-valuef) + (the float *centurion-shield-glow-spt-scale-y*) + f30-0 ) - ) - (let ((a0-11 (handle->process (-> obj focus handle)))) - (if a0-11 - (centurion-method-181 obj (get-trans (the-as process-focusable a0-11) 3)) ) - ) - (logior! (-> obj skel status) (joint-control-status sync-math)) - (los-control-method-9 (-> obj los) (the-as process-focusable #f) (the-as vector #f) 2048.0) - (let ((t9-12 (method-of-type nav-enemy track-target!))) - (t9-12 obj) - ) - (when (not (logtest? (-> obj draw status) (draw-control-status no-draw))) - (let ((s5-1 (new 'stack-no-clear 'matrix))) - (let* ((a2-10 (-> obj node-list data 12 bone transform)) - (v1-131 (-> a2-10 quad 0)) - (a0-18 (-> a2-10 quad 1)) - (a1-13 (-> a2-10 quad 2)) - (a2-11 (-> a2-10 trans quad)) - ) - (set! (-> s5-1 quad 0) v1-131) - (set! (-> s5-1 quad 1) a0-18) - (set! (-> s5-1 quad 2) a1-13) - (set! (-> s5-1 trans quad) a2-11) - ) - (let ((s4-1 (new 'stack-no-clear 'matrix))) - (if (logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) - (vector-negate-in-place! (the-as vector (-> s5-1 vector))) - ) - (matrix-rotate-y! s4-1 (if (logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) - 2548.6223 - -2548.6223 - ) - ) - (matrix*! s5-1 s4-1 s5-1) - (matrix-rotate-z! s4-1 (if (logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) - 691.76886 - -691.76886 - ) - ) - (matrix*! s5-1 s4-1 s5-1) - ) - (let ((a1-20 (-> s5-1 trans))) - (let ((v1-143 (-> s5-1 trans))) - (let ((a0-25 (-> s5-1 vector))) - (let ((a2-18 (the-as float (if (logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) - -997237719 - #x43a3d70a - ) - ) - ) - ) - (.mov vf7 a2-18) - ) - (.lvf vf5 (&-> a0-25 0 quad)) - ) - (.lvf vf4 (&-> v1-143 quad)) + (set! (-> *part-id-table* 2103 init-specs 5 initial-valuef) + (lerp + (-> *part-id-table* 2103 init-specs 5 initial-valuef) + (the float *centurion-shield-center-spt-scale-x*) + f30-0 ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-20 quad) vf6) ) - (spawn-with-matrix (-> obj part) s5-1) + (set! (-> *part-id-table* 2103 init-specs 9 initial-valuef) + (lerp + (-> *part-id-table* 2103 init-specs 9 initial-valuef) + (the float *centurion-shield-center-spt-scale-y*) + f30-0 + ) + ) + (set! (-> *part-id-table* 2102 init-specs 5 initial-valuef) + (lerp (-> *part-id-table* 2102 init-specs 5 initial-valuef) (the float *centurion-shield-spt-scale-x*) f30-0) + ) + (set! (-> *part-id-table* 2102 init-specs 9 initial-valuef) + (lerp (-> *part-id-table* 2102 init-specs 9 initial-valuef) (the float *centurion-shield-spt-scale-y*) f30-0) + ) + (set! (-> *part-id-table* 2101 init-specs 5 initial-valuef) + (lerp + (-> *part-id-table* 2101 init-specs 5 initial-valuef) + (the float *centurion-shield-2-spt-scale-x*) + f30-0 + ) + ) + (set! (-> *part-id-table* 2101 init-specs 9 initial-valuef) + (lerp + (-> *part-id-table* 2101 init-specs 9 initial-valuef) + (the float *centurion-shield-2-spt-scale-y*) + f30-0 + ) + ) + (cond + ((logtest? (-> obj fact enemy-options) (enemy-option user0)) + (set! (-> *part-id-table* 2101 init-specs 10 initial-valuef) 0.0) + (set! (-> *part-id-table* 2101 init-specs 10 random-rangef) 0.0) + (set! (-> *part-id-table* 2102 init-specs 10 initial-valuef) 0.0) + (set! (-> *part-id-table* 2102 init-specs 10 random-rangef) 0.0) + (set! (-> *part-id-table* 2104 init-specs 5 initial-valuef) 0.0) + (set! (-> *part-id-table* 2104 init-specs 5 random-rangef) 0.0) + ) + (else + (set! (-> *part-id-table* 2101 init-specs 10 initial-valuef) 128.0) + (set! (-> *part-id-table* 2101 init-specs 10 random-rangef) 128.0) + (set! (-> *part-id-table* 2102 init-specs 10 initial-valuef) 128.0) + (set! (-> *part-id-table* 2102 init-specs 10 random-rangef) 128.0) + (set! (-> *part-id-table* 2104 init-specs 5 initial-valuef) 64.0) + (set! (-> *part-id-table* 2104 init-specs 5 random-rangef) 64.0) ) ) - (none) + (set! (-> *part-id-table* 2102 init-specs 13 initial-valuef) + (lerp (-> *part-id-table* 2102 init-specs 13 initial-valuef) 10.0 f30-0) + ) ) + (let ((a0-11 (handle->process (-> obj focus handle)))) + (if a0-11 + (centurion-method-181 obj (get-trans (the-as process-focusable a0-11) 3)) + ) + ) + (logior! (-> obj skel status) (joint-control-status sync-math)) + (los-control-method-9 (-> obj los) (the-as process-focusable #f) (the-as vector #f) 2048.0) + (let ((t9-12 (method-of-type nav-enemy track-target!))) + (t9-12 obj) + ) + (when (not (logtest? (-> obj draw status) (draw-control-status no-draw))) + (let ((s5-1 (new 'stack-no-clear 'matrix))) + (let* ((a2-10 (-> obj node-list data 12 bone transform)) + (v1-131 (-> a2-10 quad 0)) + (a0-18 (-> a2-10 quad 1)) + (a1-13 (-> a2-10 quad 2)) + (a2-11 (-> a2-10 trans quad)) + ) + (set! (-> s5-1 quad 0) v1-131) + (set! (-> s5-1 quad 1) a0-18) + (set! (-> s5-1 quad 2) a1-13) + (set! (-> s5-1 trans quad) a2-11) + ) + (let ((s4-1 (new 'stack-no-clear 'matrix))) + (if (logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) + (vector-negate-in-place! (the-as vector (-> s5-1 vector))) + ) + (matrix-rotate-y! s4-1 (if (logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) + 2548.6223 + -2548.6223 + ) + ) + (matrix*! s5-1 s4-1 s5-1) + (matrix-rotate-z! s4-1 (if (logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) + 691.76886 + -691.76886 + ) + ) + (matrix*! s5-1 s4-1 s5-1) + ) + (let ((a1-20 (-> s5-1 trans))) + (let ((v1-143 (-> s5-1 trans))) + (let ((a0-25 (-> s5-1 vector))) + (let ((a2-18 (the-as float (if (logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) + -997237719 + #x43a3d70a + ) + ) + ) + ) + (.mov vf7 a2-18) + ) + (.lvf vf5 (&-> a0-25 0 quad)) + ) + (.lvf vf4 (&-> v1-143 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-20 quad) vf6) + ) + (spawn-with-matrix (-> obj part) s5-1) + ) + ) + (none) ) ) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/flitter_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/flitter_REF.gc index 405917a396..394917c91f 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/flitter_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/flitter_REF.gc @@ -154,30 +154,9 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) f30-0 (-> arg2 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 648)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 649)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 650)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-3 a0-4 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 648) gp-0) + (launch-particles (-> *part-id-table* 649) gp-0) + (launch-particles (-> *part-id-table* 650) gp-0) ) ) ) @@ -1322,7 +1301,7 @@ ) (until (ja-done? 0) (suspend) - (set! f30-0 (seek f30-0 (flitter-method-183 self) (* 0.2 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 (flitter-method-183 self) (* 0.2 (seconds-per-frame)))) (ja :num! (seek! max 0.8)) (let ((a0-7 (-> self skel root-channel 1))) (set! (-> a0-7 frame-interp 1) f30-0) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/guards/crimson-guard-level_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/guards/crimson-guard-level_REF.gc index c3d39acec1..b3c741934c 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/guards/crimson-guard-level_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/guards/crimson-guard-level_REF.gc @@ -1468,139 +1468,130 @@ (sv-304 vector) (sv-320 vector) ) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (set! sv-240 arg0) - (let ((s0-0 (new 'stack-no-clear 'vector))) - (let ((v1-1 (-> obj root trans))) - (let ((a0-1 *y-vector*)) - (let ((a1-2 8192.0)) - (.mov vf7 a1-2) - ) - (.lvf vf5 (&-> a0-1 quad)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (set! sv-240 arg0) + (let ((s0-0 (new 'stack-no-clear 'vector))) + (let ((v1-1 (-> obj root trans))) + (let ((a0-1 *y-vector*)) + (let ((a1-2 8192.0)) + (.mov vf7 a1-2) ) - (.lvf vf4 (&-> v1-1 quad)) + (.lvf vf5 (&-> a0-1 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> s0-0 quad) vf6) - (set! sv-320 (new 'stack-no-clear 'vector)) - (set! sv-304 (new 'stack-no-clear 'vector)) - (let ((s1-0 (new 'stack-no-clear 'vector)) - (s2-0 (new 'stack-no-clear 'vector)) - (s5-0 (new 'stack-no-clear 'vector)) + (.lvf vf4 (&-> v1-1 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> s0-0 quad) vf6) + (set! sv-320 (new 'stack-no-clear 'vector)) + (set! sv-304 (new 'stack-no-clear 'vector)) + (let ((s1-0 (new 'stack-no-clear 'vector)) + (s2-0 (new 'stack-no-clear 'vector)) + (s5-0 (new 'stack-no-clear 'vector)) + ) + (-> obj node-list data 4 bone transform) + (let ((s4-0 (vector-x-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) + (s3-0 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) ) - (-> obj node-list data 4 bone transform) - (let ((s4-0 (vector-x-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) - (s3-0 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) - ) - (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)) - (set! (-> s0-0 quad) (-> obj root trans quad)) - (cond - ((logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) - (let ((a1-6 s0-0)) - (let ((v1-14 s0-0)) - (let ((a0-9 s4-0)) - (let ((a2-1 4096.0)) - (.mov vf7 a2-1) - ) - (.lvf vf5 (&-> a0-9 quad)) + (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)) + (set! (-> s0-0 quad) (-> obj root trans quad)) + (cond + ((logtest? (enemy-flag dislike-combo) (-> obj enemy-flags)) + (let ((a1-6 s0-0)) + (let ((v1-14 s0-0)) + (let ((a0-9 s4-0)) + (let ((a2-1 4096.0)) + (.mov vf7 a2-1) ) - (.lvf vf4 (&-> v1-14 quad)) + (.lvf vf5 (&-> a0-9 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-6 quad) vf6) + (.lvf vf4 (&-> v1-14 quad)) ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-6 quad) vf6) ) - (else - (let ((a1-7 s0-0)) - (let ((v1-15 s0-0)) - (let ((a0-10 s4-0)) - (let ((a2-3 2048.0)) - (.mov vf7 a2-3) - ) - (.lvf vf5 (&-> a0-10 quad)) + ) + (else + (let ((a1-7 s0-0)) + (let ((v1-15 s0-0)) + (let ((a0-10 s4-0)) + (let ((a2-3 2048.0)) + (.mov vf7 a2-3) ) - (.lvf vf4 (&-> v1-15 quad)) + (.lvf vf5 (&-> a0-10 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-7 quad) vf6) + (.lvf vf4 (&-> v1-15 quad)) ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-7 quad) vf6) ) ) - (let ((a1-8 s0-0)) - (let ((v1-16 s0-0)) - (let ((a0-11 s3-0)) - (let ((a2-5 8540.16)) - (.mov vf7 a2-5) - ) - (.lvf vf5 (&-> a0-11 quad)) + ) + (let ((a1-8 s0-0)) + (let ((v1-16 s0-0)) + (let ((a0-11 s3-0)) + (let ((a2-5 8540.16)) + (.mov vf7 a2-5) ) - (.lvf vf4 (&-> v1-16 quad)) + (.lvf vf5 (&-> a0-11 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-8 quad) vf6) + (.lvf vf4 (&-> v1-16 quad)) ) - (vector-normalize! (vector-! sv-320 sv-240 s0-0) 1.0) - (set! sv-288 (new 'stack-no-clear 'vector)) - (let ((v1-20 (-> sv-240 quad))) - (set! (-> sv-288 quad) v1-20) - ) - (set! sv-256 vector-rotate90-around-y!) - (set! sv-272 (new 'stack-no-clear 'vector)) - (let* ((a1-13 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) sv-288 s0-0) -2998.272)) - (v0-5 (sv-256 sv-272 a1-13)) - ) - (vector+! sv-288 sv-288 v0-5) - ) - (vector-normalize! (vector-! sv-320 sv-288 s0-0) 1.0) - (vector-z-quaternion! sv-304 (-> obj root quat)) - (rot-zxy-from-vector! s2-0 sv-304) - (rot-zxy-from-vector! s1-0 sv-320) - (set! (-> s5-0 x) (fmax -14563.556 (fmin 14563.556 (deg- (-> s1-0 x) (-> s2-0 x))))) - (set! (-> s5-0 y) (fmax -14563.556 (fmin 14563.556 (deg- (-> s1-0 y) (-> s2-0 y))))) - (set! (-> s5-0 z) 0.0) - (let ((s2-1 (new 'stack-no-clear 'quaternion))) - (let ((s1-1 (new 'stack-no-clear 'quaternion))) - (quaternion-vector-angle! s2-1 s4-0 (-> s5-0 x)) - (quaternion-vector-angle! s1-1 s3-0 (-> s5-0 y)) - (quaternion*! s2-1 s1-1 s2-1) - ) - (quaternion-pseudo-seek (-> obj joint quat) (-> obj joint quat) s2-1 (-> pp clock seconds-per-frame)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-8 quad) vf6) + ) + (vector-normalize! (vector-! sv-320 sv-240 s0-0) 1.0) + (set! sv-288 (new 'stack-no-clear 'vector)) + (let ((v1-20 (-> sv-240 quad))) + (set! (-> sv-288 quad) v1-20) + ) + (set! sv-256 vector-rotate90-around-y!) + (set! sv-272 (new 'stack-no-clear 'vector)) + (let* ((a1-13 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) sv-288 s0-0) -2998.272)) + (v0-5 (sv-256 sv-272 a1-13)) + ) + (vector+! sv-288 sv-288 v0-5) + ) + (vector-normalize! (vector-! sv-320 sv-288 s0-0) 1.0) + (vector-z-quaternion! sv-304 (-> obj root quat)) + (rot-zxy-from-vector! s2-0 sv-304) + (rot-zxy-from-vector! s1-0 sv-320) + (set! (-> s5-0 x) (fmax -14563.556 (fmin 14563.556 (deg- (-> s1-0 x) (-> s2-0 x))))) + (set! (-> s5-0 y) (fmax -14563.556 (fmin 14563.556 (deg- (-> s1-0 y) (-> s2-0 y))))) + (set! (-> s5-0 z) 0.0) + (let ((s2-1 (new 'stack-no-clear 'quaternion))) + (let ((s1-1 (new 'stack-no-clear 'quaternion))) + (quaternion-vector-angle! s2-1 s4-0 (-> s5-0 x)) + (quaternion-vector-angle! s1-1 s3-0 (-> s5-0 y)) + (quaternion*! s2-1 s1-1 s2-1) ) + (quaternion-pseudo-seek (-> obj joint quat) (-> obj joint quat) s2-1 (seconds-per-frame)) ) ) ) - 0 - (none) ) + 0 + (none) ) ) ;; definition for method 197 of type crimson-guard-level (defmethod crimson-guard-level-method-197 crimson-guard-level ((obj crimson-guard-level)) - (with-pp - (quaternion-pseudo-seek - (-> obj joint quat) - (-> obj joint quat) - *unity-quaternion* - (-> pp clock seconds-per-frame) - ) - ) + (quaternion-pseudo-seek (-> obj joint quat) (-> obj joint quat) *unity-quaternion* (seconds-per-frame)) ) ;; definition for method 55 of type crimson-guard-level diff --git a/test/decompiler/reference/jak2/levels/common/enemy/guards/transport-level_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/guards/transport-level_REF.gc index fa60f9f074..434d2bdd62 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/guards/transport-level_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/guards/transport-level_REF.gc @@ -152,7 +152,7 @@ :post (behavior () (set! (-> self root transv y) (* 2.0 (- (-> self y-dest) (-> self root trans y)))) (set! (-> self root transv y) (fmax -122880.0 (fmin 122880.0 (-> self root transv y)))) - (+! (-> self root trans y) (* (-> self root transv y) (-> self clock seconds-per-frame))) + (+! (-> self root trans y) (* (-> self root transv y) (seconds-per-frame))) (if (< (fabs (- (-> self root trans y) (-> self y-dest))) 409.6) (go-virtual idle) ) @@ -266,9 +266,9 @@ ) :post (behavior () (transport-level-method-34 self) - (+! (-> self root transv y) (* 40960.0 (-> self clock seconds-per-frame))) + (+! (-> self root transv y) (* 40960.0 (seconds-per-frame))) (set! (-> self root transv y) (fmax -122880.0 (fmin 122880.0 (-> self root transv y)))) - (+! (-> self root trans y) (* (-> self root transv y) (-> self clock seconds-per-frame))) + (+! (-> self root trans y) (* (-> self root transv y) (seconds-per-frame))) (if (and (not (logtest? (-> self draw status) (draw-control-status on-screen))) (< 163840.0 (- (-> self root trans y) (-> self y-dest))) ) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/hover/crimson-guard-hover_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/hover/crimson-guard-hover_REF.gc index a0bd8c61c8..91e288c13c 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/hover/crimson-guard-hover_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/hover/crimson-guard-hover_REF.gc @@ -824,7 +824,7 @@ (seek! (-> self attack-miss-dist-curr) (-> self attack-miss-dist-max) - (* 0.5 (-> self clock seconds-per-frame) (- (-> self attack-miss-dist-max) (-> self attack-miss-dist-min))) + (* 0.5 (seconds-per-frame) (- (-> self attack-miss-dist-max) (-> self attack-miss-dist-min))) ) ((the-as (function none) (-> (method-of-type crimson-guard-hover ambush) post))) (none) @@ -1020,7 +1020,7 @@ (seek! (-> self attack-miss-dist-curr) (-> self attack-miss-dist-max) - (* 0.5 (-> self clock seconds-per-frame) (- (-> self attack-miss-dist-max) (-> self attack-miss-dist-min))) + (* 0.5 (seconds-per-frame) (- (-> self attack-miss-dist-max) (-> self attack-miss-dist-min))) ) (hover-enemy-hostile-post) (none) @@ -1506,40 +1506,38 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (seek! (-> obj gun-x-angle) (-> obj gun-x-angle-final) (* 21845.334 (-> pp clock seconds-per-frame))) - (let* ((s5-0 (hover-nav-control-method-16 (-> obj hover) (new 'stack-no-clear 'vector))) - (s4-0 - (quaternion-vector-angle! - (new 'stack-no-clear 'quaternion) - *x-vector* - (fmax -8192.0 (fmin 8192.0 (* 14563.556 (-> s5-0 z)))) - ) + (seek! (-> obj gun-x-angle) (-> obj gun-x-angle-final) (* 21845.334 (seconds-per-frame))) + (let* ((s5-0 (hover-nav-control-method-16 (-> obj hover) (new 'stack-no-clear 'vector))) + (s4-0 + (quaternion-vector-angle! + (new 'stack-no-clear 'quaternion) + *x-vector* + (fmax -8192.0 (fmin 8192.0 (* 14563.556 (-> s5-0 z)))) ) - (a1-4 - (quaternion-vector-angle! - (new 'stack-no-clear 'quaternion) - *z-vector* - (fmax -8192.0 (fmin 8192.0 (* 14563.556 (-> s5-0 x)))) - ) - ) - (s5-1 (new 'stack-no-clear 'quaternion)) ) - (quaternion*! s5-1 a1-4 s4-0) - (quaternion-slerp! - (the-as quaternion (-> obj hips-jmod target)) - (the-as quaternion (-> obj hips-jmod target)) - s5-1 - (* 2.0 (-> pp clock seconds-per-frame)) - ) + (a1-4 + (quaternion-vector-angle! + (new 'stack-no-clear 'quaternion) + *z-vector* + (fmax -8192.0 (fmin 8192.0 (* 14563.556 (-> s5-0 x)))) + ) + ) + (s5-1 (new 'stack-no-clear 'quaternion)) + ) + (quaternion*! s5-1 a1-4 s4-0) + (quaternion-slerp! + (the-as quaternion (-> obj hips-jmod target)) + (the-as quaternion (-> obj hips-jmod target)) + s5-1 + (* 2.0 (seconds-per-frame)) ) - (let ((t9-6 (method-of-type hover-enemy track-target!))) - (t9-6 obj) - ) - (los-control-method-9 (-> obj los) (the-as process-focusable #f) (the-as vector #f) 2048.0) - 0 - (none) ) + (let ((t9-6 (method-of-type hover-enemy track-target!))) + (t9-6 obj) + ) + (los-control-method-9 (-> obj los) (the-as process-focusable #f) (the-as vector #f) 2048.0) + 0 + (none) ) ;; definition for method 142 of type crimson-guard-hover @@ -1550,83 +1548,81 @@ (gp-0 (lambda ((arg0 crimson-guard-hover) (arg1 cspace) (arg2 float) (arg3 float) (arg4 vector) (arg5 vector) (arg6 int)) (local-vars (sv-192 float) (sv-208 quaternion) (sv-224 vector)) - (with-pp - (set! sv-192 arg2) - (let ((s0-0 arg3)) - (set! sv-224 arg4) - (let ((s1-0 arg5) - (s3-0 arg6) - (s4-0 (vector<-cspace! (new 'stack-no-clear 'vector) arg1)) - (s5-0 (new 'stack-no-clear 'matrix)) - (a1-3 (matrix-with-scale->quaternion (new 'stack-no-clear 'quaternion) (-> arg1 bone transform))) - ) - (set! sv-208 (new 'stack-no-clear 'quaternion)) - (let ((s2-1 (new 'stack-no-clear 'vector))) - (-> arg0 scale) - (quaternion-rotate-local-z! sv-208 a1-3 sv-192) - (quaternion->matrix s5-0 sv-208) - (set! (-> s2-1 quad) (-> arg0 root scale quad)) - (scale-matrix! s5-0 s2-1 s5-0) - (let* ((s1-1 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) s1-0 (-> arg0 root quat))) - (t9-6 vector-inv-orient-by-quat!) - (a0-10 (new 'stack-no-clear 'vector)) - (a2-4 (-> arg0 root quat)) - (v0-6 (t9-6 a0-10 sv-224 a2-4)) - (f30-0 (* 2867200.0 (-> pp clock seconds-per-frame))) - (f28-0 - (seek - (-> arg0 thrust s3-0) - (+ (* 0.4 (fmax 0.0 (* (-> v0-6 x) s0-0))) - (fmax 0.0 (-> v0-6 y)) - (fabs (* 0.2 (-> v0-6 z))) - (fmax 0.0 (-> s1-1 y)) - ) - (* 0.2 f30-0) - ) + (set! sv-192 arg2) + (let ((s0-0 arg3)) + (set! sv-224 arg4) + (let ((s1-0 arg5) + (s3-0 arg6) + (s4-0 (vector<-cspace! (new 'stack-no-clear 'vector) arg1)) + (s5-0 (new 'stack-no-clear 'matrix)) + (a1-3 (matrix-with-scale->quaternion (new 'stack-no-clear 'quaternion) (-> arg1 bone transform))) + ) + (set! sv-208 (new 'stack-no-clear 'quaternion)) + (let ((s2-1 (new 'stack-no-clear 'vector))) + (-> arg0 scale) + (quaternion-rotate-local-z! sv-208 a1-3 sv-192) + (quaternion->matrix s5-0 sv-208) + (set! (-> s2-1 quad) (-> arg0 root scale quad)) + (scale-matrix! s5-0 s2-1 s5-0) + (let* ((s1-1 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) s1-0 (-> arg0 root quat))) + (t9-6 vector-inv-orient-by-quat!) + (a0-10 (new 'stack-no-clear 'vector)) + (a2-4 (-> arg0 root quat)) + (v0-6 (t9-6 a0-10 sv-224 a2-4)) + (f30-0 (* 2867200.0 (seconds-per-frame))) + (f28-0 + (seek + (-> arg0 thrust s3-0) + (+ (* 0.4 (fmax 0.0 (* (-> v0-6 x) s0-0))) + (fmax 0.0 (-> v0-6 y)) + (fabs (* 0.2 (-> v0-6 z))) + (fmax 0.0 (-> s1-1 y)) + ) + (* 0.2 f30-0) ) ) - (let ((f20-0 (lerp-scale 819.2 4096.0 f28-0 1638.4 f30-0)) - (f26-0 (lerp-scale 4915.2 11468.8 f28-0 1638.4 f30-0)) - (f22-0 (lerp-scale 0.5 1.5 f28-0 1638.4 f30-0)) - (f24-0 (lerp-scale 0.1 1.0 f28-0 1638.4 f30-0)) - ) - (lerp-scale 0.1 1.0 f28-0 1638.4 f30-0) - (let ((f1-10 (lerp-scale 0.02 0.6 f28-0 1638.4 f30-0)) - (f2-6 (fmin 1.0 (-> s2-1 x))) - (f0-14 (fmin 1.0 (-> s2-1 y))) - ) - (set! (-> *part-id-table* 718 init-specs 4 initial-valuef) (* f20-0 f2-6)) - (set! (-> *part-id-table* 718 init-specs 5 initial-valuef) (* f26-0 f0-14)) - (set! (-> *part-id-table* 722 init-specs 3 initial-valuef) (* f22-0 f2-6)) - (set! (-> *part-id-table* 719 init-specs 1 initial-valuef) (* f24-0 f0-14)) - (set! (-> *part-id-table* 720 init-specs 1 initial-valuef) (* f1-10 f0-14)) - (set! (-> *part-id-table* 721 init-specs 0 initial-valuef) (* f24-0 f0-14)) - (set! (-> arg0 thrust s3-0) f28-0) - (let ((f0-15 (* f26-0 f0-14))) - (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s5-0 vector 1) (* -0.5 f0-15)) + ) + (let ((f20-0 (lerp-scale 819.2 4096.0 f28-0 1638.4 f30-0)) + (f26-0 (lerp-scale 4915.2 11468.8 f28-0 1638.4 f30-0)) + (f22-0 (lerp-scale 0.5 1.5 f28-0 1638.4 f30-0)) + (f24-0 (lerp-scale 0.1 1.0 f28-0 1638.4 f30-0)) + ) + (lerp-scale 0.1 1.0 f28-0 1638.4 f30-0) + (let ((f1-10 (lerp-scale 0.02 0.6 f28-0 1638.4 f30-0)) + (f2-6 (fmin 1.0 (-> s2-1 x))) + (f0-14 (fmin 1.0 (-> s2-1 y))) ) + (set! (-> *part-id-table* 718 init-specs 4 initial-valuef) (* f20-0 f2-6)) + (set! (-> *part-id-table* 718 init-specs 5 initial-valuef) (* f26-0 f0-14)) + (set! (-> *part-id-table* 722 init-specs 3 initial-valuef) (* f22-0 f2-6)) + (set! (-> *part-id-table* 719 init-specs 1 initial-valuef) (* f24-0 f0-14)) + (set! (-> *part-id-table* 720 init-specs 1 initial-valuef) (* f1-10 f0-14)) + (set! (-> *part-id-table* 721 init-specs 0 initial-valuef) (* f24-0 f0-14)) + (set! (-> arg0 thrust s3-0) f28-0) + (let ((f0-15 (* f26-0 f0-14))) + (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s5-0 vector 1) (* -0.5 f0-15)) ) ) - (set! (-> s5-0 trans quad) (-> s4-0 quad)) - (spawn-with-matrix (-> arg0 engine-part) s5-0) - (let ((f0-17 (lerp-scale 0.4 1.0 f28-0 1638.4 f30-0))) - (sound-play-by-name - (static-sound-name "hover-jets") - (-> arg0 sound-id) - (the int (* 1024.0 f0-17)) - 0 - 0 - (sound-group sfx) - #t - ) + ) + (set! (-> s5-0 trans quad) (-> s4-0 quad)) + (spawn-with-matrix (-> arg0 engine-part) s5-0) + (let ((f0-17 (lerp-scale 0.4 1.0 f28-0 1638.4 f30-0))) + (sound-play-by-name + (static-sound-name "hover-jets") + (-> arg0 sound-id) + (the int (* 1024.0 f0-17)) + 0 + 0 + (sound-group sfx) + #t ) ) ) ) ) - 0 - (none) ) + 0 + (none) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/hover/flamer_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/hover/flamer_REF.gc index afc11413af..b39b7c5611 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/hover/flamer_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/hover/flamer_REF.gc @@ -746,7 +746,7 @@ ) (suspend) (ja :num! (loop!)) - (seek! (-> self sound-volume) 1.0 (* 0.5 (-> self clock seconds-per-frame))) + (seek! (-> self sound-volume) 1.0 (* 0.5 (seconds-per-frame))) ) #f ) @@ -755,57 +755,55 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod flamer-method-184 flamer ((obj flamer)) - (with-pp - (let ((v1-0 (-> obj ground-mode))) - (cond - ((= v1-0 1) - (seek! (-> obj base-pos y) (-> obj dest-pos y) (* 40960.0 (-> pp clock seconds-per-frame))) - ) - ((zero? v1-0) - (let ((a1-1 (new 'stack-no-clear 'collide-query))) - (cond - ((enemy-method-125 obj a1-1 (collide-spec backgnd) 8192.0 26624.0 1024.0) - (set! (-> obj base-pos y) (+ 22528.0 (-> obj root gspot-pos y))) - ) - (else - (let ((s4-0 (-> obj nav)) - (s3-0 (-> obj base-pos)) - (s5-0 (new 'stack 'nav-find-poly-parms)) - ) - (vector-! (-> s5-0 point) s3-0 (-> s4-0 state mesh bounds)) - (set! (-> s5-0 y-threshold) (-> s4-0 nearest-y-threshold)) - (set! (-> s5-0 ignore) (the-as uint 2)) - (find-nearest-poly-to-point-local (-> s4-0 state mesh) s5-0) - (let ((v1-13 (-> s5-0 poly))) - (if v1-13 - (set! (-> obj base-pos y) (+ 22528.0 (-> obj nav state mesh bounds y) (-> v1-13 vertex0 y))) - ) + (let ((v1-0 (-> obj ground-mode))) + (cond + ((= v1-0 1) + (seek! (-> obj base-pos y) (-> obj dest-pos y) (* 40960.0 (seconds-per-frame))) + ) + ((zero? v1-0) + (let ((a1-1 (new 'stack-no-clear 'collide-query))) + (cond + ((enemy-method-125 obj a1-1 (collide-spec backgnd) 8192.0 26624.0 1024.0) + (set! (-> obj base-pos y) (+ 22528.0 (-> obj root gspot-pos y))) + ) + (else + (let ((s4-0 (-> obj nav)) + (s3-0 (-> obj base-pos)) + (s5-0 (new 'stack 'nav-find-poly-parms)) ) + (vector-! (-> s5-0 point) s3-0 (-> s4-0 state mesh bounds)) + (set! (-> s5-0 y-threshold) (-> s4-0 nearest-y-threshold)) + (set! (-> s5-0 ignore) (the-as uint 2)) + (find-nearest-poly-to-point-local (-> s4-0 state mesh) s5-0) + (let ((v1-13 (-> s5-0 poly))) + (if v1-13 + (set! (-> obj base-pos y) (+ 22528.0 (-> obj nav state mesh bounds y) (-> v1-13 vertex0 y))) + ) ) ) ) ) ) - ) + ) ) - (let ((v1-16 (+ (current-time) (the-as time-frame (-> obj sync-off))))) - (seek! - (-> obj root trans y) - (+ (-> obj base-pos y) (* 1228.8 (cos (* 100.66974 (the float (mod v1-16 651)))))) - (* 16384.0 (-> pp clock seconds-per-frame)) - ) - ) - (let ((s5-2 (new 'stack-no-clear 'vector))) - (set! (-> s5-2 quad) (-> *up-vector* quad)) - (vector-normalize! s5-2 6144.0) - (vector/! s5-2 s5-2 (-> obj root scale)) - (vector-rotate-around-z! s5-2 s5-2 (-> obj flit-angle)) - (vector-seek! (-> obj flit-joint target) s5-2 (* 32768.0 (-> pp clock seconds-per-frame))) - ) - (update-trans! (-> obj sound) (-> obj root trans)) - (update! (-> obj sound)) - (none) ) + (let ((v1-16 (+ (current-time) (the-as time-frame (-> obj sync-off))))) + (seek! + (-> obj root trans y) + (+ (-> obj base-pos y) (* 1228.8 (cos (* 100.66974 (the float (mod v1-16 651)))))) + (* 16384.0 (seconds-per-frame)) + ) + ) + (let ((s5-2 (new 'stack-no-clear 'vector))) + (set! (-> s5-2 quad) (-> *up-vector* quad)) + (vector-normalize! s5-2 6144.0) + (vector/! s5-2 s5-2 (-> obj root scale)) + (vector-rotate-around-z! s5-2 s5-2 (-> obj flit-angle)) + (vector-seek! (-> obj flit-joint target) s5-2 (* 32768.0 (seconds-per-frame))) + ) + (update-trans! (-> obj sound) (-> obj root trans)) + (update! (-> obj sound)) + (none) ) ;; definition for method 67 of type flamer @@ -975,7 +973,7 @@ (t9-0) ) ) - (+! (-> self path-pos) (* 0.85 (-> self clock seconds-per-frame))) + (+! (-> self path-pos) (* 0.85 (seconds-per-frame))) (let ((f30-0 (-> self path-pos))) (when (>= f30-0 1.0) (set! (-> self path-pos) 1.0) @@ -1068,7 +1066,7 @@ (none) ) :trans (behavior () - (set! (-> self path-pos) (- (-> self path-pos) (* 0.33333334 (-> self clock seconds-per-frame)))) + (set! (-> self path-pos) (- (-> self path-pos) (* 0.33333334 (seconds-per-frame)))) (let ((f30-0 (-> self path-pos))) (when (>= 0.0 f30-0) (set! (-> self path-pos) 0.0) @@ -1097,7 +1095,7 @@ (set! (-> self flit-angle) (* 182.04445 (rand-vu-float-range 0.0 360.0))) (set! (-> self flit-timer) (current-time)) ) - (vector-seek! (-> self root trans) (-> self base-pos) (* 16384.0 (-> self clock seconds-per-frame))) + (vector-seek! (-> self root trans) (-> self base-pos) (* 16384.0 (seconds-per-frame))) (flamer-method-184 self) (nav-enemy-simple-post) (none) @@ -1386,7 +1384,7 @@ (none) ) :post (behavior () - (seek! (-> self sound-volume) 0.0 (* 0.5 (-> self clock seconds-per-frame))) + (seek! (-> self sound-volume) 0.0 (* 0.5 (seconds-per-frame))) (flamer-method-187 self) (let ((t9-2 (-> (method-of-type nav-enemy knocked) post))) (if t9-2 diff --git a/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-enemy_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-enemy_REF.gc index 4234dcc487..7a2e818392 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-enemy_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-enemy_REF.gc @@ -100,18 +100,14 @@ (let ((f28-0 (lerp-scale -10922.667 10922.667 (-> gp-0 z) -1.0 1.0)) (f30-0 (lerp-scale 10922.667 -10922.667 (-> gp-0 x) -1.0 1.0)) ) - (set! (-> self rotation-vec x) - (deg-seek (-> self rotation-vec x) f28-0 (* 5461.3335 (-> self clock seconds-per-frame))) - ) - (set! (-> self rotation-vec z) - (deg-seek (-> self rotation-vec z) f30-0 (* 6371.5557 (-> self clock seconds-per-frame))) - ) + (set! (-> self rotation-vec x) (deg-seek (-> self rotation-vec x) f28-0 (* 5461.3335 (seconds-per-frame)))) + (set! (-> self rotation-vec z) (deg-seek (-> self rotation-vec z) f30-0 (* 6371.5557 (seconds-per-frame)))) ) ) (let ((s4-1 (vector-! (new 'stack-no-clear 'vector) (-> self focus-pos) (-> self root trans)))) (vector-normalize! s4-1 1.0) (set! (-> self rotation-vec y) - (deg-seek (-> self rotation-vec y) (vector-y-angle s4-1) (* 14563.556 (-> self clock seconds-per-frame))) + (deg-seek (-> self rotation-vec y) (vector-y-angle s4-1) (* 14563.556 (seconds-per-frame))) ) ) (hover-enemy-method-146 self) @@ -453,8 +449,8 @@ (let ((s5-0 (hover-nav-control-method-16 (-> self hover) (new 'stack-no-clear 'vector))) (gp-1 (-> self hover-info)) ) - (seek! (-> self local-dir x) (-> s5-0 x) (* 1.3 (-> self clock seconds-per-frame))) - (seek! (-> self local-dir z) (-> s5-0 z) (* 1.3 (-> self clock seconds-per-frame))) + (seek! (-> self local-dir x) (-> s5-0 x) (* 1.3 (seconds-per-frame))) + (seek! (-> self local-dir z) (-> s5-0 z) (* 1.3 (seconds-per-frame))) (hover-enemy-method-145 self 1 (-> self local-dir x) (-> gp-1 fly-left-anim) (-> gp-1 fly-right-anim)) (hover-enemy-method-145 self 2 (-> self local-dir z) (-> gp-1 fly-forward-anim) (-> gp-1 fly-backward-anim)) ) @@ -836,17 +832,13 @@ (none) ) :post (behavior () - (seek! - (-> self flying-death-spin) - (-> self flying-death-spin-dest) - (* 196608.0 (-> self clock seconds-per-frame)) - ) + (seek! (-> self flying-death-spin) (-> self flying-death-spin-dest) (* 196608.0 (seconds-per-frame))) (let ((gp-0 (-> self root))) (let ((a2-2 (quaternion-vector-angle! (new 'stack-no-clear 'quaternion) (-> self flying-death-spin-axis) - (* (-> self flying-death-spin) (-> self clock seconds-per-frame)) + (* (-> self flying-death-spin) (seconds-per-frame)) ) ) ) @@ -860,7 +852,7 @@ (seek! (-> self hover speed) (* 2.0 (-> v1-6 max-speed)) - (* 0.8 (-> self clock seconds-per-frame) (-> v1-6 max-acceleration)) + (* 0.8 (seconds-per-frame) (-> v1-6 max-acceleration)) ) ) (vector-normalize-copy! (-> gp-0 transv) (-> self flying-death-transv) (-> self hover speed)) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-formation_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-formation_REF.gc index cd136e0504..fe7718a83b 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-formation_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-formation_REF.gc @@ -156,12 +156,7 @@ ) (a0-7 (let* ((a1-11 - (quaternion-slerp! - (-> obj focus-quat) - (-> obj focus-quat) - (get-quat a0-7 2) - (* 0.8 (-> pp clock seconds-per-frame)) - ) + (quaternion-slerp! (-> obj focus-quat) (-> obj focus-quat) (get-quat a0-7 2) (* 0.8 (seconds-per-frame))) ) (a1-12 (vector-z-quaternion! (new 'stack-no-clear 'vector) a1-11)) ) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-nav-control_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-nav-control_REF.gc index 9f0c85cc6f..45e4df09c9 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-nav-control_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/hover/hover-nav-control_REF.gc @@ -1524,7 +1524,7 @@ ) (hover-nav-path-segment-method-9 s2-1 f0-19) ) - (seek! (-> s3-1 curr-u) 1.0 (* (-> s2-1 du) (-> pp clock seconds-per-frame))) + (seek! (-> s3-1 curr-u) 1.0 (* (-> s2-1 du) (seconds-per-frame))) (when (and (>= (-> s3-1 curr-u) 1.0) (-> s2-1 next)) (set! (-> s3-1 curr-segment) (the-as hover-nav-path-segment (-> s2-1 next))) (set! (-> s3-1 curr-u) 0.0) @@ -1556,129 +1556,125 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod hover-nav-control-method-25 hover-nav-control ((obj hover-nav-control)) - (with-pp - (let ((s5-0 (new 'stack-no-clear 'hover-nav-path-segment)) - (f28-0 (hover-nav-control-method-31 obj)) - (f30-0 (hover-nav-control-method-30 obj)) - (s3-0 (-> obj root transv)) - ) - (-> obj transvv) - (let ((s4-0 (-> obj dest-offset))) - (vector-normalize-copy! (-> s5-0 curve-matrix vector 2) s3-0 1.0) - (vector-normalize-copy! (-> s5-0 curve-matrix trans) s4-0 1.0) - (set! (-> s5-0 pos-index 0) (vector-dot s3-0 (-> s5-0 curve-matrix trans))) - (set! (-> s5-0 pos-index 1) (/ (* 0.5 (-> s5-0 pos-index 0) (-> s5-0 pos-index 0)) (* 0.2 f28-0))) - (set! (-> s5-0 dist) (vector-dot (-> obj dest-vel) (-> s5-0 curve-matrix trans))) - (vector-normalize-copy! (-> s5-0 curve-matrix vector 1) s4-0 (-> obj target-speed)) - (vector-! (the-as vector (-> s5-0 curve-matrix)) (-> s5-0 curve-matrix vector 1) s3-0) - (let ((f0-9 (vector-length (the-as vector (-> s5-0 curve-matrix))))) - (if (< f28-0 f0-9) - (vector-float*! (the-as vector (-> s5-0 curve-matrix)) (the-as vector (-> s5-0 curve-matrix)) (/ f28-0 f0-9)) - ) - ) - (vector+float*! - (the-as vector (&-> s5-0 next)) + (let ((s5-0 (new 'stack-no-clear 'hover-nav-path-segment)) + (f28-0 (hover-nav-control-method-31 obj)) + (f30-0 (hover-nav-control-method-30 obj)) + (s3-0 (-> obj root transv)) + ) + (-> obj transvv) + (let ((s4-0 (-> obj dest-offset))) + (vector-normalize-copy! (-> s5-0 curve-matrix vector 2) s3-0 1.0) + (vector-normalize-copy! (-> s5-0 curve-matrix trans) s4-0 1.0) + (set! (-> s5-0 pos-index 0) (vector-dot s3-0 (-> s5-0 curve-matrix trans))) + (set! (-> s5-0 pos-index 1) (/ (* 0.5 (-> s5-0 pos-index 0) (-> s5-0 pos-index 0)) (* 0.2 f28-0))) + (set! (-> s5-0 dist) (vector-dot (-> obj dest-vel) (-> s5-0 curve-matrix trans))) + (vector-normalize-copy! (-> s5-0 curve-matrix vector 1) s4-0 (-> obj target-speed)) + (vector-! (the-as vector (-> s5-0 curve-matrix)) (-> s5-0 curve-matrix vector 1) s3-0) + (let ((f0-9 (vector-length (the-as vector (-> s5-0 curve-matrix))))) + (if (< f28-0 f0-9) + (vector-float*! (the-as vector (-> s5-0 curve-matrix)) (the-as vector (-> s5-0 curve-matrix)) (/ f28-0 f0-9)) + ) + ) + (vector+float*! + (the-as vector (&-> s5-0 next)) + (-> obj root transv) + (the-as vector (-> s5-0 curve-matrix)) + (seconds-per-frame) + ) + (let ((f0-12 (vector-length (the-as vector (&-> s5-0 next)))) + (f1-6 (if (logtest? (-> obj flags) (hover-nav-flags honflags-1)) + (fmax 8192.0 (* 0.8 (-> obj los-obstruction-distance))) + f30-0 + ) + ) + ) + (if (< f1-6 f0-12) + (vector-float*! (the-as vector (&-> s5-0 next)) (the-as vector (&-> s5-0 next)) (/ f1-6 f0-12)) + ) + ) + (set! (-> obj root transv quad) (-> (the-as vector (&-> s5-0 next)) quad)) + (set! (-> obj transvv quad) (-> s5-0 curve-matrix quad 0)) + (when *debug-hover* + (format *stdcon* " speed act: ~m target: ~m~%" (-> s5-0 pos-index 0) (-> obj target-speed)) + (add-debug-vector + #t + (bucket-id debug-no-zbuf1) + (-> obj root trans) (-> obj root transv) - (the-as vector (-> s5-0 curve-matrix)) - (-> pp clock seconds-per-frame) + (meters 0.00024414062) + *color-yellow* ) - (let ((f0-12 (vector-length (the-as vector (&-> s5-0 next)))) - (f1-6 (if (logtest? (-> obj flags) (hover-nav-flags honflags-1)) - (fmax 8192.0 (* 0.8 (-> obj los-obstruction-distance))) - f30-0 - ) - ) - ) - (if (< f1-6 f0-12) - (vector-float*! (the-as vector (&-> s5-0 next)) (the-as vector (&-> s5-0 next)) (/ f1-6 f0-12)) - ) + (add-debug-vector + #t + (bucket-id debug-no-zbuf1) + (-> obj root trans) + (-> s5-0 curve-matrix vector 1) + (meters 0.00024414062) + *color-cyan* ) - (set! (-> obj root transv quad) (-> (the-as vector (&-> s5-0 next)) quad)) - (set! (-> obj transvv quad) (-> s5-0 curve-matrix quad 0)) - (when *debug-hover* - (format *stdcon* " speed act: ~m target: ~m~%" (-> s5-0 pos-index 0) (-> obj target-speed)) - (add-debug-vector - #t - (bucket-id debug-no-zbuf1) - (-> obj root trans) - (-> obj root transv) - (meters 0.00024414062) - *color-yellow* - ) - (add-debug-vector - #t - (bucket-id debug-no-zbuf1) - (-> obj root trans) - (-> s5-0 curve-matrix vector 1) - (meters 0.00024414062) - *color-cyan* - ) - (add-debug-vector - #t - (bucket-id debug-no-zbuf1) - (-> obj root trans) - (-> obj transvv) - (meters 0.00024414062) - *color-blue* - ) - (add-debug-x - #t - (bucket-id debug-no-zbuf1) - (vector+! (new 'stack-no-clear 'vector) (-> obj root trans) s4-0) - *color-green* - ) + (add-debug-vector + #t + (bucket-id debug-no-zbuf1) + (-> obj root trans) + (-> obj transvv) + (meters 0.00024414062) + *color-blue* + ) + (add-debug-x + #t + (bucket-id debug-no-zbuf1) + (vector+! (new 'stack-no-clear 'vector) (-> obj root trans) s4-0) + *color-green* ) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 12 of type hover-nav-control ;; WARN: Return type mismatch int vs none. (defmethod hover-nav-control-method-12 hover-nav-control ((obj hover-nav-control)) (local-vars (at-0 int)) - (with-pp - (rlet ((vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (hover-nav-control-method-25 obj) - (hover-nav-control-method-24 obj) - (let ((v1-5 (-> obj root transv)) - (a0-4 (-> obj root transv)) - (a1-0 (new 'stack-no-clear 'vector)) - ) - (.lvf vf1 (&-> (-> obj nav-collide-impulse) quad)) - (let ((f0-0 (-> pp clock seconds-per-frame))) - (.mov at-0 f0-0) + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (hover-nav-control-method-25 obj) + (hover-nav-control-method-24 obj) + (let ((v1-5 (-> obj root transv)) + (a0-4 (-> obj root transv)) + (a1-0 (new 'stack-no-clear 'vector)) ) - (.mov vf2 at-0) - (.mov.vf vf1 vf0 :mask #b1000) - (.mul.x.vf vf1 vf1 vf2 :mask #b111) - (.svf (&-> a1-0 quad) vf1) - (vector+! v1-5 a0-4 a1-0) + (.lvf vf1 (&-> (-> obj nav-collide-impulse) quad)) + (let ((f0-0 (seconds-per-frame))) + (.mov at-0 f0-0) ) - (let ((v1-7 (-> obj root)) - (a2-2 (new 'stack-no-clear 'collide-query)) - ) - (set! (-> a2-2 collide-with) (-> v1-7 root-prim prim-core collide-with)) - (set! (-> a2-2 ignore-process0) (-> v1-7 process)) - (set! (-> a2-2 ignore-process1) #f) - (set! (-> a2-2 ignore-pat) (-> v1-7 pat-ignore-mask)) - (set! (-> a2-2 action-mask) (collide-action solid)) - (fill-cache-integrate-and-collide v1-7 (-> v1-7 transv) a2-2 (meters 0)) - ) - (vector-float*! - (-> obj root transv) - (-> obj root transv) - (- 1.0 (* (-> obj params friction) (-> pp clock seconds-per-frame))) - ) - 0 - (none) + (.mov vf2 at-0) + (.mov.vf vf1 vf0 :mask #b1000) + (.mul.x.vf vf1 vf1 vf2 :mask #b111) + (.svf (&-> a1-0 quad) vf1) + (vector+! v1-5 a0-4 a1-0) ) + (let ((v1-7 (-> obj root)) + (a2-2 (new 'stack-no-clear 'collide-query)) + ) + (set! (-> a2-2 collide-with) (-> v1-7 root-prim prim-core collide-with)) + (set! (-> a2-2 ignore-process0) (-> v1-7 process)) + (set! (-> a2-2 ignore-process1) #f) + (set! (-> a2-2 ignore-pat) (-> v1-7 pat-ignore-mask)) + (set! (-> a2-2 action-mask) (collide-action solid)) + (fill-cache-integrate-and-collide v1-7 (-> v1-7 transv) a2-2 (meters 0)) + ) + (vector-float*! + (-> obj root transv) + (-> obj root transv) + (- 1.0 (* (-> obj params friction) (seconds-per-frame))) + ) + 0 + (none) ) ) @@ -1696,91 +1692,89 @@ ;; WARN: Return type mismatch int vs none. (defmethod hover-nav-control-method-13 hover-nav-control ((obj hover-nav-control)) (local-vars (sv-112 float) (sv-128 float) (sv-144 float) (sv-160 float)) - (with-pp - (let* ((s5-0 (-> obj root)) - (s3-0 (hover-nav-control-method-17 obj)) - (v1-2 (vector-! (new 'stack-no-clear 'vector) (the-as vector s3-0) (-> s5-0 trans))) - (s4-1 (vector-! (new 'stack-no-clear 'vector) (-> obj dest-pos) v1-2)) - ) - (when (not (logtest? (-> obj flags) (hover-nav-flags honflags-0))) - (let* ((s2-0 (-> obj root transv)) - (f30-0 (vector-length s2-0)) - (s1-0 lerp-scale) - (s0-0 0.0) - ) - (set! sv-112 (hover-nav-control-method-30 obj)) - (set! sv-128 (* 2.0 f30-0)) - (set! sv-144 (the-as float 0.0)) - (let* ((t0-0 (hover-nav-control-method-30 obj)) - (f0-4 (s1-0 s0-0 sv-112 sv-128 sv-144 t0-0)) - (t0-2 (vector+float*! (new 'stack-no-clear 'vector) (the-as vector s3-0) s2-0 (/ f0-4 f30-0))) - (s2-1 (nav-network-method-26 - (-> obj nav) - (new 'stack-no-clear 'vector) - (-> obj root process) - (the-as vector s3-0) - t0-2 - (-> s3-0 world-sphere w) - ) + (let* ((s5-0 (-> obj root)) + (s3-0 (hover-nav-control-method-17 obj)) + (v1-2 (vector-! (new 'stack-no-clear 'vector) (the-as vector s3-0) (-> s5-0 trans))) + (s4-1 (vector-! (new 'stack-no-clear 'vector) (-> obj dest-pos) v1-2)) + ) + (when (not (logtest? (-> obj flags) (hover-nav-flags honflags-0))) + (let* ((s2-0 (-> obj root transv)) + (f30-0 (vector-length s2-0)) + (s1-0 lerp-scale) + (s0-0 0.0) + ) + (set! sv-112 (hover-nav-control-method-30 obj)) + (set! sv-128 (* 2.0 f30-0)) + (set! sv-144 (the-as float 0.0)) + (let* ((t0-0 (hover-nav-control-method-30 obj)) + (f0-4 (s1-0 s0-0 sv-112 sv-128 sv-144 t0-0)) + (t0-2 (vector+float*! (new 'stack-no-clear 'vector) (the-as vector s3-0) s2-0 (/ f0-4 f30-0))) + (s2-1 (nav-network-method-26 + (-> obj nav) + (new 'stack-no-clear 'vector) + (-> obj root process) + (the-as vector s3-0) + t0-2 + (-> s3-0 world-sphere w) ) - ) - (let ((f0-7 (vector-length s2-1)) - (s1-1 seek) - (s0-1 (-> obj nav-collide-impulse-len)) - ) - (set! sv-160 f0-7) - (let ((a2-2 (* (hover-nav-control-method-31 obj) (-> pp clock seconds-per-frame)))) - (set! (-> obj nav-collide-impulse-len) (s1-1 s0-1 sv-160 a2-2)) - ) - ) - (vector-normalize-copy! (-> obj nav-collide-impulse) s2-1 (- (-> obj nav-collide-impulse-len))) - ) - ) - (if *debug-hover* - (add-debug-vector - #t - (bucket-id debug-no-zbuf1) - (the-as vector s3-0) - (-> obj nav-collide-impulse) - (meters 0.00024414062) - *color-red* - ) - ) - ) - (let ((f30-1 (hover-nav-control-method-31 obj)) - (f28-0 (hover-nav-control-method-30 obj)) - ) - (vector-z-quaternion! (-> obj move-dir) (-> s5-0 quat)) - (set! (-> obj speed) (vector-length (-> s5-0 transv))) - (vector-! (-> obj dest-offset) s4-1 (-> s5-0 trans)) - (let ((s4-2 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> obj dest-offset) 1.0)) - (v0-13 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s5-0 transv) 1.0)) - ) - (set! (-> obj speed-dest) (vector-dot (-> s5-0 transv) s4-2)) - (set! (-> obj local-dist) (vector-dot v0-13 (-> obj dest-offset))) - ) - (let* ((f0-20 (fmax 0.0 (+ -2048.0 (vector-length (-> obj dest-offset))))) - (f1-5 (sqrtf (* 1.6 f0-20 f30-1))) - (f0-23 0.0) + ) ) - (seek! (-> obj target-speed) (fmax (fmin f1-5 f28-0) f0-23) (* 0.9 (-> pp clock seconds-per-frame) f30-1)) + (let ((f0-7 (vector-length s2-1)) + (s1-1 seek) + (s0-1 (-> obj nav-collide-impulse-len)) + ) + (set! sv-160 f0-7) + (let ((a2-2 (* (hover-nav-control-method-31 obj) (seconds-per-frame)))) + (set! (-> obj nav-collide-impulse-len) (s1-1 s0-1 sv-160 a2-2)) + ) + ) + (vector-normalize-copy! (-> obj nav-collide-impulse) s2-1 (- (-> obj nav-collide-impulse-len))) ) ) + (if *debug-hover* + (add-debug-vector + #t + (bucket-id debug-no-zbuf1) + (the-as vector s3-0) + (-> obj nav-collide-impulse) + (meters 0.00024414062) + *color-red* + ) + ) ) - (when *debug-hover* - (add-debug-x #t (bucket-id debug-no-zbuf1) (-> obj dest-pos) *color-white*) - (add-debug-vector - #t - (bucket-id debug-no-zbuf1) - (-> obj dest-pos) - (-> obj dest-vel) - (meters 0.00024414062) - *color-white* + (let ((f30-1 (hover-nav-control-method-31 obj)) + (f28-0 (hover-nav-control-method-30 obj)) + ) + (vector-z-quaternion! (-> obj move-dir) (-> s5-0 quat)) + (set! (-> obj speed) (vector-length (-> s5-0 transv))) + (vector-! (-> obj dest-offset) s4-1 (-> s5-0 trans)) + (let ((s4-2 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> obj dest-offset) 1.0)) + (v0-13 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s5-0 transv) 1.0)) + ) + (set! (-> obj speed-dest) (vector-dot (-> s5-0 transv) s4-2)) + (set! (-> obj local-dist) (vector-dot v0-13 (-> obj dest-offset))) + ) + (let* ((f0-20 (fmax 0.0 (+ -2048.0 (vector-length (-> obj dest-offset))))) + (f1-5 (sqrtf (* 1.6 f0-20 f30-1))) + (f0-23 0.0) + ) + (seek! (-> obj target-speed) (fmax (fmin f1-5 f28-0) f0-23) (* 0.9 (seconds-per-frame) f30-1)) ) ) - 0 - (none) ) + (when *debug-hover* + (add-debug-x #t (bucket-id debug-no-zbuf1) (-> obj dest-pos) *color-white*) + (add-debug-vector + #t + (bucket-id debug-no-zbuf1) + (-> obj dest-pos) + (-> obj dest-vel) + (meters 0.00024414062) + *color-white* + ) + ) + 0 + (none) ) ;; definition for function hover-bounce-reaction diff --git a/test/decompiler/reference/jak2/levels/common/enemy/hover/wasp_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/hover/wasp_REF.gc index a31869047e..3ab4e7f134 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/hover/wasp_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/hover/wasp_REF.gc @@ -590,11 +590,9 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (seek! (-> obj gun-x-angle) (-> obj gun-x-angle-final) (* 21845.334 (-> pp clock seconds-per-frame))) - ((method-of-type hover-enemy track-target!) obj) - (none) - ) + (seek! (-> obj gun-x-angle) (-> obj gun-x-angle-final) (* 21845.334 (seconds-per-frame))) + ((method-of-type hover-enemy track-target!) obj) + (none) ) ;; definition for function shoot-bridge-post @@ -862,7 +860,7 @@ (seek! (-> self attack-miss-dist-curr) (-> self attack-miss-dist-max) - (* 0.5 (-> self clock seconds-per-frame) (- (-> self attack-miss-dist-max) (-> self attack-miss-dist-min))) + (* 0.5 (seconds-per-frame) (- (-> self attack-miss-dist-max) (-> self attack-miss-dist-min))) ) (let ((a1-8 (new 'stack-no-clear 'vector))) (set! (-> a1-8 quad) (-> self focus-pos quad)) @@ -1026,7 +1024,7 @@ (seek! (-> self attack-miss-dist-curr) (-> self attack-miss-dist-max) - (* 0.5 (-> self clock seconds-per-frame) (- (-> self attack-miss-dist-max) (-> self attack-miss-dist-min))) + (* 0.5 (seconds-per-frame) (- (-> self attack-miss-dist-max) (-> self attack-miss-dist-min))) ) (hover-enemy-hostile-post) (none) @@ -1305,86 +1303,84 @@ (gp-0 (lambda ((arg0 wasp) (arg1 cspace) (arg2 float) (arg3 float) (arg4 vector) (arg5 vector) (arg6 int)) (local-vars (sv-192 float) (sv-208 quaternion) (sv-224 vector)) - (with-pp - (set! sv-192 arg2) - (let ((s0-0 arg3)) - (set! sv-224 arg4) - (let ((s1-0 arg5) - (s3-0 arg6) - (s4-0 (vector<-cspace! (new 'stack-no-clear 'vector) arg1)) - (s5-0 (new 'stack-no-clear 'matrix)) - (a1-3 (matrix-with-scale->quaternion (new 'stack-no-clear 'quaternion) (-> arg1 bone transform))) - ) - (set! sv-208 (new 'stack-no-clear 'quaternion)) - (let ((s2-1 (new 'stack-no-clear 'vector))) - (-> arg0 scale) - (quaternion-rotate-local-z! sv-208 a1-3 sv-192) - (quaternion->matrix s5-0 sv-208) - (set! (-> s2-1 quad) (-> arg0 root scale quad)) - (scale-matrix! s5-0 s2-1 s5-0) - (let* ((s1-1 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) s1-0 (-> arg0 root quat))) - (t9-6 vector-inv-orient-by-quat!) - (a0-10 (new 'stack-no-clear 'vector)) - (a2-4 (-> arg0 root quat)) - (v0-6 (t9-6 a0-10 sv-224 a2-4)) - (f30-0 (* 2457600.0 (-> pp clock seconds-per-frame))) - (f28-0 - (seek - (-> arg0 thrust s3-0) - (+ (* 0.4 (fmax 0.0 (* (-> v0-6 x) s0-0))) - (fmax 0.0 (-> v0-6 y)) - (fabs (* 0.2 (-> v0-6 z))) - (fmax 0.0 (-> s1-1 y)) - ) - (* 0.2 f30-0) - ) + (set! sv-192 arg2) + (let ((s0-0 arg3)) + (set! sv-224 arg4) + (let ((s1-0 arg5) + (s3-0 arg6) + (s4-0 (vector<-cspace! (new 'stack-no-clear 'vector) arg1)) + (s5-0 (new 'stack-no-clear 'matrix)) + (a1-3 (matrix-with-scale->quaternion (new 'stack-no-clear 'quaternion) (-> arg1 bone transform))) + ) + (set! sv-208 (new 'stack-no-clear 'quaternion)) + (let ((s2-1 (new 'stack-no-clear 'vector))) + (-> arg0 scale) + (quaternion-rotate-local-z! sv-208 a1-3 sv-192) + (quaternion->matrix s5-0 sv-208) + (set! (-> s2-1 quad) (-> arg0 root scale quad)) + (scale-matrix! s5-0 s2-1 s5-0) + (let* ((s1-1 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) s1-0 (-> arg0 root quat))) + (t9-6 vector-inv-orient-by-quat!) + (a0-10 (new 'stack-no-clear 'vector)) + (a2-4 (-> arg0 root quat)) + (v0-6 (t9-6 a0-10 sv-224 a2-4)) + (f30-0 (* 2457600.0 (seconds-per-frame))) + (f28-0 + (seek + (-> arg0 thrust s3-0) + (+ (* 0.4 (fmax 0.0 (* (-> v0-6 x) s0-0))) + (fmax 0.0 (-> v0-6 y)) + (fabs (* 0.2 (-> v0-6 z))) + (fmax 0.0 (-> s1-1 y)) + ) + (* 0.2 f30-0) ) ) - (let ((f20-0 (lerp-scale 819.2 4096.0 f28-0 1638.4 f30-0)) - (f26-0 (lerp-scale 4915.2 11468.8 f28-0 1638.4 f30-0)) + ) + (let ((f20-0 (lerp-scale 819.2 4096.0 f28-0 1638.4 f30-0)) + (f26-0 (lerp-scale 4915.2 11468.8 f28-0 1638.4 f30-0)) + ) + (lerp-scale 0.0 -4915.2 f28-0 1638.4 f30-0) + (let ((f22-0 (lerp-scale 0.5 1.5 f28-0 1638.4 f30-0)) + (f24-0 (lerp-scale 0.1 1.0 f28-0 1638.4 f30-0)) ) - (lerp-scale 0.0 -4915.2 f28-0 1638.4 f30-0) - (let ((f22-0 (lerp-scale 0.5 1.5 f28-0 1638.4 f30-0)) - (f24-0 (lerp-scale 0.1 1.0 f28-0 1638.4 f30-0)) - ) - (lerp-scale 0.1 1.0 f28-0 1638.4 f30-0) - (let ((f1-10 (lerp-scale 0.02 0.6 f28-0 1638.4 f30-0)) - (f2-6 (fmin 1.0 (-> s2-1 x))) - (f0-15 (fmin 1.0 (-> s2-1 y))) - ) - (set! (-> *part-id-table* 718 init-specs 4 initial-valuef) (* f20-0 f2-6)) - (set! (-> *part-id-table* 718 init-specs 5 initial-valuef) (* f26-0 f0-15)) - (set! (-> *part-id-table* 722 init-specs 3 initial-valuef) (* f22-0 f2-6)) - (set! (-> *part-id-table* 719 init-specs 1 initial-valuef) (* f24-0 f0-15)) - (set! (-> *part-id-table* 720 init-specs 1 initial-valuef) (* f1-10 f0-15)) - (set! (-> *part-id-table* 721 init-specs 0 initial-valuef) (* f24-0 f0-15)) - (set! (-> arg0 thrust s3-0) f28-0) - (let ((f0-16 (* f26-0 f0-15))) - (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s5-0 vector 1) (* -0.5 f0-16)) + (lerp-scale 0.1 1.0 f28-0 1638.4 f30-0) + (let ((f1-10 (lerp-scale 0.02 0.6 f28-0 1638.4 f30-0)) + (f2-6 (fmin 1.0 (-> s2-1 x))) + (f0-15 (fmin 1.0 (-> s2-1 y))) ) + (set! (-> *part-id-table* 718 init-specs 4 initial-valuef) (* f20-0 f2-6)) + (set! (-> *part-id-table* 718 init-specs 5 initial-valuef) (* f26-0 f0-15)) + (set! (-> *part-id-table* 722 init-specs 3 initial-valuef) (* f22-0 f2-6)) + (set! (-> *part-id-table* 719 init-specs 1 initial-valuef) (* f24-0 f0-15)) + (set! (-> *part-id-table* 720 init-specs 1 initial-valuef) (* f1-10 f0-15)) + (set! (-> *part-id-table* 721 init-specs 0 initial-valuef) (* f24-0 f0-15)) + (set! (-> arg0 thrust s3-0) f28-0) + (let ((f0-16 (* f26-0 f0-15))) + (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> s5-0 vector 1) (* -0.5 f0-16)) ) ) ) - (set! (-> s5-0 trans quad) (-> s4-0 quad)) - (spawn-with-matrix (-> arg0 engine-part) s5-0) - (let ((f0-18 (lerp-scale 0.75 1.0 f28-0 1638.4 f30-0))) - (sound-play-by-name - (static-sound-name "wasp-jets") - (-> arg0 sound-id) - (the int (* 1024.0 f0-18)) - 0 - 0 - (sound-group sfx) - (-> arg0 root trans) - ) + ) + (set! (-> s5-0 trans quad) (-> s4-0 quad)) + (spawn-with-matrix (-> arg0 engine-part) s5-0) + (let ((f0-18 (lerp-scale 0.75 1.0 f28-0 1638.4 f30-0))) + (sound-play-by-name + (static-sound-name "wasp-jets") + (-> arg0 sound-id) + (the int (* 1024.0 f0-18)) + 0 + 0 + (sound-group sfx) + (-> arg0 root trans) ) ) ) ) ) - 0 - (none) ) + 0 + (none) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/spyder_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/spyder_REF.gc index 9988a7d3c1..dc6670175e 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/spyder_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/spyder_REF.gc @@ -383,46 +383,44 @@ ;; definition for method 180 of type spyder ;; WARN: Return type mismatch int vs none. (defmethod spyder-method-180 spyder ((obj spyder)) - (with-pp - (seek! (-> obj fade) (-> obj dest-fade) (* 500.0 (-> pp clock seconds-per-frame))) - (set! (-> obj draw force-fade) (the-as uint (the int (-> obj fade)))) - (cond - ((zero? (-> obj draw force-fade)) - (setup-masks (-> obj draw) 16 0) - (setup-masks (-> obj draw) 0 8) - (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) - ) - ((= (-> obj draw force-fade) 128) - (setup-masks (-> obj draw) 0 16) - (setup-masks (-> obj draw) 8 0) - (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) - ) - (else - (setup-masks (-> obj draw) 16 0) - (setup-masks (-> obj draw) 8 0) - (logior! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) - ) + (seek! (-> obj fade) (-> obj dest-fade) (* 500.0 (seconds-per-frame))) + (set! (-> obj draw force-fade) (the-as uint (the int (-> obj fade)))) + (cond + ((zero? (-> obj draw force-fade)) + (setup-masks (-> obj draw) 16 0) + (setup-masks (-> obj draw) 0 8) + (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) + ) + ((= (-> obj draw force-fade) 128) + (setup-masks (-> obj draw) 0 16) + (setup-masks (-> obj draw) 8 0) + (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) + ) + (else + (setup-masks (-> obj draw) 16 0) + (setup-masks (-> obj draw) 8 0) + (logior! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) ) - (if (< 245760.0 (vector-vector-distance (-> obj root trans) (camera-pos))) - (setup-masks (-> obj draw) 0 16) - ) - (when (< (current-time) (-> obj shock-effect-end)) - (when (>= (- (current-time) (-> obj shock-effect-time)) (seconds 0.04)) - (set! (-> obj shock-effect-time) (current-time)) - (process-drawable-shock-skel-effect - obj - (-> *lightning-spec-id-table* 5) - lightning-probe-callback - (-> *part-id-table* 166) - 2048.0 - -1 - -1 - ) - ) - ) - 0 - (none) ) + (if (< 245760.0 (vector-vector-distance (-> obj root trans) (camera-pos))) + (setup-masks (-> obj draw) 0 16) + ) + (when (< (current-time) (-> obj shock-effect-end)) + (when (>= (- (current-time) (-> obj shock-effect-time)) (seconds 0.04)) + (set! (-> obj shock-effect-time) (current-time)) + (process-drawable-shock-skel-effect + obj + (-> *lightning-spec-id-table* 5) + lightning-probe-callback + (-> *part-id-table* 166) + 2048.0 + -1 + -1 + ) + ) + ) + 0 + (none) ) ;; definition for method 181 of type spyder @@ -650,77 +648,73 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod spyder-method-182 spyder ((obj spyder)) - (with-pp - (cond - ((and (logtest? (-> obj status-flags) (spyder-flags spflags-2)) (!= (-> obj joint scale z) 1.0)) - (seek! (-> obj joint scale z) 1.0 (* 0.8 (-> pp clock seconds-per-frame))) - ) - ((and (not (logtest? (-> obj status-flags) (spyder-flags spflags-2))) (!= (-> obj joint scale z) 0.0)) - (seek! (-> obj joint scale z) 0.0 (* 0.8 (-> pp clock seconds-per-frame))) - ) - ) - (let ((s5-0 (new 'stack-no-clear 'quaternion))) - (let ((a1-2 (-> obj node-list data 37 bone transform))) - (matrix-with-scale->quaternion s5-0 a1-2) - ) - (let ((a1-4 (quaternion-from-two-vectors! (new 'stack-no-clear 'quaternion) (-> obj my-up-vector) *up-vector*))) - (quaternion*! s5-0 a1-4 s5-0) - ) - (let ((s4-1 (vector-! (new 'stack-no-clear 'vector) (-> obj face-pos) (-> obj root trans))) - (s3-0 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) - ) - (cond - ((logtest? (-> obj status-flags) (spyder-flags spflags-3)) - (vector-! s4-1 (-> obj face-pos) (-> obj root trans)) - (logclear! (-> obj status-flags) (spyder-flags spflags-3)) - ) - (else - (set! (-> s4-1 quad) (-> s3-0 quad)) - ) - ) - (set! (-> s4-1 y) 0.0) - (vector-xz-normalize! s4-1 1.0) - (set! (-> s3-0 y) 0.0) - (vector-xz-normalize! s3-0 1.0) - (let ((a1-11 (quaternion-from-two-vectors-max-angle! (new 'stack-no-clear 'quaternion) s3-0 s4-1 10012.444))) - (quaternion*! s5-0 a1-11 s5-0) - ) - ) - (quaternion-slerp! - (the-as quaternion (-> obj joint twist)) - (the-as quaternion (-> obj joint twist)) - s5-0 - (* 10.0 (-> pp clock seconds-per-frame)) - ) - ) - 0 - (none) + (cond + ((and (logtest? (-> obj status-flags) (spyder-flags spflags-2)) (!= (-> obj joint scale z) 1.0)) + (seek! (-> obj joint scale z) 1.0 (* 0.8 (seconds-per-frame))) + ) + ((and (not (logtest? (-> obj status-flags) (spyder-flags spflags-2))) (!= (-> obj joint scale z) 0.0)) + (seek! (-> obj joint scale z) 0.0 (* 0.8 (seconds-per-frame))) + ) ) + (let ((s5-0 (new 'stack-no-clear 'quaternion))) + (let ((a1-2 (-> obj node-list data 37 bone transform))) + (matrix-with-scale->quaternion s5-0 a1-2) + ) + (let ((a1-4 (quaternion-from-two-vectors! (new 'stack-no-clear 'quaternion) (-> obj my-up-vector) *up-vector*))) + (quaternion*! s5-0 a1-4 s5-0) + ) + (let ((s4-1 (vector-! (new 'stack-no-clear 'vector) (-> obj face-pos) (-> obj root trans))) + (s3-0 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) + ) + (cond + ((logtest? (-> obj status-flags) (spyder-flags spflags-3)) + (vector-! s4-1 (-> obj face-pos) (-> obj root trans)) + (logclear! (-> obj status-flags) (spyder-flags spflags-3)) + ) + (else + (set! (-> s4-1 quad) (-> s3-0 quad)) + ) + ) + (set! (-> s4-1 y) 0.0) + (vector-xz-normalize! s4-1 1.0) + (set! (-> s3-0 y) 0.0) + (vector-xz-normalize! s3-0 1.0) + (let ((a1-11 (quaternion-from-two-vectors-max-angle! (new 'stack-no-clear 'quaternion) s3-0 s4-1 10012.444))) + (quaternion*! s5-0 a1-11 s5-0) + ) + ) + (quaternion-slerp! + (the-as quaternion (-> obj joint twist)) + (the-as quaternion (-> obj joint twist)) + s5-0 + (* 10.0 (seconds-per-frame)) + ) + ) + 0 + (none) ) ;; definition for method 184 of type spyder ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod spyder-method-184 spyder ((obj spyder) (arg0 vector)) - (with-pp - (when (not (logtest? (-> obj status-flags) (spyder-flags spflags-0))) - (let ((s4-0 (new 'stack-no-clear 'vector))) - (set! (-> s4-0 quad) (-> *up-vector* quad)) - (let ((s3-0 (new 'stack-no-clear 'quaternion))) - (quaternion-from-two-vectors-max-angle! s3-0 s4-0 (-> obj root gspot-normal) 4551.1113) - (vector-orient-by-quat! s4-0 s4-0 s3-0) - ) - (let ((s3-1 (-> obj my-up-vector))) - (vector-deg-seek s3-1 s3-1 s4-0 (* 16384.0 (-> pp clock seconds-per-frame))) - (vector-normalize! s3-1 1.0) - (forward-up-nopitch->quaternion (-> obj root quat) arg0 s3-1) - ) + (when (not (logtest? (-> obj status-flags) (spyder-flags spflags-0))) + (let ((s4-0 (new 'stack-no-clear 'vector))) + (set! (-> s4-0 quad) (-> *up-vector* quad)) + (let ((s3-0 (new 'stack-no-clear 'quaternion))) + (quaternion-from-two-vectors-max-angle! s3-0 s4-0 (-> obj root gspot-normal) 4551.1113) + (vector-orient-by-quat! s4-0 s4-0 s3-0) + ) + (let ((s3-1 (-> obj my-up-vector))) + (vector-deg-seek s3-1 s3-1 s4-0 (* 16384.0 (seconds-per-frame))) + (vector-normalize! s3-1 1.0) + (forward-up-nopitch->quaternion (-> obj root quat) arg0 s3-1) ) - (logior! (-> obj status-flags) (spyder-flags spflags-0)) ) - 0 - (none) + (logior! (-> obj status-flags) (spyder-flags spflags-0)) ) + 0 + (none) ) ;; definition for method 55 of type spyder @@ -816,123 +810,121 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod spyder-method-185 spyder ((obj spyder)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (let ((s5-0 (new 'stack-no-clear 'collide-query))) - (let ((v1-0 (-> s5-0 bbox)) - (a0-2 (-> obj root trans)) - (a1-0 (new 'stack-no-clear 'vector)) - ) - (set! (-> a1-0 x) 22528.0) - (set! (-> a1-0 y) 22528.0) - (set! (-> a1-0 z) 22528.0) - (set! (-> a1-0 w) 1.0) - (vector-! (the-as vector v1-0) a0-2 a1-0) - ) - (let ((v1-2 (-> s5-0 bbox max)) - (a0-4 (-> obj root trans)) - (a1-1 (new 'stack-no-clear 'vector)) - ) - (set! (-> a1-1 x) 22528.0) - (set! (-> a1-1 y) 22528.0) - (set! (-> a1-1 z) 22528.0) - (set! (-> a1-1 w) 1.0) - (vector+! v1-2 a0-4 a1-1) - ) - (set! (-> s5-0 collide-with) (collide-spec backgnd)) - (set! (-> s5-0 ignore-process0) #f) - (set! (-> s5-0 ignore-process1) #f) - (set! (-> s5-0 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (fill-using-bounding-box *collide-cache* s5-0) - (dotimes (s4-0 4) - (-> obj joint-ik s4-0 shoulder-matrix-no-ik) - (let ((a2-8 (-> obj joint-ik s4-0 elbow-matrix-no-ik)) - (s3-0 (new 'stack-no-clear 'vector)) - ) - (let ((v1-15 (new 'stack-no-clear 'vector))) - (set! (-> v1-15 quad) (-> *y-vector* quad)) - (new 'stack-no-clear 'vector) - (let ((s2-0 (new 'stack-no-clear 'vector))) - (let ((a1-3 s3-0)) - (let ((a0-9 (-> a2-8 trans))) - (let ((a2-9 (-> a2-8 vector 1))) - (let ((a3-3 (-> obj joint-ik s4-0 hand-dist))) - (.mov vf7 a3-3) - ) - (.lvf vf5 (&-> a2-9 quad)) - ) - (.lvf vf4 (&-> a0-9 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-3 quad) vf6) - ) - (set! (-> s2-0 quad) (-> s3-0 quad)) - (set! (-> s2-0 y) (-> obj root trans y)) - (let ((a2-10 (-> s5-0 start-pos))) - (let ((a0-12 s2-0)) - (let ((a1-6 v1-15)) - (let ((a3-5 16384.0)) - (.mov vf7 a3-5) - ) - (.lvf vf5 (&-> a1-6 quad)) - ) - (.lvf vf4 (&-> a0-12 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a2-10 quad) vf6) - ) - (vector-float*! (-> s5-0 move-dist) v1-15 -32768.0) - (let ((v1-16 s5-0)) - (set! (-> v1-16 radius) 40.96) - (set! (-> v1-16 collide-with) (collide-spec backgnd)) - (set! (-> v1-16 ignore-process0) #f) - (set! (-> v1-16 ignore-process1) #f) - (set! (-> v1-16 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (set! (-> v1-16 action-mask) (collide-action solid)) - ) - (let ((f0-13 (probe-using-line-sphere *collide-cache* s5-0))) - (when (>= f0-13 0.0) - (let ((a1-10 s2-0)) - (let ((v1-19 (-> s5-0 start-pos))) - (let ((a0-20 (-> s5-0 move-dist))) - (let ((a2-11 f0-13)) - (.mov vf7 a2-11) - ) - (.lvf vf5 (&-> a0-20 quad)) - ) - (.lvf vf4 (&-> v1-19 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-10 quad) vf6) - ) - ) - ) - (let ((f0-15 (fmax -8192.0 (fmin 8192.0 (- (-> s2-0 y) (-> s3-0 y)))))) - (+! (-> obj delta-y-ik s4-0) (* 10.0 (-> pp clock seconds-per-frame) (- f0-15 (-> obj delta-y-ik s4-0)))) - ) - ) - ) - (+! (-> s3-0 y) (-> obj delta-y-ik s4-0)) - (handle-copy! (-> obj joint-ik s4-0) s3-0) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (new 'stack-no-clear 'collide-query))) + (let ((v1-0 (-> s5-0 bbox)) + (a0-2 (-> obj root trans)) + (a1-0 (new 'stack-no-clear 'vector)) ) + (set! (-> a1-0 x) 22528.0) + (set! (-> a1-0 y) 22528.0) + (set! (-> a1-0 z) 22528.0) + (set! (-> a1-0 w) 1.0) + (vector-! (the-as vector v1-0) a0-2 a1-0) + ) + (let ((v1-2 (-> s5-0 bbox max)) + (a0-4 (-> obj root trans)) + (a1-1 (new 'stack-no-clear 'vector)) + ) + (set! (-> a1-1 x) 22528.0) + (set! (-> a1-1 y) 22528.0) + (set! (-> a1-1 z) 22528.0) + (set! (-> a1-1 w) 1.0) + (vector+! v1-2 a0-4 a1-1) + ) + (set! (-> s5-0 collide-with) (collide-spec backgnd)) + (set! (-> s5-0 ignore-process0) #f) + (set! (-> s5-0 ignore-process1) #f) + (set! (-> s5-0 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (fill-using-bounding-box *collide-cache* s5-0) + (dotimes (s4-0 4) + (-> obj joint-ik s4-0 shoulder-matrix-no-ik) + (let ((a2-8 (-> obj joint-ik s4-0 elbow-matrix-no-ik)) + (s3-0 (new 'stack-no-clear 'vector)) + ) + (let ((v1-15 (new 'stack-no-clear 'vector))) + (set! (-> v1-15 quad) (-> *y-vector* quad)) + (new 'stack-no-clear 'vector) + (let ((s2-0 (new 'stack-no-clear 'vector))) + (let ((a1-3 s3-0)) + (let ((a0-9 (-> a2-8 trans))) + (let ((a2-9 (-> a2-8 vector 1))) + (let ((a3-3 (-> obj joint-ik s4-0 hand-dist))) + (.mov vf7 a3-3) + ) + (.lvf vf5 (&-> a2-9 quad)) + ) + (.lvf vf4 (&-> a0-9 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-3 quad) vf6) + ) + (set! (-> s2-0 quad) (-> s3-0 quad)) + (set! (-> s2-0 y) (-> obj root trans y)) + (let ((a2-10 (-> s5-0 start-pos))) + (let ((a0-12 s2-0)) + (let ((a1-6 v1-15)) + (let ((a3-5 16384.0)) + (.mov vf7 a3-5) + ) + (.lvf vf5 (&-> a1-6 quad)) + ) + (.lvf vf4 (&-> a0-12 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a2-10 quad) vf6) + ) + (vector-float*! (-> s5-0 move-dist) v1-15 -32768.0) + (let ((v1-16 s5-0)) + (set! (-> v1-16 radius) 40.96) + (set! (-> v1-16 collide-with) (collide-spec backgnd)) + (set! (-> v1-16 ignore-process0) #f) + (set! (-> v1-16 ignore-process1) #f) + (set! (-> v1-16 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (set! (-> v1-16 action-mask) (collide-action solid)) + ) + (let ((f0-13 (probe-using-line-sphere *collide-cache* s5-0))) + (when (>= f0-13 0.0) + (let ((a1-10 s2-0)) + (let ((v1-19 (-> s5-0 start-pos))) + (let ((a0-20 (-> s5-0 move-dist))) + (let ((a2-11 f0-13)) + (.mov vf7 a2-11) + ) + (.lvf vf5 (&-> a0-20 quad)) + ) + (.lvf vf4 (&-> v1-19 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-10 quad) vf6) + ) + ) + ) + (let ((f0-15 (fmax -8192.0 (fmin 8192.0 (- (-> s2-0 y) (-> s3-0 y)))))) + (+! (-> obj delta-y-ik s4-0) (* 10.0 (seconds-per-frame) (- f0-15 (-> obj delta-y-ik s4-0)))) + ) + ) + ) + (+! (-> s3-0 y) (-> obj delta-y-ik s4-0)) + (handle-copy! (-> obj joint-ik s4-0) s3-0) ) ) - 0 - (none) ) + 0 + (none) ) ) @@ -1183,7 +1175,7 @@ ) (let ((s3-1 (current-time))) (until (>= (- (current-time) s3-1) (seconds 0.2)) - (set! f30-0 (seek f30-0 (lerp-scale 0.0 1.0 (the float s4-0) 0.0 8.0) (-> self clock seconds-per-frame))) + (set! f30-0 (seek f30-0 (lerp-scale 0.0 1.0 (the float s4-0) 0.0 8.0) (seconds-per-frame))) (ja :num! (loop!)) (let ((a0-27 (-> self skel root-channel 1))) (set! (-> a0-27 frame-interp 1) f30-0) @@ -1511,7 +1503,3 @@ 0 (none) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/common/entities/fort-floor-spike_REF.gc b/test/decompiler/reference/jak2/levels/common/entities/fort-floor-spike_REF.gc index 46070ded25..d6fa92647b 100644 --- a/test/decompiler/reference/jak2/levels/common/entities/fort-floor-spike_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/entities/fort-floor-spike_REF.gc @@ -207,17 +207,13 @@ (dotimes (s4-0 (-> self spike-dim 1)) (cond ((zero? (-> s5-0 state)) - (seek! - (-> s5-0 table-ptr s4-0 y) - (* 4096.0 (- -4.0 (the float s4-0))) - (* 131072.0 (-> self clock seconds-per-frame)) - ) + (seek! (-> s5-0 table-ptr s4-0 y) (* 4096.0 (- -4.0 (the float s4-0))) (* 131072.0 (seconds-per-frame))) ) (else (let ((f30-0 (-> s5-0 table-ptr s4-0 y)) (f28-0 (* 4096.0 (+ -1.0 (the float s4-0)))) ) - (seek! (-> s5-0 table-ptr s4-0 y) f28-0 (* 131072.0 (-> self clock seconds-per-frame))) + (seek! (-> s5-0 table-ptr s4-0 y) f28-0 (* 131072.0 (seconds-per-frame))) (if (and (< f30-0 f28-0) (= (-> s5-0 table-ptr gp-0 y) f28-0)) (sound-play "floor-spike" :position (-> s5-0 table-ptr gp-0)) ) diff --git a/test/decompiler/reference/jak2/levels/common/entities/gun-buoy_REF.gc b/test/decompiler/reference/jak2/levels/common/entities/gun-buoy_REF.gc index 287ebd5e2f..f6a4d6e3b4 100644 --- a/test/decompiler/reference/jak2/levels/common/entities/gun-buoy_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/entities/gun-buoy_REF.gc @@ -45,77 +45,75 @@ ;; WARN: Return type mismatch int vs none. (defun gun-buoy-shot-move ((arg0 gun-buoy-shot)) (local-vars (at-0 int)) - (with-pp - (rlet ((vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (let ((s5-0 (-> arg0 root))) - (let ((s3-0 (new 'stack-no-clear 'collide-query)) - (s2-0 (-> s5-0 root-prim)) - (s4-0 (new 'stack-no-clear 'vector)) - ) - (set! (-> s4-0 quad) (-> s5-0 transv quad)) - (let* ((f30-0 (vector-length s4-0)) - (s1-0 *target*) - (a0-2 (if (type? s1-0 process-focusable) - s1-0 - ) - ) - ) - (when a0-2 - (let ((s1-1 (new 'stack-no-clear 'vector))) - (set! (-> s1-1 quad) (-> (get-trans a0-2 0) quad)) - (+! (-> s1-1 y) 8192.0) - (vector-! s4-0 s1-1 (-> s5-0 trans)) - ) - (vector-normalize! s4-0 f30-0) - ) + (rlet ((vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (-> arg0 root))) + (let ((s3-0 (new 'stack-no-clear 'collide-query)) + (s2-0 (-> s5-0 root-prim)) + (s4-0 (new 'stack-no-clear 'vector)) ) - (set! (-> s3-0 start-pos quad) (-> s5-0 trans quad)) - (let ((v1-12 (-> s3-0 move-dist))) - (.lvf vf1 (&-> s4-0 quad)) - (let ((f0-2 (-> pp clock seconds-per-frame))) - (.mov at-0 f0-2) - ) - (.mov vf2 at-0) - (.mov.vf vf1 vf0 :mask #b1000) - (.mul.x.vf vf1 vf1 vf2 :mask #b111) - (.svf (&-> v1-12 quad) vf1) - ) - (let ((v1-13 s3-0)) - (set! (-> v1-13 radius) (-> s2-0 prim-core world-sphere w)) - (set! (-> v1-13 collide-with) (-> s2-0 prim-core collide-with)) - (set! (-> v1-13 ignore-process0) arg0) - (set! (-> v1-13 ignore-process1) (ppointer->process (-> arg0 parent))) - (set! (-> v1-13 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (set! (-> v1-13 action-mask) (collide-action solid)) - ) - (set! (-> *actor-hash* debug-draw) #t) - (fill-using-line-sphere *collide-cache* s3-0) - (set! (-> *actor-hash* debug-draw) #f) - (integrate-and-collide! s5-0 s4-0) - ) - (let ((s4-1 (new 'stack-no-clear 'vector))) - (vector-! s4-1 (-> arg0 tail-pos) (-> s5-0 trans)) - (let ((f0-4 (vector-length s4-1))) - (when (< 36864.0 f0-4) - (vector-normalize! s4-1 36864.0) - (vector+! (-> arg0 tail-pos) (-> s5-0 trans) s4-1) + (set! (-> s4-0 quad) (-> s5-0 transv quad)) + (let* ((f30-0 (vector-length s4-0)) + (s1-0 *target*) + (a0-2 (if (type? s1-0 process-focusable) + s1-0 + ) + ) + ) + (when a0-2 + (let ((s1-1 (new 'stack-no-clear 'vector))) + (set! (-> s1-1 quad) (-> (get-trans a0-2 0) quad)) + (+! (-> s1-1 y) 8192.0) + (vector-! s4-0 s1-1 (-> s5-0 trans)) ) + (vector-normalize! s4-0 f30-0) ) ) - (when (logtest? (-> s5-0 status) (collide-status touch-surface)) - (if (logtest? (-> arg0 root status) (collide-status touch-actor)) - (set! (-> arg0 hit-actor?) #t) - ) - (go (method-of-object arg0 impact)) + (set! (-> s3-0 start-pos quad) (-> s5-0 trans quad)) + (let ((v1-12 (-> s3-0 move-dist))) + (.lvf vf1 (&-> s4-0 quad)) + (let ((f0-2 (seconds-per-frame))) + (.mov at-0 f0-2) + ) + (.mov vf2 at-0) + (.mov.vf vf1 vf0 :mask #b1000) + (.mul.x.vf vf1 vf1 vf2 :mask #b111) + (.svf (&-> v1-12 quad) vf1) + ) + (let ((v1-13 s3-0)) + (set! (-> v1-13 radius) (-> s2-0 prim-core world-sphere w)) + (set! (-> v1-13 collide-with) (-> s2-0 prim-core collide-with)) + (set! (-> v1-13 ignore-process0) arg0) + (set! (-> v1-13 ignore-process1) (ppointer->process (-> arg0 parent))) + (set! (-> v1-13 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (set! (-> v1-13 action-mask) (collide-action solid)) + ) + (set! (-> *actor-hash* debug-draw) #t) + (fill-using-line-sphere *collide-cache* s3-0) + (set! (-> *actor-hash* debug-draw) #f) + (integrate-and-collide! s5-0 s4-0) + ) + (let ((s4-1 (new 'stack-no-clear 'vector))) + (vector-! s4-1 (-> arg0 tail-pos) (-> s5-0 trans)) + (let ((f0-4 (vector-length s4-1))) + (when (< 36864.0 f0-4) + (vector-normalize! s4-1 36864.0) + (vector+! (-> arg0 tail-pos) (-> s5-0 trans) s4-1) + ) ) ) - 0 - (none) + (when (logtest? (-> s5-0 status) (collide-status touch-surface)) + (if (logtest? (-> arg0 root status) (collide-status touch-actor)) + (set! (-> arg0 hit-actor?) #t) + ) + (go (method-of-object arg0 impact)) + ) ) + 0 + (none) ) ) @@ -436,7 +434,7 @@ (let ((gp-1 (new 'stack 'water-info))) (water-info-init! (-> self root) gp-1 (collide-action solid semi-solid)) (get-height *ocean* s5-2 #t) - (seek! (-> self y-final) (+ -3276.8 (-> gp-1 trans y)) (* 3276.8 (-> self clock seconds-per-frame))) + (seek! (-> self y-final) (+ -3276.8 (-> gp-1 trans y)) (* 3276.8 (seconds-per-frame))) ) ) 0 @@ -571,9 +569,9 @@ (set! (-> self y-offset) (seek-ease (-> self y-offset) 0.0 - (* (-> self y-speed) (-> self clock seconds-per-frame)) + (* (-> self y-speed) (seconds-per-frame)) 12288.0 - (* 40.96 (-> self clock seconds-per-frame)) + (* 40.96 (seconds-per-frame)) ) ) (let ((f30-0 (- 1.0 (fabs (* 0.000012207031 (-> self y-offset)))))) @@ -616,7 +614,7 @@ ) :code (the-as (function none :behavior gun-buoy) sleep-code) :post (behavior () - (seek! (-> self y-offset) -81920.0 (* 49152.0 (-> self clock seconds-per-frame))) + (seek! (-> self y-offset) -81920.0 (* 49152.0 (seconds-per-frame))) (let ((f30-0 (- 1.0 (fabs (* 0.000012207031 (-> self y-offset)))))) (let ((f0-5 (* f30-0 f30-0))) (set-vector! (-> self root scale) f30-0 f30-0 f30-0 1.0) @@ -997,73 +995,71 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (-> obj root) - (let* ((s4-0 *target*) - (s5-0 (if (type? s4-0 process-focusable) - s4-0 - ) - ) - ) - (cond - (s5-0 - (let* ((s2-1 (vector-normalize-copy! - (new 'stack-no-clear 'vector) - (vector-z-quaternion! (new 'stack-no-clear 'vector) (get-quat s5-0 2)) - 1.0 - ) + (-> obj root) + (let* ((s4-0 *target*) + (s5-0 (if (type? s4-0 process-focusable) + s4-0 + ) + ) + ) + (cond + (s5-0 + (let* ((s2-1 (vector-normalize-copy! + (new 'stack-no-clear 'vector) + (vector-z-quaternion! (new 'stack-no-clear 'vector) (get-quat s5-0 2)) + 1.0 ) - (f28-0 (-> obj offset-y-angular)) - (s4-2 (-> obj offset-from-player)) - (s3-1 (vector-normalize-copy! (new 'stack-no-clear 'vector) s4-2 1.0)) - (f30-0 (vector-y-angle s3-1)) - (f0-0 (vector-y-angle s2-1)) - (f30-1 (+ (* 0.15 f28-0) (* 0.8 (-> pp clock seconds-per-frame) (deg-diff f30-0 f0-0)))) - ) - (vector-rotate-y! s3-1 s3-1 f30-1) - (vector-normalize! s3-1 (vector-length s4-2)) - (set! (-> s4-2 quad) (-> s3-1 quad)) - (set! (-> obj offset-y-angular) f30-1) - ) - (let* ((f30-2 1.1) - (v1-10 (get-transv s5-0)) - (f30-3 (* f30-2 (sqrtf (+ (* (-> v1-10 x) (-> v1-10 x)) (* (-> v1-10 z) (-> v1-10 z)))))) - (f0-8 (vector-length (vector-! (new 'stack-no-clear 'vector) (get-trans s5-0 0) (-> obj root trans)))) - (f0-10 (fabs (+ -81920.0 f0-8))) - (f1-7 (-> obj nav target-speed)) - (f0-11 (fmax f30-3 f0-10)) - ) - (set! (-> obj nav target-speed) (if (< f1-7 f0-11) - (seek f1-7 f0-11 (* 163840.0 (-> pp clock seconds-per-frame))) - (seek f1-7 f0-11 (* 143360.0 (-> pp clock seconds-per-frame))) - ) - ) - ) - 0 + ) + (f28-0 (-> obj offset-y-angular)) + (s4-2 (-> obj offset-from-player)) + (s3-1 (vector-normalize-copy! (new 'stack-no-clear 'vector) s4-2 1.0)) + (f30-0 (vector-y-angle s3-1)) + (f0-0 (vector-y-angle s2-1)) + (f30-1 (+ (* 0.15 f28-0) (* 0.8 (seconds-per-frame) (deg-diff f30-0 f0-0)))) + ) + (vector-rotate-y! s3-1 s3-1 f30-1) + (vector-normalize! s3-1 (vector-length s4-2)) + (set! (-> s4-2 quad) (-> s3-1 quad)) + (set! (-> obj offset-y-angular) f30-1) ) - (else - (let ((v1-26 (-> obj nav))) - (set! (-> v1-26 target-speed) 0.0) - ) - 0 + (let* ((f30-2 1.1) + (v1-10 (get-transv s5-0)) + (f30-3 (* f30-2 (sqrtf (+ (* (-> v1-10 x) (-> v1-10 x)) (* (-> v1-10 z) (-> v1-10 z)))))) + (f0-8 (vector-length (vector-! (new 'stack-no-clear 'vector) (get-trans s5-0 0) (-> obj root trans)))) + (f0-10 (fabs (+ -81920.0 f0-8))) + (f1-7 (-> obj nav target-speed)) + (f0-11 (fmax f30-3 f0-10)) + ) + (set! (-> obj nav target-speed) (if (< f1-7 f0-11) + (seek f1-7 f0-11 (* 163840.0 (seconds-per-frame))) + (seek f1-7 f0-11 (* 143360.0 (seconds-per-frame))) + ) + ) ) + 0 + ) + (else + (let ((v1-26 (-> obj nav))) + (set! (-> v1-26 target-speed) 0.0) + ) + 0 ) ) - 0 - (let ((v1-30 (current-time)) - (f0-18 4.83) - ) - (set! (-> obj y-bob) - (* 1228.8 (cos (* 65536.0 (/ (the float (mod v1-30 (the int (* 300.0 f0-18)))) (* 300.0 f0-18))))) - ) - ) - (water-control-method-10 (-> obj water)) - (update-trans! (-> obj sound) (-> obj root trans)) - (update! (-> obj sound)) - ((method-of-type nav-enemy track-target!) obj) - 0 - (none) ) + 0 + (let ((v1-30 (current-time)) + (f0-18 4.83) + ) + (set! (-> obj y-bob) + (* 1228.8 (cos (* 65536.0 (/ (the float (mod v1-30 (the int (* 300.0 f0-18)))) (* 300.0 f0-18))))) + ) + ) + (water-control-method-10 (-> obj water)) + (update-trans! (-> obj sound) (-> obj root trans)) + (update! (-> obj sound)) + ((method-of-type nav-enemy track-target!) obj) + 0 + (none) ) ;; definition for method 70 of type gun-buoy @@ -1193,75 +1189,69 @@ ;; WARN: Return type mismatch int vs none. (defmethod nav-enemy-method-142 gun-buoy ((obj gun-buoy) (arg0 nav-control)) (local-vars (a0-19 int) (a0-21 int)) - (with-pp - (let* ((v1-1 (-> *perf-stats* data 33)) - (a0-1 (-> v1-1 ctrl)) - ) - (+! (-> v1-1 count) 1) - (b! (zero? a0-1) cfg-2 :delay (nop!)) - (.mtc0 Perf 0) - (.sync.l) - (.sync.p) - (.mtpc pcr0 0) - (.mtpc pcr1 0) - (.sync.l) - (.sync.p) - (.mtc0 Perf a0-1) - ) + (let* ((v1-1 (-> *perf-stats* data 33)) + (a0-1 (-> v1-1 ctrl)) + ) + (+! (-> v1-1 count) 1) + (b! (zero? a0-1) cfg-2 :delay (nop!)) + (.mtc0 Perf 0) (.sync.l) (.sync.p) - (label cfg-2) - 0 - (forward-up-nopitch->quaternion (-> obj root quat) (-> obj aim-dir) *y-vector*) - (seek! - (-> obj elev-angle) - (- (vector-x-angle (-> obj aim-dir))) - (* 10922.667 (-> pp clock seconds-per-frame)) - ) - (let* ((s5-1 (new 'stack-no-clear 'quaternion)) - (s4-1 (-> obj root quat)) - (f1-1 (-> obj elev-angle)) - (f0-7 (fmax -728.1778 (fmin 728.1778 f1-1))) - (f1-2 (- f1-1 f0-7)) - (f2-3 (* 0.2 f1-2)) - (f30-0 (+ f0-7 (* 0.8 f1-2))) - ) - (quaternion-vector-angle! s5-1 *x-vector* f2-3) - (quaternion-normalize! (quaternion*! s4-1 s4-1 s5-1)) - (quaternion-vector-angle! (the-as quaternion (-> obj gun-elev-jmod target)) *x-vector* f30-0) - ) - (let* ((s2-0 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) (-> obj root transv) (-> obj root quat))) - (v1-15 (vector-normalize-copy! (new 'stack-no-clear 'vector) s2-0 1.0)) - (s3-1 (new 'stack-no-clear 'vector)) - ) - 0.0 - (let ((s5-2 (new 'stack-no-clear 'quaternion)) - (s4-2 (-> obj root quat)) - (gp-1 (-> obj banking-quat)) - ) - (vector-normalize! (vector-cross! s3-1 v1-15 *y-vector*) 1.0) - (let ((f0-9 (lerp-scale 0.0 1638.4 (vector-length s2-0) 0.0 81920.0))) - (quaternion-vector-angle! s5-2 s3-1 (- f0-9)) - ) - (quaternion-slerp! gp-1 gp-1 s5-2 (* 2.0 (-> pp clock seconds-per-frame))) - (quaternion*! s4-2 s4-2 gp-1) - ) - ) - (let ((v1-20 (-> *perf-stats* data 33))) - (b! (zero? (-> v1-20 ctrl)) cfg-4 :delay (nop!)) - (.mtc0 Perf 0) - (.sync.l) - (.sync.p) - (.mfpc a0-19 pcr0) - (+! (-> v1-20 accum0) a0-19) - (.mfpc a0-21 pcr1) - (+! (-> v1-20 accum1) a0-21) - ) - (label cfg-4) - 0 - 0 - (none) + (.mtpc pcr0 0) + (.mtpc pcr1 0) + (.sync.l) + (.sync.p) + (.mtc0 Perf a0-1) ) + (.sync.l) + (.sync.p) + (label cfg-2) + 0 + (forward-up-nopitch->quaternion (-> obj root quat) (-> obj aim-dir) *y-vector*) + (seek! (-> obj elev-angle) (- (vector-x-angle (-> obj aim-dir))) (* 10922.667 (seconds-per-frame))) + (let* ((s5-1 (new 'stack-no-clear 'quaternion)) + (s4-1 (-> obj root quat)) + (f1-1 (-> obj elev-angle)) + (f0-7 (fmax -728.1778 (fmin 728.1778 f1-1))) + (f1-2 (- f1-1 f0-7)) + (f2-3 (* 0.2 f1-2)) + (f30-0 (+ f0-7 (* 0.8 f1-2))) + ) + (quaternion-vector-angle! s5-1 *x-vector* f2-3) + (quaternion-normalize! (quaternion*! s4-1 s4-1 s5-1)) + (quaternion-vector-angle! (the-as quaternion (-> obj gun-elev-jmod target)) *x-vector* f30-0) + ) + (let* ((s2-0 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) (-> obj root transv) (-> obj root quat))) + (v1-15 (vector-normalize-copy! (new 'stack-no-clear 'vector) s2-0 1.0)) + (s3-1 (new 'stack-no-clear 'vector)) + ) + 0.0 + (let ((s5-2 (new 'stack-no-clear 'quaternion)) + (s4-2 (-> obj root quat)) + (gp-1 (-> obj banking-quat)) + ) + (vector-normalize! (vector-cross! s3-1 v1-15 *y-vector*) 1.0) + (let ((f0-9 (lerp-scale 0.0 1638.4 (vector-length s2-0) 0.0 81920.0))) + (quaternion-vector-angle! s5-2 s3-1 (- f0-9)) + ) + (quaternion-slerp! gp-1 gp-1 s5-2 (* 2.0 (seconds-per-frame))) + (quaternion*! s4-2 s4-2 gp-1) + ) + ) + (let ((v1-20 (-> *perf-stats* data 33))) + (b! (zero? (-> v1-20 ctrl)) cfg-4 :delay (nop!)) + (.mtc0 Perf 0) + (.sync.l) + (.sync.p) + (.mfpc a0-19 pcr0) + (+! (-> v1-20 accum0) a0-19) + (.mfpc a0-21 pcr1) + (+! (-> v1-20 accum1) a0-21) + ) + (label cfg-4) + 0 + 0 + (none) ) ;; definition for method 7 of type gun-buoy diff --git a/test/decompiler/reference/jak2/levels/common/guard-projectile_REF.gc b/test/decompiler/reference/jak2/levels/common/guard-projectile_REF.gc index 4980b10aad..5e03b44392 100644 --- a/test/decompiler/reference/jak2/levels/common/guard-projectile_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/guard-projectile_REF.gc @@ -417,22 +417,8 @@ (set! (-> *part-id-table* 606 init-specs 4 initial-valuef) f28-0) ) (vector-normalize! s5-1 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-5 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 607)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s4-0 quad)) - (t9-2 a0-5 a1-2 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-6 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 608)) - (a2-4 *launch-matrix*) - ) - (set! (-> a2-4 trans quad) (-> s4-0 quad)) - (t9-3 a0-6 a1-3 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 607) s4-0) + (launch-particles (-> *part-id-table* 608) s4-0) ) (let ((s4-1 (new 'stack-no-clear 'matrix)) (f26-0 (* 0.000027126736 f30-0)) @@ -443,14 +429,7 @@ (set! (-> s4-1 trans quad) (-> gp-0 quad)) (set! (-> *part-id-table* 609 init-specs 3 initial-valuef) (* f26-0 f30-1)) (set! (-> *part-id-table* 609 init-specs 4 initial-valuef) (* f26-0 f28-1)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 609) - s4-1 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 609) s4-1 :origin-is-matrix #t) (set! (-> *part-id-table* 609 init-specs 3 initial-valuef) f30-1) (set! (-> *part-id-table* 609 init-specs 4 initial-valuef) f28-1) ) diff --git a/test/decompiler/reference/jak2/levels/common/metalhead-projectile_REF.gc b/test/decompiler/reference/jak2/levels/common/metalhead-projectile_REF.gc index a7d3dc68c5..f8ff99bfab 100644 --- a/test/decompiler/reference/jak2/levels/common/metalhead-projectile_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/metalhead-projectile_REF.gc @@ -402,14 +402,7 @@ (set! (-> *part-id-table* 621 init-specs 4 initial-valuef) f28-0) ) (vector-normalize! s5-1 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-5 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 622)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s4-0 quad)) - (t9-2 a0-5 a1-2 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 622) s4-0) ) (let ((s4-1 (new 'stack-no-clear 'matrix)) (f26-0 (* 0.000020345053 f30-0)) @@ -420,14 +413,7 @@ (set! (-> s4-1 trans quad) (-> gp-0 quad)) (set! (-> *part-id-table* 623 init-specs 3 initial-valuef) (* f26-0 f30-1)) (set! (-> *part-id-table* 623 init-specs 5 initial-valuef) (* f26-0 f28-1)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 623) - s4-1 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 623) s4-1 :origin-is-matrix #t) (set! (-> *part-id-table* 623 init-specs 3 initial-valuef) f30-1) (set! (-> *part-id-table* 623 init-specs 5 initial-valuef) f28-1) ) diff --git a/test/decompiler/reference/jak2/levels/common/race/race-manager_REF.gc b/test/decompiler/reference/jak2/levels/common/race/race-manager_REF.gc index ca30612b06..ec8716fd4b 100644 --- a/test/decompiler/reference/jak2/levels/common/race/race-manager_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/race/race-manager_REF.gc @@ -191,118 +191,116 @@ ;; WARN: Return type mismatch int vs none. (defmethod update-lap-distance racer-state ((obj racer-state) (arg0 race-state)) (local-vars (a0-29 float)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - ) - (init-vf0-vector) - (let ((s5-0 (new 'stack-no-clear 'matrix3))) - (-> arg0 info) - (let ((v1-2 (handle->process (-> obj racer)))) - (cond - (v1-2 - (if (focus-test? (the-as process-focusable v1-2) dead inactive) - (logior! (-> obj flags) (racer-flags dead)) - ) - (set! (-> s5-0 vector 0 quad) (-> (the-as process-focusable v1-2) root trans quad)) - (when (not (logtest? (-> obj flags) (racer-flags finished dead))) - (let ((s3-0 (new 'stack-no-clear 'race-mesh-slice-query))) - (set! (-> s3-0 search-sphere quad) (-> s5-0 vector 0 quad)) - (set! (-> s3-0 search-sphere r) 0.0) - (race-mesh-method-13 (-> arg0 info mesh) (the-as race-mesh-slice-query (&-> s3-0 slice-id))) - (set! (-> obj lap-distance-prev) (-> obj lap-distance)) - (cond - ((>= (-> s3-0 slice-id) 0) - (set! (-> obj lap-distance) (-> s3-0 lap-dist)) - (if (not (logtest? (-> obj flags) (racer-flags on-track))) - (set! (-> obj lap-distance-prev) (-> obj lap-distance)) - ) - (logior! (-> obj flags) (racer-flags on-track)) - ) - (else - (logclear! (-> obj flags) (racer-flags on-track)) - ) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (new 'stack-no-clear 'matrix3))) + (-> arg0 info) + (let ((v1-2 (handle->process (-> obj racer)))) + (cond + (v1-2 + (if (focus-test? (the-as process-focusable v1-2) dead inactive) + (logior! (-> obj flags) (racer-flags dead)) + ) + (set! (-> s5-0 vector 0 quad) (-> (the-as process-focusable v1-2) root trans quad)) + (when (not (logtest? (-> obj flags) (racer-flags finished dead))) + (let ((s3-0 (new 'stack-no-clear 'race-mesh-slice-query))) + (set! (-> s3-0 search-sphere quad) (-> s5-0 vector 0 quad)) + (set! (-> s3-0 search-sphere r) 0.0) + (race-mesh-method-13 (-> arg0 info mesh) (the-as race-mesh-slice-query (&-> s3-0 slice-id))) + (set! (-> obj lap-distance-prev) (-> obj lap-distance)) + (cond + ((>= (-> s3-0 slice-id) 0) + (set! (-> obj lap-distance) (-> s3-0 lap-dist)) + (if (not (logtest? (-> obj flags) (racer-flags on-track))) + (set! (-> obj lap-distance-prev) (-> obj lap-distance)) + ) + (logior! (-> obj flags) (racer-flags on-track)) + ) + (else + (logclear! (-> obj flags) (racer-flags on-track)) ) - (cond - ((logtest? (-> arg0 info mesh flags) (race-mesh-flags racemeshflag-0)) - (when (>= (-> s3-0 slice-id) 0) - (let ((v1-29 (min 3 (the int (* 4.0 (-> s3-0 lap-dist)))))) - (when (= v1-29 (logand (+ (-> obj lap-quadrant) 1) 3)) - (set! (-> obj lap-quadrant) v1-29) - (when (zero? v1-29) - (if (logtest? (-> obj flags) (racer-flags in-race)) - (end-lap obj arg0) - (begin-race arg0) - ) - (begin-lap obj arg0) - ) + ) + (cond + ((logtest? (-> arg0 info mesh flags) (race-mesh-flags racemeshflag-0)) + (when (>= (-> s3-0 slice-id) 0) + (let ((v1-29 (min 3 (the int (* 4.0 (-> s3-0 lap-dist)))))) + (when (= v1-29 (logand (+ (-> obj lap-quadrant) 1) 3)) + (set! (-> obj lap-quadrant) v1-29) + (when (zero? v1-29) + (if (logtest? (-> obj flags) (racer-flags in-race)) + (end-lap obj arg0) + (begin-race arg0) + ) + (begin-lap obj arg0) ) ) ) ) - ((logtest? (-> obj flags) (racer-flags in-race)) - (let ((v1-39 (new 'stack-no-clear 'vector))) - (vector-! (the-as vector (&-> v1-39 x)) (-> obj position) (the-as vector (-> arg0 info finish-sphere))) - (.lvf vf1 (&-> (the-as vector (&-> v1-39 x)) quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov a0-29 vf1) - (let ((f0-7 a0-29) - (f1-1 (-> arg0 info finish-sphere r)) - ) - (if (and (< f0-7 (* f1-1 f1-1)) (< 0.0 (vector-dot (the-as vector (&-> v1-39 x)) (-> arg0 info finish-dir)))) - (end-lap obj arg0) - ) - ) + ) + ((logtest? (-> obj flags) (racer-flags in-race)) + (let ((v1-39 (new 'stack-no-clear 'vector))) + (vector-! (the-as vector (&-> v1-39 x)) (-> obj position) (the-as vector (-> arg0 info finish-sphere))) + (.lvf vf1 (&-> (the-as vector (&-> v1-39 x)) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov a0-29 vf1) + (let ((f0-7 a0-29) + (f1-1 (-> arg0 info finish-sphere r)) + ) + (if (and (< f0-7 (* f1-1 f1-1)) (< 0.0 (vector-dot (the-as vector (&-> v1-39 x)) (-> arg0 info finish-dir)))) + (end-lap obj arg0) + ) ) ) - (else - (when (< 0.0 (-> obj lap-distance)) - (begin-race arg0) - (begin-lap obj arg0) - ) + ) + (else + (when (< 0.0 (-> obj lap-distance)) + (begin-race arg0) + (begin-lap obj arg0) ) ) ) - (let ((f0-10 (-> arg0 info ai-max-speed-factor))) - (if (< (+ (-> arg0 target-pos) (-> obj target-pos-offset)) (-> obj pos)) - (set! f0-10 (-> arg0 info ai-min-speed-factor)) - ) - (seek! (-> obj speed-factor) f0-10 (* 0.2 (-> pp clock seconds-per-frame))) - ) - 0 ) - (if (logtest? (-> obj flags) (racer-flags finished)) - (seek! (-> obj speed-factor) 0.9 (* 0.2 (-> pp clock seconds-per-frame))) - ) - (when (logtest? (-> obj flags) (racer-flags in-race)) - (dotimes (s3-1 (-> arg0 info decision-point-count)) - (let ((v1-70 (-> arg0 info decision-point-array s3-1))) - (if (and (< (-> obj lap-distance-prev) (-> v1-70 pos)) (>= (-> obj lap-distance) (-> v1-70 pos))) - (send-event (handle->process (-> obj racer)) 'race-decision-point v1-70) - ) + (let ((f0-10 (-> arg0 info ai-max-speed-factor))) + (if (< (+ (-> arg0 target-pos) (-> obj target-pos-offset)) (-> obj pos)) + (set! f0-10 (-> arg0 info ai-min-speed-factor)) ) - ) - (set! (-> obj pos) (+ (-> obj lap-distance) (the float (-> obj lap-count)))) + (seek! (-> obj speed-factor) f0-10 (* 0.2 (seconds-per-frame))) ) - (set! (-> obj position quad) (-> s5-0 vector 0 quad)) + 0 ) - (else - (logior! (-> obj flags) (racer-flags dead)) + (if (logtest? (-> obj flags) (racer-flags finished)) + (seek! (-> obj speed-factor) 0.9 (* 0.2 (seconds-per-frame))) + ) + (when (logtest? (-> obj flags) (racer-flags in-race)) + (dotimes (s3-1 (-> arg0 info decision-point-count)) + (let ((v1-70 (-> arg0 info decision-point-array s3-1))) + (if (and (< (-> obj lap-distance-prev) (-> v1-70 pos)) (>= (-> obj lap-distance) (-> v1-70 pos))) + (send-event (handle->process (-> obj racer)) 'race-decision-point v1-70) + ) + ) + ) + (set! (-> obj pos) (+ (-> obj lap-distance) (the float (-> obj lap-count)))) ) + (set! (-> obj position quad) (-> s5-0 vector 0 quad)) + ) + (else + (logior! (-> obj flags) (racer-flags dead)) ) ) ) - (when (logtest? (-> obj flags) (racer-flags unknown)) - ) - 0 - (none) ) + (when (logtest? (-> obj flags) (racer-flags unknown)) + ) + 0 + (none) ) ) diff --git a/test/decompiler/reference/jak2/levels/common/race/race-obs_REF.gc b/test/decompiler/reference/jak2/levels/common/race/race-obs_REF.gc index ca8e66e8f7..ec4724e426 100644 --- a/test/decompiler/reference/jak2/levels/common/race/race-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/race/race-obs_REF.gc @@ -143,24 +143,20 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod race-signal-method-29 race-signal ((obj race-signal)) - (with-pp - (+! (-> obj y-offset) - (* (- (-> obj dest-y-offset) (-> obj y-offset)) (fmin 1.0 (* 2.0 (-> pp clock seconds-per-frame)))) - ) - (let ((f30-0 (* 0.0033333334 (the float (- (current-time) (-> obj bob-time)))))) - (set! (-> obj root trans y) (+ (-> obj pos y) (-> obj y-offset) (* 1024.0 (sin (* 32768.0 f30-0))))) - (set! (-> obj root trans z) (+ (-> obj pos z) (* 2048.0 (cos (* 32768.0 f30-0))))) - ) - (let ((v1-15 (handle->process (-> obj banner)))) - (when v1-15 - (set! (-> (the-as race-signal-banner v1-15) root trans quad) (-> obj root trans quad)) - (quaternion-copy! (-> (the-as race-signal-banner v1-15) root quat) (-> obj root quat)) - ) - ) - (ja-post) - 0 - (none) + (+! (-> obj y-offset) (* (- (-> obj dest-y-offset) (-> obj y-offset)) (fmin 1.0 (* 2.0 (seconds-per-frame))))) + (let ((f30-0 (* 0.0033333334 (the float (- (current-time) (-> obj bob-time)))))) + (set! (-> obj root trans y) (+ (-> obj pos y) (-> obj y-offset) (* 1024.0 (sin (* 32768.0 f30-0))))) + (set! (-> obj root trans z) (+ (-> obj pos z) (* 2048.0 (cos (* 32768.0 f30-0))))) ) + (let ((v1-15 (handle->process (-> obj banner)))) + (when v1-15 + (set! (-> (the-as race-signal-banner v1-15) root trans quad) (-> obj root trans quad)) + (quaternion-copy! (-> (the-as race-signal-banner v1-15) root quat) (-> obj root quat)) + ) + ) + (ja-post) + 0 + (none) ) ;; definition for function race-signal-event-handler diff --git a/test/decompiler/reference/jak2/levels/common/race/vehicle-racer_REF.gc b/test/decompiler/reference/jak2/levels/common/race/vehicle-racer_REF.gc index a08cb613d3..f530b3d983 100644 --- a/test/decompiler/reference/jak2/levels/common/race/vehicle-racer_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/race/vehicle-racer_REF.gc @@ -589,159 +589,157 @@ ;; WARN: Return type mismatch int vs none. (defmethod vehicle-racer-method-151 vehicle-racer ((obj vehicle-racer)) (local-vars (v1-18 float) (v1-28 float)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (let ((s5-0 (-> obj race))) - (when (nonzero? s5-0) - (race-control-method-11 s5-0 0.0) - (let ((s4-0 (-> obj rbody)) - (f30-0 (-> pp clock seconds-per-frame)) - ) - 1.0 - (let ((s3-0 (new 'stack-no-clear 'inline-array 'matrix 9)) - (f28-0 - (fmin - (* (+ (vector-length (-> s4-0 state lin-velocity)) (* 163840.0 f30-0)) - (/ 1.0 (fmax 1.0 (vector-length (-> s5-0 lin-velocity)))) - ) - (-> s5-0 racer-state speed-factor) - ) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (-> obj race))) + (when (nonzero? s5-0) + (race-control-method-11 s5-0 0.0) + (let ((s4-0 (-> obj rbody)) + (f30-0 (seconds-per-frame)) + ) + 1.0 + (let ((s3-0 (new 'stack-no-clear 'inline-array 'matrix 9)) + (f28-0 + (fmin + (* (+ (vector-length (-> s4-0 state lin-velocity)) (* 163840.0 f30-0)) + (/ 1.0 (fmax 1.0 (vector-length (-> s5-0 lin-velocity)))) + ) + (-> s5-0 racer-state speed-factor) ) ) - (set! (-> s3-0 1 vector 1 x) 819200.0) - (quaternion-copy! (the-as quaternion (-> s3-0 1)) (-> s5-0 path-sample quat)) - (vector-float*! (-> s3-0 0 vector 2) (-> s5-0 lin-velocity) f28-0) - (vector-! (-> s3-0 0 trans) (the-as vector (-> s5-0 path-sample)) (-> s4-0 state position)) - (.lvf vf1 (&-> (-> s3-0 0 trans) quad)) + ) + (set! (-> s3-0 1 vector 1 x) 819200.0) + (quaternion-copy! (the-as quaternion (-> s3-0 1)) (-> s5-0 path-sample quat)) + (vector-float*! (-> s3-0 0 vector 2) (-> s5-0 lin-velocity) f28-0) + (vector-! (-> s3-0 0 trans) (the-as vector (-> s5-0 path-sample)) (-> s4-0 state position)) + (.lvf vf1 (&-> (-> s3-0 0 trans) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-18 vf1) + (let ((f0-6 v1-18) + (f1-5 1.0) + (f2-2 40960.0) + ) + (set! (-> obj path-deviation) (* f0-6 (/ f1-5 (* f2-2 f2-2)))) + ) + (let ((a1-4 (-> s3-0 0 vector 2))) + (let ((v1-22 (-> s3-0 0 vector 2))) + (let ((a0-5 (-> s3-0 0 trans))) + (let ((a2-1 1.0)) + (.mov vf7 a2-1) + ) + (.lvf vf5 (&-> a0-5 quad)) + ) + (.lvf vf4 (&-> v1-22 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-4 quad) vf6) + ) + (vector-! (the-as vector (-> s3-0 0)) (-> s3-0 0 vector 2) (-> s4-0 state lin-velocity)) + (vector-float*! (the-as vector (-> s3-0 0)) (the-as vector (-> s3-0 0)) 16.0) + (let* ((f0-10 (-> s3-0 1 vector 1 x)) + (f0-12 (* f0-10 f0-10)) + ) + (.lvf vf1 (&-> (-> s3-0 0) quad 0)) (.add.w.vf vf2 vf0 vf0 :mask #b1) (.mul.vf vf1 vf1 vf1) (.mul.x.vf acc vf2 vf1 :mask #b1) (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-18 vf1) - (let ((f0-6 v1-18) - (f1-5 1.0) - (f2-2 40960.0) - ) - (set! (-> obj path-deviation) (* f0-6 (/ f1-5 (* f2-2 f2-2)))) - ) - (let ((a1-4 (-> s3-0 0 vector 2))) - (let ((v1-22 (-> s3-0 0 vector 2))) - (let ((a0-5 (-> s3-0 0 trans))) - (let ((a2-1 1.0)) - (.mov vf7 a2-1) - ) - (.lvf vf5 (&-> a0-5 quad)) - ) - (.lvf vf4 (&-> v1-22 quad)) + (.mov v1-28 vf1) + (if (< f0-12 v1-28) + (vector-normalize! (the-as vector (-> s3-0 0)) (-> s3-0 1 vector 1 x)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-4 quad) vf6) - ) - (vector-! (the-as vector (-> s3-0 0)) (-> s3-0 0 vector 2) (-> s4-0 state lin-velocity)) - (vector-float*! (the-as vector (-> s3-0 0)) (the-as vector (-> s3-0 0)) 16.0) - (let* ((f0-10 (-> s3-0 1 vector 1 x)) - (f0-12 (* f0-10 f0-10)) - ) - (.lvf vf1 (&-> (-> s3-0 0) quad 0)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-28 vf1) - (if (< f0-12 v1-28) - (vector-normalize! (the-as vector (-> s3-0 0)) (-> s3-0 1 vector 1 x)) - ) - ) - (let ((a1-9 (-> s4-0 state lin-velocity))) - (let ((v1-31 (-> s4-0 state lin-velocity))) - (let ((a0-9 (-> s3-0 0))) - (let ((a2-2 f30-0)) - (.mov vf7 a2-2) - ) - (.lvf vf5 (&-> a0-9 quad 0)) - ) - (.lvf vf4 (&-> v1-31 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-9 quad) vf6) - ) - (let ((a1-10 (-> s4-0 state position))) - (let ((v1-32 (-> s4-0 state position))) - (let ((a0-10 (-> s4-0 state lin-velocity))) - (let ((a2-3 f30-0)) - (.mov vf7 a2-3) - ) - (.lvf vf5 (&-> a0-10 quad)) - ) - (.lvf vf4 (&-> v1-32 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-10 quad) vf6) - ) - (quaternion-pseudo-seek - (-> s4-0 state rotation) - (-> s4-0 state rotation) - (the-as quaternion (-> s3-0 1)) - (* 10.0 f30-0) - ) - (vector-float*! (-> s4-0 state lin-momentum) (-> s4-0 state lin-velocity) (-> obj info info mass)) - (vector-reset! (-> s4-0 state ang-momentum)) - (rigid-body-method-24 (-> s4-0 state)) - (rigid-body-method-13 (-> s4-0 state)) - (set! (-> obj root transv quad) (-> s4-0 state lin-velocity quad)) - (quaternion-copy! (-> obj root quat) (-> s4-0 state rotation)) - (let ((v1-46 s4-0) - (a1-14 (-> obj root trans)) - ) - (rigid-body-method-23 (-> v1-46 state) a1-14) - ) - (let* ((v1-51 (-> obj node-list data 0 bone transform)) - (a3-1 (-> s4-0 state matrix)) - (a0-20 (-> a3-1 quad 0)) - (a1-15 (-> a3-1 quad 1)) - (a2-5 (-> a3-1 quad 2)) - (a3-2 (-> a3-1 trans quad)) - ) - (set! (-> v1-51 quad 0) a0-20) - (set! (-> v1-51 quad 1) a1-15) - (set! (-> v1-51 quad 2) a2-5) - (set! (-> v1-51 trans quad) a3-2) - ) - (set! (-> obj node-list data 0 bone transform trans quad) (-> obj root trans quad)) - (race-control-method-11 s5-0 (* f30-0 f28-0)) ) + (let ((a1-9 (-> s4-0 state lin-velocity))) + (let ((v1-31 (-> s4-0 state lin-velocity))) + (let ((a0-9 (-> s3-0 0))) + (let ((a2-2 f30-0)) + (.mov vf7 a2-2) + ) + (.lvf vf5 (&-> a0-9 quad 0)) + ) + (.lvf vf4 (&-> v1-31 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-9 quad) vf6) + ) + (let ((a1-10 (-> s4-0 state position))) + (let ((v1-32 (-> s4-0 state position))) + (let ((a0-10 (-> s4-0 state lin-velocity))) + (let ((a2-3 f30-0)) + (.mov vf7 a2-3) + ) + (.lvf vf5 (&-> a0-10 quad)) + ) + (.lvf vf4 (&-> v1-32 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-10 quad) vf6) + ) + (quaternion-pseudo-seek + (-> s4-0 state rotation) + (-> s4-0 state rotation) + (the-as quaternion (-> s3-0 1)) + (* 10.0 f30-0) + ) + (vector-float*! (-> s4-0 state lin-momentum) (-> s4-0 state lin-velocity) (-> obj info info mass)) + (vector-reset! (-> s4-0 state ang-momentum)) + (rigid-body-method-24 (-> s4-0 state)) + (rigid-body-method-13 (-> s4-0 state)) + (set! (-> obj root transv quad) (-> s4-0 state lin-velocity quad)) + (quaternion-copy! (-> obj root quat) (-> s4-0 state rotation)) + (let ((v1-46 s4-0) + (a1-14 (-> obj root trans)) + ) + (rigid-body-method-23 (-> v1-46 state) a1-14) + ) + (let* ((v1-51 (-> obj node-list data 0 bone transform)) + (a3-1 (-> s4-0 state matrix)) + (a0-20 (-> a3-1 quad 0)) + (a1-15 (-> a3-1 quad 1)) + (a2-5 (-> a3-1 quad 2)) + (a3-2 (-> a3-1 trans quad)) + ) + (set! (-> v1-51 quad 0) a0-20) + (set! (-> v1-51 quad 1) a1-15) + (set! (-> v1-51 quad 2) a2-5) + (set! (-> v1-51 trans quad) a3-2) + ) + (set! (-> obj node-list data 0 bone transform trans quad) (-> obj root trans quad)) + (race-control-method-11 s5-0 (* f30-0 f28-0)) ) ) ) - (vehicle-method-119 obj) - (vehicle-method-120 obj) - (update-transforms (-> obj root)) - (let ((a1-17 (new 'stack-no-clear 'overlaps-others-params))) - (set! (-> a1-17 options) (overlaps-others-options)) - (set! (-> a1-17 collide-with-filter) (collide-spec civilian enemy obstacle)) - (set! (-> a1-17 tlist) *touching-list*) - (find-overlapping-shapes (-> obj root) a1-17) - ) - 0 - (none) ) + (vehicle-method-119 obj) + (vehicle-method-120 obj) + (update-transforms (-> obj root)) + (let ((a1-17 (new 'stack-no-clear 'overlaps-others-params))) + (set! (-> a1-17 options) (overlaps-others-options)) + (set! (-> a1-17 collide-with-filter) (collide-spec civilian enemy obstacle)) + (set! (-> a1-17 tlist) *touching-list*) + (find-overlapping-shapes (-> obj root) a1-17) + ) + 0 + (none) ) ) @@ -750,137 +748,135 @@ ;; WARN: Return type mismatch int vs none. (defmethod physics-post vehicle-racer ((obj vehicle-racer)) (local-vars (v1-35 float)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf1 :class vf) - (vf2 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (let ((s5-0 (-> obj race))) - (let ((s4-0 (new 'stack-no-clear 'inline-array 'matrix 9))) - (set! (-> s4-0 0 quad 0) (-> obj rbody state position quad)) - (set! (-> s4-0 0 vector 1 quad) (-> obj rbody state lin-velocity quad)) - (set! (-> s4-0 3 vector 1 y) 0.0) - (set! (-> s4-0 1 vector 1 quad) (-> obj rbody state matrix quad 0)) - (set! (-> s4-0 1 vector 1 y) 0.0) - (vector-normalize! (-> s4-0 1 vector 1) 1.0) - (set! (-> s4-0 1 vector 2 quad) (-> obj rbody state matrix vector 2 quad)) - (set! (-> s4-0 3 vector 0 x) - (* (-> obj rbody state ang-velocity y) (vector-length (-> obj rbody state lin-velocity))) - ) - (set! (-> s4-0 3 vector 1 x) (-> pp clock seconds-per-frame)) - (race-control-method-12 s5-0 (the-as vector (-> s4-0 0))) - (set! (-> s4-0 3 vector 0 y) (vector-length (-> s4-0 0 vector 1))) - (set! (-> s4-0 3 vector 0 z) (vector-length (-> s5-0 lin-velocity))) - (set! (-> s4-0 3 vector 0 w) - (* (-> s4-0 3 vector 0 z) (fmax (-> s5-0 racer-state speed-factor) (-> obj shortcut-speed-factor))) - ) - (if (logtest? (rigid-body-object-flag in-air turbo-boost) (-> obj flags)) - (set! (-> s4-0 3 vector 0 w) (* 2.0 (-> s4-0 3 vector 0 w))) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (-> obj race))) + (let ((s4-0 (new 'stack-no-clear 'inline-array 'matrix 9))) + (set! (-> s4-0 0 quad 0) (-> obj rbody state position quad)) + (set! (-> s4-0 0 vector 1 quad) (-> obj rbody state lin-velocity quad)) + (set! (-> s4-0 3 vector 1 y) 0.0) + (set! (-> s4-0 1 vector 1 quad) (-> obj rbody state matrix quad 0)) + (set! (-> s4-0 1 vector 1 y) 0.0) + (vector-normalize! (-> s4-0 1 vector 1) 1.0) + (set! (-> s4-0 1 vector 2 quad) (-> obj rbody state matrix vector 2 quad)) + (set! (-> s4-0 3 vector 0 x) + (* (-> obj rbody state ang-velocity y) (vector-length (-> obj rbody state lin-velocity))) ) - (let ((v1-21 (-> s5-0 path-sample))) - (set! (-> s4-0 2 vector 0 x) (* 0.007874016 (the float (-> v1-21 stick-x)))) - (set! (-> s4-0 2 vector 0 w) (* 0.007874016 (the float (-> v1-21 stick-y)))) - (set! (-> s4-0 2 vector 0 y) (* 0.003921569 (the float (-> v1-21 throttle)))) - (set! (-> s4-0 2 vector 0 z) (if (logtest? (-> v1-21 flags) 1) - 1.0 - 0.0 - ) - ) - ) - (let ((f0-19 (+ (-> s5-0 path-t) (* 1.875 (/ 1.0 (-> s4-0 3 vector 0 z)) (-> s4-0 3 vector 0 y))))) - (race-path-method-11 (-> s5-0 path) (the-as race-path-sample (-> s4-0 2 vector 1)) (-> s4-0 2 trans) f0-19) - ) - (vector-! (-> s4-0 0 trans) (the-as vector (-> s5-0 path-sample)) (the-as vector (-> s4-0 0))) - (let* ((f0-20 (-> s4-0 3 vector 1 y)) - (f1-13 1.0) - (f2-4 40960.0) - (f1-14 (/ f1-13 (* f2-4 f2-4))) - ) - (.lvf vf1 (&-> (-> s4-0 0 trans) quad)) - (.add.w.vf vf2 vf0 vf0 :mask #b1) - (.mul.vf vf1 vf1 vf1) - (.mul.x.vf acc vf2 vf1 :mask #b1) - (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) - (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) - (.mov v1-35 vf1) - (set! (-> s4-0 3 vector 1 y) (+ f0-20 (* f1-14 v1-35))) - ) - (let ((f30-0 (-> s4-0 3 vector 1 y)) - (f0-22 1.0) - (f1-16 40960.0) - ) - (set! (-> s4-0 3 vector 1 y) - (+ f30-0 - (* (/ f0-22 (* f1-16 f1-16)) (vector-vector-distance-squared (-> s5-0 lin-velocity) (-> s4-0 0 vector 1))) - ) - ) - ) - (set! (-> obj path-deviation) (-> s4-0 3 vector 1 y)) - (let ((a1-6 (-> s4-0 0 vector 2))) - (let ((v1-39 (-> s4-0 2 trans))) - (let ((a0-25 (-> s4-0 0 trans))) - (let ((a2-2 1.0)) - (.mov vf7 a2-2) - ) - (.lvf vf5 (&-> a0-25 quad)) - ) - (.lvf vf4 (&-> v1-39 quad)) + (set! (-> s4-0 3 vector 1 x) (seconds-per-frame)) + (race-control-method-12 s5-0 (the-as vector (-> s4-0 0))) + (set! (-> s4-0 3 vector 0 y) (vector-length (-> s4-0 0 vector 1))) + (set! (-> s4-0 3 vector 0 z) (vector-length (-> s5-0 lin-velocity))) + (set! (-> s4-0 3 vector 0 w) + (* (-> s4-0 3 vector 0 z) (fmax (-> s5-0 racer-state speed-factor) (-> obj shortcut-speed-factor))) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-6 quad) vf6) + (if (logtest? (rigid-body-object-flag in-air turbo-boost) (-> obj flags)) + (set! (-> s4-0 3 vector 0 w) (* 2.0 (-> s4-0 3 vector 0 w))) ) - (vector-! (the-as vector (-> s4-0 1)) (-> s4-0 0 vector 2) (-> s4-0 0 vector 1)) - (vector-float*! (-> s4-0 1 trans) (the-as vector (-> s4-0 1)) 1.5) - (let ((f1-22 (* 0.00036621094 (- (-> s4-0 3 vector 0 w) (-> s4-0 3 vector 0 y)) (-> s4-0 3 vector 1 x)))) - (set! (-> obj ai-controls throttle) (fmax 0.0 (fmin 1.0 (+ (-> obj ai-controls throttle) f1-22)))) - ) - (set! (-> obj ai-controls brake) - (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ (- -4096.0 (-> s4-0 3 vector 0 w)) (-> s4-0 3 vector 0 y))))) + (let ((v1-21 (-> s5-0 path-sample))) + (set! (-> s4-0 2 vector 0 x) (* 0.007874016 (the float (-> v1-21 stick-x)))) + (set! (-> s4-0 2 vector 0 w) (* 0.007874016 (the float (-> v1-21 stick-y)))) + (set! (-> s4-0 2 vector 0 y) (* 0.003921569 (the float (-> v1-21 throttle)))) + (set! (-> s4-0 2 vector 0 z) (if (logtest? (-> v1-21 flags) 1) + 1.0 + 0.0 + ) ) - (+! (-> obj ai-controls brake) (* (- (-> obj ai-controls brake)) (fmin 1.0 (* 8.0 (-> s4-0 3 vector 1 x))))) - (set! (-> obj ai-controls steering) - (fmax -1.0 (fmin 1.0 (* 0.000000000048894434 - (+ 40960.0 (-> s4-0 3 vector 0 y)) - (vector-dot (-> s4-0 1 vector 1) (-> s4-0 1 trans)) + ) + (let ((f0-19 (+ (-> s5-0 path-t) (* 1.875 (/ 1.0 (-> s4-0 3 vector 0 z)) (-> s4-0 3 vector 0 y))))) + (race-path-method-11 (-> s5-0 path) (the-as race-path-sample (-> s4-0 2 vector 1)) (-> s4-0 2 trans) f0-19) + ) + (vector-! (-> s4-0 0 trans) (the-as vector (-> s5-0 path-sample)) (the-as vector (-> s4-0 0))) + (let* ((f0-20 (-> s4-0 3 vector 1 y)) + (f1-13 1.0) + (f2-4 40960.0) + (f1-14 (/ f1-13 (* f2-4 f2-4))) + ) + (.lvf vf1 (&-> (-> s4-0 0 trans) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-35 vf1) + (set! (-> s4-0 3 vector 1 y) (+ f0-20 (* f1-14 v1-35))) + ) + (let ((f30-0 (-> s4-0 3 vector 1 y)) + (f0-22 1.0) + (f1-16 40960.0) + ) + (set! (-> s4-0 3 vector 1 y) + (+ f30-0 + (* (/ f0-22 (* f1-16 f1-16)) (vector-vector-distance-squared (-> s5-0 lin-velocity) (-> s4-0 0 vector 1))) + ) + ) + ) + (set! (-> obj path-deviation) (-> s4-0 3 vector 1 y)) + (let ((a1-6 (-> s4-0 0 vector 2))) + (let ((v1-39 (-> s4-0 2 trans))) + (let ((a0-25 (-> s4-0 0 trans))) + (let ((a2-2 1.0)) + (.mov vf7 a2-2) + ) + (.lvf vf5 (&-> a0-25 quad)) + ) + (.lvf vf4 (&-> v1-39 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-6 quad) vf6) + ) + (vector-! (the-as vector (-> s4-0 1)) (-> s4-0 0 vector 2) (-> s4-0 0 vector 1)) + (vector-float*! (-> s4-0 1 trans) (the-as vector (-> s4-0 1)) 1.5) + (let ((f1-22 (* 0.00036621094 (- (-> s4-0 3 vector 0 w) (-> s4-0 3 vector 0 y)) (-> s4-0 3 vector 1 x)))) + (set! (-> obj ai-controls throttle) (fmax 0.0 (fmin 1.0 (+ (-> obj ai-controls throttle) f1-22)))) + ) + (set! (-> obj ai-controls brake) + (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ (- -4096.0 (-> s4-0 3 vector 0 w)) (-> s4-0 3 vector 0 y))))) + ) + (+! (-> obj ai-controls brake) (* (- (-> obj ai-controls brake)) (fmin 1.0 (* 8.0 (-> s4-0 3 vector 1 x))))) + (set! (-> obj ai-controls steering) + (fmax -1.0 (fmin 1.0 (* 0.000000000048894434 + (+ 40960.0 (-> s4-0 3 vector 0 y)) + (vector-dot (-> s4-0 1 vector 1) (-> s4-0 1 trans)) + ) + ) + ) + ) + (set! (-> s4-0 3 vector 1 y) (fmin 1.0 (-> s4-0 3 vector 1 y))) + (set! (-> s4-0 2 vector 0 x) (+ (* (-> s4-0 2 vector 0 x) (- 1.0 (-> s4-0 3 vector 1 y))) + (* (-> obj ai-controls steering) (-> s4-0 3 vector 1 y)) ) - ) - ) - ) - (set! (-> s4-0 3 vector 1 y) (fmin 1.0 (-> s4-0 3 vector 1 y))) - (set! (-> s4-0 2 vector 0 x) (+ (* (-> s4-0 2 vector 0 x) (- 1.0 (-> s4-0 3 vector 1 y))) - (* (-> obj ai-controls steering) (-> s4-0 3 vector 1 y)) - ) - ) - (set! (-> s4-0 2 vector 0 y) (-> obj ai-controls throttle)) - (set! (-> s4-0 2 vector 0 z) (-> obj ai-controls brake)) - (vehicle-method-95 obj (the-as vector (-> s4-0 2))) - ) - (when (logtest? (-> s5-0 path-sample flags) 2) - (start-jump obj) - 0 - ) + ) + (set! (-> s4-0 2 vector 0 y) (-> obj ai-controls throttle)) + (set! (-> s4-0 2 vector 0 z) (-> obj ai-controls brake)) + (vehicle-method-95 obj (the-as vector (-> s4-0 2))) ) - (vehicle-method-121 obj) - (when (< (-> obj rbody state position y) -409600.0) - (format - #t - "vehicle-racer::physics-post: pid ~d fell to death from path-id ~d~%" - (-> obj pid) - (-> obj race path record-id) - ) - (go (method-of-object obj explode)) + (when (logtest? (-> s5-0 path-sample flags) 2) + (start-jump obj) + 0 ) - 0 - (none) ) + (vehicle-method-121 obj) + (when (< (-> obj rbody state position y) -409600.0) + (format + #t + "vehicle-racer::physics-post: pid ~d fell to death from path-id ~d~%" + (-> obj pid) + (-> obj race path record-id) + ) + (go (method-of-object obj explode)) + ) + 0 + (none) ) ) diff --git a/test/decompiler/reference/jak2/levels/common/warp-gate_REF.gc b/test/decompiler/reference/jak2/levels/common/warp-gate_REF.gc index 1ca3278826..7dc48506a1 100644 --- a/test/decompiler/reference/jak2/levels/common/warp-gate_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/warp-gate_REF.gc @@ -636,12 +636,12 @@ ) (cond ((-> self continue) - (seek! (-> self anim-speed) 1.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self anim-speed) 1.0 (* 2.0 (seconds-per-frame))) (setup-masks (-> self draw) 2 0) ) (else (setup-masks (-> self draw) 0 2) - (seek! (-> self anim-speed) 0.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self anim-speed) 0.0 (* 2.0 (seconds-per-frame))) ) ) (update! (-> self sound)) @@ -981,7 +981,7 @@ This commonly includes things such as: (when (and (or (< (vector-dot gp-1 (-> self control transv)) 0.0) (-> self control unknown-spool-anim00)) (>= (- (current-time) (-> self state-time)) (seconds 0.05)) ) - (vector-seek! (-> self draw color-mult) (new 'static 'vector) (* 2.0 (-> self clock seconds-per-frame))) + (vector-seek! (-> self draw color-mult) (new 'static 'vector) (* 2.0 (seconds-per-frame))) (set! (-> self control transv x) (* 0.95 (-> self control transv x))) (set! (-> self control transv z) (* 0.95 (-> self control transv z))) (when (not (-> self control unknown-spool-anim00)) diff --git a/test/decompiler/reference/jak2/levels/consite/consite-scenes_REF.gc b/test/decompiler/reference/jak2/levels/consite/consite-scenes_REF.gc index d73ee9fd81..9316464b8a 100644 --- a/test/decompiler/reference/jak2/levels/consite/consite-scenes_REF.gc +++ b/test/decompiler/reference/jak2/levels/consite/consite-scenes_REF.gc @@ -651,14 +651,7 @@ (set! (-> *part-id-table* 621 init-specs 4 initial-valuef) f28-0) ) (vector-normalize! s5-1 1.0) - (let ((t9-4 sp-launch-particles-var) - (a0-8 *sp-particle-system-2d*) - (a1-9 (-> *part-id-table* 622)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-2 quad)) - (t9-4 a0-8 a1-9 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 622) s3-2) ) (let ((s4-1 (new 'stack-no-clear 'matrix)) (f26-0 (* 0.000020345053 f30-0)) @@ -669,14 +662,7 @@ (set! (-> s4-1 trans quad) (-> gp-0 quad)) (set! (-> *part-id-table* 623 init-specs 3 initial-valuef) (* f26-0 f30-1)) (set! (-> *part-id-table* 623 init-specs 5 initial-valuef) (* f26-0 f28-1)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 623) - s4-1 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 623) s4-1 :origin-is-matrix #t) (set! (-> *part-id-table* 623 init-specs 3 initial-valuef) f30-1) (set! (-> *part-id-table* 623 init-specs 5 initial-valuef) f28-1) ) diff --git a/test/decompiler/reference/jak2/levels/dig/dig-digger_REF.gc b/test/decompiler/reference/jak2/levels/dig/dig-digger_REF.gc index df6bf85466..7b3dae377a 100644 --- a/test/decompiler/reference/jak2/levels/dig/dig-digger_REF.gc +++ b/test/decompiler/reference/jak2/levels/dig/dig-digger_REF.gc @@ -300,30 +300,9 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 4950)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 4951)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-4 (-> *part-id-table* 4952)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-3 a0-4 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4950) gp-0) + (launch-particles (-> *part-id-table* 4951) gp-0) + (launch-particles (-> *part-id-table* 4952) gp-0) ) ) (none) diff --git a/test/decompiler/reference/jak2/levels/dig/dig-obs_REF.gc b/test/decompiler/reference/jak2/levels/dig/dig-obs_REF.gc index 4246373540..3f49a01d47 100644 --- a/test/decompiler/reference/jak2/levels/dig/dig-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/dig/dig-obs_REF.gc @@ -680,7 +680,7 @@ ) (until (>= (-> self root trans y) f30-0) (set! (-> self root trans y) - (seek-with-smooth (-> self root trans y) f30-0 (* 4096.0 (-> self clock seconds-per-frame)) 0.25 40.96) + (seek-with-smooth (-> self root trans y) f30-0 (* 4096.0 (seconds-per-frame)) 0.25 40.96) ) (when (>= (current-time) s5-1) (activate! @@ -883,7 +883,7 @@ This commonly includes things such as: :code (behavior () (sound-play "dig-button") (until (= (-> self root trans y) (-> self down-y)) - (seek! (-> self root trans y) (-> self down-y) (* 16384.0 (-> self clock seconds-per-frame))) + (seek! (-> self root trans y) (-> self down-y) (* 16384.0 (seconds-per-frame))) (logior! (-> self skel status) (joint-control-status sync-math)) (transform-post) (logclear! (-> self skel status) (joint-control-status sync-math)) diff --git a/test/decompiler/reference/jak2/levels/dig/dig-part_REF.gc b/test/decompiler/reference/jak2/levels/dig/dig-part_REF.gc index a9ab2ed6da..44fc7ab7dc 100644 --- a/test/decompiler/reference/jak2/levels/dig/dig-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/dig/dig-part_REF.gc @@ -1002,22 +1002,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 vector 0 x) origin-y (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 5043)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 5030)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 5043) gp-0) + (launch-particles (-> *part-id-table* 5030) gp-0) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/dig/dig1-obs_REF.gc b/test/decompiler/reference/jak2/levels/dig/dig1-obs_REF.gc index bbc8d05b21..d81311e337 100644 --- a/test/decompiler/reference/jak2/levels/dig/dig1-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/dig/dig1-obs_REF.gc @@ -739,37 +739,35 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod rigid-body-object-method-37 dig-bomb-crate-cylinder ((obj dig-bomb-crate-cylinder)) - (with-pp - (let ((a1-0 (new 'stack-no-clear 'collide-query))) - (set! (-> a1-0 start-pos quad) (-> obj rbody state position quad)) - (vector-float*! (-> a1-0 move-dist) (-> obj rbody state lin-velocity) (-> pp clock seconds-per-frame)) - (let ((v1-3 a1-0)) - (set! (-> v1-3 radius) (+ 4096.0 (-> obj root root-prim local-sphere w))) - (set! (-> v1-3 collide-with) (-> obj root root-prim prim-core collide-with)) - (set! (-> v1-3 ignore-process0) obj) - (set! (-> v1-3 ignore-process1) #f) - (set! (-> v1-3 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (set! (-> v1-3 action-mask) (collide-action solid)) - ) - (fill-using-line-sphere *collide-cache* a1-0) + (let ((a1-0 (new 'stack-no-clear 'collide-query))) + (set! (-> a1-0 start-pos quad) (-> obj rbody state position quad)) + (vector-float*! (-> a1-0 move-dist) (-> obj rbody state lin-velocity) (seconds-per-frame)) + (let ((v1-3 a1-0)) + (set! (-> v1-3 radius) (+ 4096.0 (-> obj root root-prim local-sphere w))) + (set! (-> v1-3 collide-with) (-> obj root root-prim prim-core collide-with)) + (set! (-> v1-3 ignore-process0) obj) + (set! (-> v1-3 ignore-process1) #f) + (set! (-> v1-3 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (set! (-> v1-3 action-mask) (collide-action solid)) ) - (if *display-collide-cache* - (debug-draw *collide-cache*) - ) - (rigid-body-object-method-30 obj) - (set! (-> obj root transv quad) (-> obj rbody state lin-velocity quad)) - (quaternion-copy! (-> obj root quat) (-> obj rbody state rotation)) - (rigid-body-method-24 (-> obj rbody state)) - (let ((v1-19 (-> obj rbody)) - (a1-2 (-> obj root trans)) - ) - (rigid-body-method-23 (-> v1-19 state) a1-2) - ) - (set! (-> obj node-list data 0 bone transform trans quad) (-> obj root trans quad)) - (transform-post) - 0 - (none) + (fill-using-line-sphere *collide-cache* a1-0) ) + (if *display-collide-cache* + (debug-draw *collide-cache*) + ) + (rigid-body-object-method-30 obj) + (set! (-> obj root transv quad) (-> obj rbody state lin-velocity quad)) + (quaternion-copy! (-> obj root quat) (-> obj rbody state rotation)) + (rigid-body-method-24 (-> obj rbody state)) + (let ((v1-19 (-> obj rbody)) + (a1-2 (-> obj root trans)) + ) + (rigid-body-method-23 (-> v1-19 state) a1-2) + ) + (set! (-> obj node-list data 0 bone transform trans quad) (-> obj root trans quad)) + (transform-post) + 0 + (none) ) ;; definition for method 32 of type dig-bomb-crate-cylinder diff --git a/test/decompiler/reference/jak2/levels/dig/dig3-obs_REF.gc b/test/decompiler/reference/jak2/levels/dig/dig3-obs_REF.gc index cd8bdf9898..be9c6ddc9f 100644 --- a/test/decompiler/reference/jak2/levels/dig/dig3-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/dig/dig3-obs_REF.gc @@ -322,7 +322,7 @@ ) (until (>= (- (current-time) gp-6) (seconds 1)) (set! (-> self rot-angle) - (the float (sar (shl (the int (+ (-> self rot-angle) (* f30-1 (-> self clock seconds-per-frame)))) 48) 48)) + (the float (sar (shl (the int (+ (-> self rot-angle) (* f30-1 (seconds-per-frame)))) 48) 48)) ) (suspend) ) @@ -511,11 +511,9 @@ This commonly includes things such as: ;; definition for function spikey-sphere-update-velocity ;; WARN: Return type mismatch int vs none. (defun spikey-sphere-update-velocity ((arg0 dig-spikey-sphere)) - (with-pp - (set! (-> arg0 root transv y) (- (-> arg0 root transv y) (* 327680.0 (-> pp clock seconds-per-frame)))) - 0 - (none) - ) + (set! (-> arg0 root transv y) (- (-> arg0 root transv y) (* 327680.0 (seconds-per-frame)))) + 0 + (none) ) ;; definition for function spikey-sphere-reaction @@ -672,39 +670,37 @@ This commonly includes things such as: ;; WARN: Return type mismatch int vs none. (defmethod init-proj-settings! dig-spikey-sphere ((obj dig-spikey-sphere)) "Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc" - (with-pp - (set! (-> obj attack-mode) 'eco-dark) - (initialize-skeleton - obj - (the-as skeleton-group (art-group-get-by-name *level* "skel-dig-spikey-sphere" (the-as (pointer uint32) #f))) - (the-as pair 0) - ) - (let ((t9-2 (method-of-type projectile-bounce init-proj-settings!))) - (t9-2 obj) - ) - (set! (-> obj max-speed) 163840.0) - (set! (-> obj timeout) (seconds 8)) - (logclear! (-> obj mask) (process-mask actor-pause)) - (set! (-> obj notify-handle) (the-as handle #f)) - (set! (-> obj update-velocity) spikey-sphere-update-velocity) - (set! (-> obj max-hits) #xffff) - (set! (-> obj move) spikey-sphere-move) - (set-vector! (-> obj root quat) 0.0 0.0 0.0 1.0) - (set! (-> obj pad-i1hb23h1b) (+ -204800.0 (-> obj root trans y))) - (let ((v1-16 (-> obj starting-dir))) - (quaternion-axis-angle! - (-> obj tumble-quat) - (-> v1-16 z) - (-> v1-16 y) - (-> v1-16 x) - (* -65536.0 (-> pp clock seconds-per-frame)) - ) - ) - (set! (-> obj draw light-index) (the-as uint 4)) - (sound-play "spikey-roll") - 0 - (none) + (set! (-> obj attack-mode) 'eco-dark) + (initialize-skeleton + obj + (the-as skeleton-group (art-group-get-by-name *level* "skel-dig-spikey-sphere" (the-as (pointer uint32) #f))) + (the-as pair 0) ) + (let ((t9-2 (method-of-type projectile-bounce init-proj-settings!))) + (t9-2 obj) + ) + (set! (-> obj max-speed) 163840.0) + (set! (-> obj timeout) (seconds 8)) + (logclear! (-> obj mask) (process-mask actor-pause)) + (set! (-> obj notify-handle) (the-as handle #f)) + (set! (-> obj update-velocity) spikey-sphere-update-velocity) + (set! (-> obj max-hits) #xffff) + (set! (-> obj move) spikey-sphere-move) + (set-vector! (-> obj root quat) 0.0 0.0 0.0 1.0) + (set! (-> obj pad-i1hb23h1b) (+ -204800.0 (-> obj root trans y))) + (let ((v1-16 (-> obj starting-dir))) + (quaternion-axis-angle! + (-> obj tumble-quat) + (-> v1-16 z) + (-> v1-16 y) + (-> v1-16 x) + (* -65536.0 (seconds-per-frame)) + ) + ) + (set! (-> obj draw light-index) (the-as uint 4)) + (sound-play "spikey-roll") + 0 + (none) ) ;; definition of type dig-spikey-sphere-door @@ -1887,13 +1883,8 @@ This commonly includes things such as: :code (behavior () (sound-play "stomp-block") (while (< (-> self desty) (-> self root trans y)) - (set! (-> self root trans y) (seek-with-smooth - (-> self root trans y) - (-> self desty) - (* 24576.0 (-> self clock seconds-per-frame)) - 0.25 - 1.0 - ) + (set! (-> self root trans y) + (seek-with-smooth (-> self root trans y) (-> self desty) (* 24576.0 (seconds-per-frame)) 0.25 1.0) ) (suspend) ) @@ -1930,49 +1921,47 @@ This commonly includes things such as: ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod rigid-body-object-method-37 dig-stomp-block ((obj dig-stomp-block)) - (with-pp - (let ((a1-0 (new 'stack-no-clear 'collide-query))) - (set! (-> a1-0 start-pos quad) (-> obj rbody state position quad)) - (vector-float*! (-> a1-0 move-dist) (-> obj rbody state lin-velocity) (-> pp clock seconds-per-frame)) - (let ((v1-3 a1-0)) - (set! (-> v1-3 radius) (+ 4096.0 (-> obj root root-prim local-sphere w))) - (set! (-> v1-3 collide-with) (-> obj root root-prim prim-core collide-with)) - (set! (-> v1-3 ignore-process0) obj) - (set! (-> v1-3 ignore-process1) #f) - (set! (-> v1-3 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (set! (-> v1-3 action-mask) (collide-action solid)) - ) - (fill-using-line-sphere *collide-cache* a1-0) + (let ((a1-0 (new 'stack-no-clear 'collide-query))) + (set! (-> a1-0 start-pos quad) (-> obj rbody state position quad)) + (vector-float*! (-> a1-0 move-dist) (-> obj rbody state lin-velocity) (seconds-per-frame)) + (let ((v1-3 a1-0)) + (set! (-> v1-3 radius) (+ 4096.0 (-> obj root root-prim local-sphere w))) + (set! (-> v1-3 collide-with) (-> obj root root-prim prim-core collide-with)) + (set! (-> v1-3 ignore-process0) obj) + (set! (-> v1-3 ignore-process1) #f) + (set! (-> v1-3 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (set! (-> v1-3 action-mask) (collide-action solid)) ) - (let* ((a0-15 *collide-cache*) - (v1-6 (the-as object (-> a0-15 tris))) - ) - (countdown (a0-16 (-> a0-15 num-tris)) - (when (= (-> (the-as collide-cache-tri v1-6) pat event) (pat-event endlessfall)) - (+! (-> (the-as collide-cache-tri v1-6) vertex 0 y) 409600.0) - (+! (-> (the-as collide-cache-tri v1-6) vertex 1 y) 409600.0) - (+! (-> (the-as collide-cache-tri v1-6) vertex 2 y) 409600.0) - ) - (set! v1-6 (-> (the-as (inline-array collide-cache-tri) v1-6) 1)) - ) - ) - (if *display-collide-cache* - (debug-draw *collide-cache*) - ) - (rigid-body-object-method-30 obj) - (set! (-> obj root transv quad) (-> obj rbody state lin-velocity quad)) - (quaternion-copy! (-> obj root quat) (-> obj rbody state rotation)) - (rigid-body-method-24 (-> obj rbody state)) - (let ((v1-22 (-> obj rbody)) - (a1-8 (-> obj root trans)) - ) - (rigid-body-method-23 (-> v1-22 state) a1-8) - ) - (set! (-> obj node-list data 0 bone transform trans quad) (-> obj root trans quad)) - (transform-post) - 0 - (none) + (fill-using-line-sphere *collide-cache* a1-0) ) + (let* ((a0-15 *collide-cache*) + (v1-6 (the-as object (-> a0-15 tris))) + ) + (countdown (a0-16 (-> a0-15 num-tris)) + (when (= (-> (the-as collide-cache-tri v1-6) pat event) (pat-event endlessfall)) + (+! (-> (the-as collide-cache-tri v1-6) vertex 0 y) 409600.0) + (+! (-> (the-as collide-cache-tri v1-6) vertex 1 y) 409600.0) + (+! (-> (the-as collide-cache-tri v1-6) vertex 2 y) 409600.0) + ) + (set! v1-6 (-> (the-as (inline-array collide-cache-tri) v1-6) 1)) + ) + ) + (if *display-collide-cache* + (debug-draw *collide-cache*) + ) + (rigid-body-object-method-30 obj) + (set! (-> obj root transv quad) (-> obj rbody state lin-velocity quad)) + (quaternion-copy! (-> obj root quat) (-> obj rbody state rotation)) + (rigid-body-method-24 (-> obj rbody state)) + (let ((v1-22 (-> obj rbody)) + (a1-8 (-> obj root trans)) + ) + (rigid-body-method-23 (-> v1-22 state) a1-8) + ) + (set! (-> obj node-list data 0 bone transform trans quad) (-> obj root trans quad)) + (transform-post) + 0 + (none) ) ;; definition for method 32 of type dig-stomp-block diff --git a/test/decompiler/reference/jak2/levels/drill/drill-mech-master_REF.gc b/test/decompiler/reference/jak2/levels/drill/drill-mech-master_REF.gc index ed17750e91..d106944bda 100644 --- a/test/decompiler/reference/jak2/levels/drill/drill-mech-master_REF.gc +++ b/test/decompiler/reference/jak2/levels/drill/drill-mech-master_REF.gc @@ -310,7 +310,7 @@ *screen-filter* (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) - (* 5.0 (-> self clock seconds-per-frame)) + (* 5.0 (seconds-per-frame)) (bucket-id tex-all-map) ) ) diff --git a/test/decompiler/reference/jak2/levels/drill/drill-obs_REF.gc b/test/decompiler/reference/jak2/levels/drill/drill-obs_REF.gc index 7ddb4978c6..6c2049b61f 100644 --- a/test/decompiler/reference/jak2/levels/drill/drill-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/drill/drill-obs_REF.gc @@ -1696,23 +1696,10 @@ This commonly includes things such as: ) (set! (-> *part-id-table* 1993 init-specs 4 initial-valuef) (vector-length (-> s5-1 move-dist))) (draw-beam (-> *part-id-table* 1993) (-> s5-1 start-pos) (-> s5-1 move-dist) #f #t) - (let ((t9-9 sp-launch-particles-var) - (a0-17 *sp-particle-system-2d*) - (a1-7 (-> *part-id-table* 1994)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s5-1 start-pos quad)) - (t9-9 a0-17 a1-7 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-10 sp-launch-particles-var) - (a0-18 *sp-particle-system-2d*) - (a1-8 (-> *part-id-table* 1995)) - (a2-4 *launch-matrix*) - ) - (set! (-> a2-4 trans quad) - (-> (vector+! (new 'stack-no-clear 'vector) (-> s5-1 start-pos) (-> s5-1 move-dist)) quad) - ) - (t9-10 a0-18 a1-8 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) + (launch-particles (-> *part-id-table* 1994) (-> s5-1 start-pos)) + (launch-particles + (-> *part-id-table* 1995) + (vector+! (new 'stack-no-clear 'vector) (-> s5-1 start-pos) (-> s5-1 move-dist)) ) (let ((s4-4 (new 'stack-no-clear 'projectile-init-by-other-params))) (set! (-> s4-4 ent) (-> self entity)) diff --git a/test/decompiler/reference/jak2/levels/drill/drill-part2_REF.gc b/test/decompiler/reference/jak2/levels/drill/drill-part2_REF.gc index 475c6b51c3..358d8bc69f 100644 --- a/test/decompiler/reference/jak2/levels/drill/drill-part2_REF.gc +++ b/test/decompiler/reference/jak2/levels/drill/drill-part2_REF.gc @@ -206,30 +206,9 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 vector 0 x) -696320.0 (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 1908)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-3 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 1909)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-4 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 1910)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-3 a0-5 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1908) gp-0) + (launch-particles (-> *part-id-table* 1909) gp-0) + (launch-particles (-> *part-id-table* 1910) gp-0) ) ) (none) diff --git a/test/decompiler/reference/jak2/levels/drill/ginsu_REF.gc b/test/decompiler/reference/jak2/levels/drill/ginsu_REF.gc index 5781c3fc49..068aba5046 100644 --- a/test/decompiler/reference/jak2/levels/drill/ginsu_REF.gc +++ b/test/decompiler/reference/jak2/levels/drill/ginsu_REF.gc @@ -550,40 +550,38 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod nav-enemy-method-142 ginsu ((obj ginsu) (arg0 nav-control)) - (with-pp - (let ((s3-0 (new 'stack-no-clear 'vector))) - (let ((a0-2 (handle->process (-> obj focus handle)))) - (cond - (a0-2 - (vector-! s3-0 (get-trans (the-as process-focusable a0-2) 0) (-> obj root trans)) - ) - (else - (let ((a0-7 (-> arg0 state))) - (set! (-> s3-0 quad) (-> a0-7 heading quad)) - ) - ) + (let ((s3-0 (new 'stack-no-clear 'vector))) + (let ((a0-2 (handle->process (-> obj focus handle)))) + (cond + (a0-2 + (vector-! s3-0 (get-trans (the-as process-focusable a0-2) 0) (-> obj root trans)) ) - ) - (set! (-> s3-0 y) 0.0) - (vector-normalize! s3-0 1.0) - (let ((s5-3 (new 'stack-no-clear 'quaternion)) - (s4-0 (-> obj root quat)) + (else + (let ((a0-7 (-> arg0 state))) + (set! (-> s3-0 quad) (-> a0-7 heading quad)) ) - (quaternion-set! s5-3 0.0 (sqrtf (* 0.5 (- 1.0 (-> s3-0 z)))) 0.0 (sqrtf (* 0.5 (+ 1.0 (-> s3-0 z))))) - (if (< (-> s3-0 x) 0.0) - (set! (-> s5-3 y) (- (-> s5-3 y))) - ) - (quaternion-pseudo-seek - s4-0 - s4-0 - s5-3 - (* (fmax 0.5 (* 0.00024414062 (-> obj nav state speed))) (-> pp clock seconds-per-frame)) ) ) ) - 0 - (none) + (set! (-> s3-0 y) 0.0) + (vector-normalize! s3-0 1.0) + (let ((s5-3 (new 'stack-no-clear 'quaternion)) + (s4-0 (-> obj root quat)) + ) + (quaternion-set! s5-3 0.0 (sqrtf (* 0.5 (- 1.0 (-> s3-0 z)))) 0.0 (sqrtf (* 0.5 (+ 1.0 (-> s3-0 z))))) + (if (< (-> s3-0 x) 0.0) + (set! (-> s5-3 y) (- (-> s5-3 y))) + ) + (quaternion-pseudo-seek + s4-0 + s4-0 + s5-3 + (* (fmax 0.5 (* 0.00024414062 (-> obj nav state speed))) (seconds-per-frame)) + ) + ) ) + 0 + (none) ) ;; definition for method 74 of type ginsu diff --git a/test/decompiler/reference/jak2/levels/forest/fish_REF.gc b/test/decompiler/reference/jak2/levels/forest/fish_REF.gc index cbbc26d5ab..c3bf8a3f95 100644 --- a/test/decompiler/reference/jak2/levels/forest/fish_REF.gc +++ b/test/decompiler/reference/jak2/levels/forest/fish_REF.gc @@ -449,7 +449,7 @@ (set! (-> s0-0 y) 0.0) (let ((a0-44 s3-0)) (let ((v1-117 s3-0)) - (let ((a1-52 (-> self clock seconds-per-frame))) + (let ((a1-52 (seconds-per-frame))) (.mov vf7 a1-52) ) (.lvf vf5 (&-> s0-0 quad)) @@ -465,7 +465,7 @@ (let ((a1-54 s2-0)) (let ((v1-120 s2-0)) (let ((a0-46 s3-0)) - (let ((a2-10 (-> self clock seconds-per-frame))) + (let ((a2-10 (seconds-per-frame))) (.mov vf7 a2-10) ) (.lvf vf5 (&-> a0-46 quad)) diff --git a/test/decompiler/reference/jak2/levels/forest/forest-obs_REF.gc b/test/decompiler/reference/jak2/levels/forest/forest-obs_REF.gc index 58d7ec2927..041a2f9f15 100644 --- a/test/decompiler/reference/jak2/levels/forest/forest-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/forest/forest-obs_REF.gc @@ -137,7 +137,7 @@ This commonly includes things such as: (let ((v1-3 (vector-! (new 'stack-no-clear 'vector) (-> self desired-pos) (-> self root trans)))) (let ((a0-3 (-> self root transv))) (if (not (-> self falling?)) - (vector+float*! a0-3 a0-3 v1-3 (* 3.0 (-> self clock seconds-per-frame))) + (vector+float*! a0-3 a0-3 v1-3 (* 3.0 (seconds-per-frame))) ) ) (vector-float*! (-> self root transv) (-> self root transv) 0.975) @@ -164,7 +164,7 @@ This commonly includes things such as: (fill-cache-integrate-and-collide gp-4 (-> gp-4 transv) a2-7 (meters 0)) ) (when (logtest? (-> gp-4 status) (collide-status touch-surface)) - (let ((f0-9 (fmax 0.0 (+ 1.0 (* -11.999999 (-> self clock seconds-per-frame)))))) + (let ((f0-9 (fmax 0.0 (+ 1.0 (* -11.999999 (seconds-per-frame)))))) (vector-float*! (-> gp-4 transv) (-> gp-4 transv) f0-9) ) ) diff --git a/test/decompiler/reference/jak2/levels/forest/forest-part_REF.gc b/test/decompiler/reference/jak2/levels/forest/forest-part_REF.gc index 913b363b3a..329c373feb 100644 --- a/test/decompiler/reference/jak2/levels/forest/forest-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/forest/forest-part_REF.gc @@ -1035,30 +1035,9 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 2142)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 2143)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-3d*) - (a1-4 (-> *part-id-table* 2144)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-0 quad)) - (t9-3 a0-5 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 2142) s3-0) + (launch-particles (-> *part-id-table* 2143) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2144) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/test/decompiler/reference/jak2/levels/forest/predator_REF.gc b/test/decompiler/reference/jak2/levels/forest/predator_REF.gc index ad2e7d8061..446ce939ec 100644 --- a/test/decompiler/reference/jak2/levels/forest/predator_REF.gc +++ b/test/decompiler/reference/jak2/levels/forest/predator_REF.gc @@ -875,60 +875,58 @@ ;; definition for method 183 of type predator ;; WARN: Return type mismatch int vs none. (defmethod predator-method-183 predator ((obj predator)) - (with-pp - (cond - ((< (-> obj hit-points) 2) - (when (!= (-> obj dest-fade) 128.0) - (sound-play "pred-uncloak") - (stop! (-> obj sound)) - (set! (-> obj sound) (the-as ambient-sound 0)) - 0 - ) - (set! (-> obj dest-fade) 128.0) + (cond + ((< (-> obj hit-points) 2) + (when (!= (-> obj dest-fade) 128.0) + (sound-play "pred-uncloak") + (stop! (-> obj sound)) + (set! (-> obj sound) (the-as ambient-sound 0)) + 0 ) - (else - (set! (-> obj dest-fade) 0.0) - ) + (set! (-> obj dest-fade) 128.0) + ) + (else + (set! (-> obj dest-fade) 0.0) ) - (seek! (-> obj fade) (-> obj dest-fade) (* 60.0 (-> pp clock seconds-per-frame))) - (set! (-> obj draw force-fade) (the-as uint (the int (-> obj fade)))) - (cond - ((zero? (-> obj draw force-fade)) - (setup-masks (-> obj draw) 8 0) - (setup-masks (-> obj draw) 0 4) - (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) - ) - ((= (-> obj draw force-fade) 128) - (setup-masks (-> obj draw) 0 8) - (setup-masks (-> obj draw) 4 0) - (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) - ) - (else - (setup-masks (-> obj draw) 8 0) - (setup-masks (-> obj draw) 4 0) - (logior! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) - ) - ) - (if (< 245760.0 (vector-vector-distance (-> obj root trans) (camera-pos))) - (setup-masks (-> obj draw) 0 8) - ) - (when (< (current-time) (the-as time-frame (-> obj shock-effect-end))) - (when (>= (- (current-time) (-> obj shock-effect-time)) (seconds 0.04)) - (set! (-> obj shock-effect-time) (current-time)) - (process-drawable-shock-skel-effect - obj - (-> *lightning-spec-id-table* 18) - lightning-probe-callback - (-> *part-id-table* 166) - 2048.0 - -1 - -1 - ) - ) - ) - 0 - (none) ) + (seek! (-> obj fade) (-> obj dest-fade) (* 60.0 (seconds-per-frame))) + (set! (-> obj draw force-fade) (the-as uint (the int (-> obj fade)))) + (cond + ((zero? (-> obj draw force-fade)) + (setup-masks (-> obj draw) 8 0) + (setup-masks (-> obj draw) 0 4) + (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) + ) + ((= (-> obj draw force-fade) 128) + (setup-masks (-> obj draw) 0 8) + (setup-masks (-> obj draw) 4 0) + (logclear! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) + ) + (else + (setup-masks (-> obj draw) 8 0) + (setup-masks (-> obj draw) 4 0) + (logior! (-> obj draw status) (draw-control-status force-fade warp-cross-fade)) + ) + ) + (if (< 245760.0 (vector-vector-distance (-> obj root trans) (camera-pos))) + (setup-masks (-> obj draw) 0 8) + ) + (when (< (current-time) (the-as time-frame (-> obj shock-effect-end))) + (when (>= (- (current-time) (-> obj shock-effect-time)) (seconds 0.04)) + (set! (-> obj shock-effect-time) (current-time)) + (process-drawable-shock-skel-effect + obj + (-> *lightning-spec-id-table* 18) + lightning-probe-callback + (-> *part-id-table* 166) + 2048.0 + -1 + -1 + ) + ) + ) + 0 + (none) ) ;; failed to figure out what this is: diff --git a/test/decompiler/reference/jak2/levels/forest/wren_REF.gc b/test/decompiler/reference/jak2/levels/forest/wren_REF.gc index d9a3af229b..100763ff1d 100644 --- a/test/decompiler/reference/jak2/levels/forest/wren_REF.gc +++ b/test/decompiler/reference/jak2/levels/forest/wren_REF.gc @@ -87,11 +87,11 @@ (vf3 :class vf) ) (init-vf0-vector) - (seek! (-> self bob-level) (-> self bob-level-seek) (* 12288.0 (-> self clock seconds-per-frame))) + (seek! (-> self bob-level) (-> self bob-level-seek) (* 12288.0 (seconds-per-frame))) (let ((gp-0 (-> self fly-curve (-> self fly-index)))) (get-point-at-percent-along-path! gp-0 (-> self root trans) (-> self path-u) 'interp) - (seek! (-> self path-u) 1.0 (* (-> self path-du) (-> self path-du-mod) (-> self clock seconds-per-frame))) - (seek! (-> self path-du) 0.2 (* 0.1 (-> self clock seconds-per-frame))) + (seek! (-> self path-u) 1.0 (* (-> self path-du) (-> self path-du-mod) (seconds-per-frame))) + (seek! (-> self path-du) 0.2 (* 0.1 (seconds-per-frame))) (let* ((f30-0 (-> self path-u)) (f0-16 (fmin 1.0 (+ 0.125 f30-0))) (s4-0 (displacement-between-points-at-percent-normalized! gp-0 (new 'stack-no-clear 'vector) f0-16)) @@ -120,8 +120,8 @@ ) ) (if (and (-> self next-state) (= (-> self next-state name) 'fly)) - (seek! (-> self bank-angle) f1-8 (* f0-19 (-> self clock seconds-per-frame))) - (seek! (-> self bank-angle) 0.0 (* 8192.0 (-> self clock seconds-per-frame))) + (seek! (-> self bank-angle) f1-8 (* f0-19 (seconds-per-frame))) + (seek! (-> self bank-angle) 0.0 (* 8192.0 (seconds-per-frame))) ) ) ) @@ -194,7 +194,7 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]" (vector-normalize! gp-1 12288.0) (let ((v1-1 (new 'stack-no-clear 'vector))) (.lvf vf1 (&-> gp-1 quad)) - (let ((f0-0 (-> self clock seconds-per-frame))) + (let ((f0-0 (seconds-per-frame))) (.mov at-0 f0-0) ) (.mov vf2 at-0) @@ -347,10 +347,10 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]" ) (until #f (let ((f0-11 (fmax -0.2 (fmin 0.5 (-> self fly-y-rate))))) - (seek! (-> self fly-interp) (lerp-scale 0.0 1.0 f0-11 -0.2 0.5) (-> self clock seconds-per-frame)) + (seek! (-> self fly-interp) (lerp-scale 0.0 1.0 f0-11 -0.2 0.5) (seconds-per-frame)) ) (let ((f30-1 (-> self fly-interp))) - (seek! (-> self path-du-mod) (+ 0.9 (* 0.2 f30-1)) (* 0.5 (-> self clock seconds-per-frame))) + (seek! (-> self path-du-mod) (+ 0.9 (* 0.2 f30-1)) (* 0.5 (seconds-per-frame))) (set! (-> self bob-level-seek) (+ -12288.0 (* 24576.0 f30-1))) (let ((v1-59 (-> self skel root-channel 0))) (let ((f0-23 (- 1.0 f30-1))) @@ -397,7 +397,7 @@ If so, it transitions from [[wren::peck]] to [[wren::hunt]]" (none) ) :post (behavior () - (seek! (-> self path-du-mod) 0.0 (* 0.5 (-> self clock seconds-per-frame))) + (seek! (-> self path-du-mod) 0.0 (* 0.5 (seconds-per-frame))) (fly-post) (none) ) diff --git a/test/decompiler/reference/jak2/levels/fortress/dump/fordumpb-obs_REF.gc b/test/decompiler/reference/jak2/levels/fortress/dump/fordumpb-obs_REF.gc index ed62bcb8e8..5a4a4b226a 100644 --- a/test/decompiler/reference/jak2/levels/fortress/dump/fordumpb-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/dump/fordumpb-obs_REF.gc @@ -213,7 +213,7 @@ This commonly includes things such as: (none) ) :post (behavior () - (+! (-> self path-pos) (* (-> self path-speed) (-> self clock seconds-per-frame))) + (+! (-> self path-pos) (* (-> self path-speed) (seconds-per-frame))) (let* ((f0-2 (-> self path-pos)) (f30-0 (if (< 0.5 f0-2) (- 1.0 f0-2) diff --git a/test/decompiler/reference/jak2/levels/fortress/dump/fordumpc-obs_REF.gc b/test/decompiler/reference/jak2/levels/fortress/dump/fordumpc-obs_REF.gc index 68af7f853f..c7bf4cf954 100644 --- a/test/decompiler/reference/jak2/levels/fortress/dump/fordumpc-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/dump/fordumpc-obs_REF.gc @@ -943,7 +943,7 @@ This commonly includes things such as: *screen-filter* (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) - (* 0.3 (-> self clock seconds-per-frame)) + (* 0.3 (seconds-per-frame)) (bucket-id tex-all-map) ) ) diff --git a/test/decompiler/reference/jak2/levels/fortress/dump/fort-robotank-turret_REF.gc b/test/decompiler/reference/jak2/levels/fortress/dump/fort-robotank-turret_REF.gc index d89f91c446..ca0953307a 100644 --- a/test/decompiler/reference/jak2/levels/fortress/dump/fort-robotank-turret_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/dump/fort-robotank-turret_REF.gc @@ -306,7 +306,7 @@ :code (behavior () (let ((gp-0 (current-time))) (until (>= (- (current-time) gp-0) (seconds 1)) - (seek! (-> self transition) 0.0 (-> self clock seconds-per-frame)) + (seek! (-> self transition) 0.0 (seconds-per-frame)) (set-roboscreen-alpha! (-> self transition)) (suspend) ) @@ -480,7 +480,7 @@ ) ) 0 - (vector-seek! (-> self sight-jmod twist-max) (-> self sight-scale) (* 6.0 (-> self clock seconds-per-frame))) + (vector-seek! (-> self sight-jmod twist-max) (-> self sight-scale) (* 6.0 (seconds-per-frame))) (ja-post) (none) ) @@ -1174,7 +1174,7 @@ ) (when (logtest? (-> self flags) (robotank-turret-flags rotflags-7)) (let ((f0-6 (lerp-scale 1.0 0.2 f30-0 8192.0 327680.0))) - (seek! (-> self fov-mult) f0-6 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self fov-mult) f0-6 (* 2.0 (seconds-per-frame))) ) (set-setting! 'fov 'rel (-> self fov-mult) 0) (send-event (handle->process (-> self screen)) 'set-fov-mult (-> self fov-mult)) @@ -1198,7 +1198,7 @@ ) ) ) - (seek! (-> self gun-elev-cam) f0-29 (* f1-12 (-> self clock seconds-per-frame))) + (seek! (-> self gun-elev-cam) f0-29 (* f1-12 (seconds-per-frame))) ) (let* ((f28-2 (quaternion-y-angle (-> self rotate-quat))) (f0-33 (quaternion-y-angle (-> self tank-quat))) @@ -1213,7 +1213,7 @@ ) ) ) - (seek! (-> self gun-elev) f0-41 (* 2730.6667 (-> self clock seconds-per-frame))) + (seek! (-> self gun-elev) f0-41 (* 2730.6667 (seconds-per-frame))) ) ) ) @@ -1275,7 +1275,7 @@ (quaternion-rotate-y! (-> self rotate-quat) (-> self rotate-quat) - (* (-> self rotate-rate) (-> self clock seconds-per-frame)) + (* (-> self rotate-rate) (seconds-per-frame)) ) (quaternion*! (-> self root quat) (-> self rotate-quat) (-> self tank-quat-vibe-only)) (quaternion-normalize! (-> self root quat)) diff --git a/test/decompiler/reference/jak2/levels/fortress/dump/fort-robotank_REF.gc b/test/decompiler/reference/jak2/levels/fortress/dump/fort-robotank_REF.gc index a234423477..b86cf7a491 100644 --- a/test/decompiler/reference/jak2/levels/fortress/dump/fort-robotank_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/dump/fort-robotank_REF.gc @@ -436,7 +436,7 @@ 0 ) (fort-robotank-method-25 self) - (seek! (-> self roller-jmod twist y) (-> self roller-spin-rate) (* 16384.0 (-> self clock seconds-per-frame))) + (seek! (-> self roller-jmod twist y) (-> self roller-spin-rate) (* 16384.0 (seconds-per-frame))) (let ((gp-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 5))) (s4-0 (get-field-spec-by-id (-> *part-id-table* 2474) (sp-field-id spt-num))) (s5-0 (new 'stack-no-clear 'matrix)) @@ -458,7 +458,7 @@ ) (let ((s1-0 (get-field-spec-by-id (-> *part-id-table* 2471) (sp-field-id spt-num))) (f30-0 (vector-length s3-1)) - (f28-0 (* 12288.0 (-> self clock seconds-per-frame))) + (f28-0 (* 12288.0 (seconds-per-frame))) ) (set! (-> s1-0 initial-valuef) (lerp-scale 0.0 0.5 f30-0 0.0 f28-0)) (set! (-> s1-0 random-rangef) (lerp-scale 0.0 1.0 f30-0 0.0 f28-0)) @@ -485,12 +485,12 @@ (let ((v1-65 (-> self path-info data (-> self path-index)))) (cond ((and (logtest? (-> self flags) (robotank-flags roflags-2)) (!= (-> v1-65 u) (-> v1-65 prev-u))) - (seek! (-> self engine-vibe-rate) 3.0 (-> self clock seconds-per-frame)) - (seek! (-> self engine-vibe-amp) 1.0 (-> self clock seconds-per-frame)) + (seek! (-> self engine-vibe-rate) 3.0 (seconds-per-frame)) + (seek! (-> self engine-vibe-amp) 1.0 (seconds-per-frame)) ) (else - (seek! (-> self engine-vibe-rate) 1.0 (-> self clock seconds-per-frame)) - (seek! (-> self engine-vibe-amp) 0.4 (-> self clock seconds-per-frame)) + (seek! (-> self engine-vibe-rate) 1.0 (seconds-per-frame)) + (seek! (-> self engine-vibe-amp) 0.4 (seconds-per-frame)) ) ) ) @@ -1032,8 +1032,8 @@ ) ) ) - (set! (-> gp-1 u) (fmax 0.0 (fmin 1.0 (+ (-> gp-1 u) (* f28-0 f30-1 (-> self clock seconds-per-frame)))))) - (seek! (-> gp-1 du) (-> gp-1 du-final) (* 0.5 (-> self clock seconds-per-frame) (-> gp-1 du-final))) + (set! (-> gp-1 u) (fmax 0.0 (fmin 1.0 (+ (-> gp-1 u) (* f28-0 f30-1 (seconds-per-frame)))))) + (seek! (-> gp-1 du) (-> gp-1 du-final) (* 0.5 (seconds-per-frame) (-> gp-1 du-final))) (update-vol! (-> self sound) (lerp-scale 0.0 1.0 (* f28-0 f30-1) 0.0 0.03)) (update-vol! (-> self barrel-sound) (lerp-scale 0.0 1.0 (* f28-0 f30-1) 0.0 0.01)) ) diff --git a/test/decompiler/reference/jak2/levels/fortress/exit/forexita-obs_REF.gc b/test/decompiler/reference/jak2/levels/fortress/exit/forexita-obs_REF.gc index 587bb38903..d1f95ebe34 100644 --- a/test/decompiler/reference/jak2/levels/fortress/exit/forexita-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/exit/forexita-obs_REF.gc @@ -307,7 +307,7 @@ otherwise, [[plat::34]] :virtual #t :code (the-as (function none :behavior fort-claw) sleep-code) :post (behavior () - (let ((f30-0 (seek (-> self path-u) (-> self path-dest) (* 0.04 (-> self clock seconds-per-frame))))) + (let ((f30-0 (seek (-> self path-u) (-> self path-dest) (* 0.04 (seconds-per-frame))))) (set! (-> self path-u) f30-0) (let ((f0-4 (-> self path-dest))) (when (= f30-0 f0-4) diff --git a/test/decompiler/reference/jak2/levels/fortress/exit/forexitb-part_REF.gc b/test/decompiler/reference/jak2/levels/fortress/exit/forexitb-part_REF.gc index 65a2fe8dab..ee59caf334 100644 --- a/test/decompiler/reference/jak2/levels/fortress/exit/forexitb-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/exit/forexitb-part_REF.gc @@ -1302,22 +1302,8 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 2820)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-3d*) - (a1-3 (-> *part-id-table* 2821)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 2820) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2821) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) @@ -1332,30 +1318,9 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 2820)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-3d*) - (a1-3 (-> *part-id-table* 2822)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-2d*) - (a1-4 (-> *part-id-table* 2823)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-0 quad)) - (t9-3 a0-5 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 2820) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2822) s3-0) + (launch-particles (-> *part-id-table* 2823) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/test/decompiler/reference/jak2/levels/fortress/fort-turret_REF.gc b/test/decompiler/reference/jak2/levels/fortress/fort-turret_REF.gc index 96881f08fc..f44f8d2d93 100644 --- a/test/decompiler/reference/jak2/levels/fortress/fort-turret_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/fort-turret_REF.gc @@ -342,32 +342,11 @@ (new 'stack-no-clear 'vector) (cond (arg2 - (let ((t9-0 sp-launch-particles-var) - (a0-1 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 3066)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> arg0 quad)) - (t9-0 a0-1 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 3065)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> arg0 quad)) - (t9-1 a0-2 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 3066) arg0) + (launch-particles (-> *part-id-table* 3065) arg0) ) (else - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 3067)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> arg0 quad)) - (t9-2 a0-3 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 3067) arg0) ) ) 0 diff --git a/test/decompiler/reference/jak2/levels/fortress/prison/prison-obs_REF.gc b/test/decompiler/reference/jak2/levels/fortress/prison/prison-obs_REF.gc index 773796e4ed..853cc7ccb3 100644 --- a/test/decompiler/reference/jak2/levels/fortress/prison/prison-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/prison/prison-obs_REF.gc @@ -262,7 +262,7 @@ (none) ) :post (behavior () - (seek! (-> self path-u) 1.0 (* (-> self path-du) (-> self clock seconds-per-frame))) + (seek! (-> self path-u) 1.0 (* (-> self path-du) (seconds-per-frame))) (when (>= (-> self path-u) 1.0) (set! (-> self path-u) 0.0) (set! (-> self state-time) (current-time)) @@ -449,10 +449,10 @@ This commonly includes things such as: (until #f (cond ((< (-> self frame) (-> self desired)) - (+! (-> self frame) (* 0.075 (-> self clock seconds-per-frame))) + (+! (-> self frame) (* 0.075 (seconds-per-frame))) ) ((< (-> self desired) (-> self frame)) - (set! (-> self frame) (- (-> self frame) (* 0.075 (-> self clock seconds-per-frame)))) + (set! (-> self frame) (- (-> self frame) (* 0.075 (seconds-per-frame)))) ) ) (set! (-> self frame) (fmax 0.0 (fmin 1.0 (-> self frame)))) diff --git a/test/decompiler/reference/jak2/levels/fortress/rescue/forresca-obs_REF.gc b/test/decompiler/reference/jak2/levels/fortress/rescue/forresca-obs_REF.gc index 0070f62fd6..44e72c2b6a 100644 --- a/test/decompiler/reference/jak2/levels/fortress/rescue/forresca-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/rescue/forresca-obs_REF.gc @@ -328,7 +328,7 @@ This commonly includes things such as: (let ((gp-0 #t)) (dotimes (s5-0 5) (let ((s4-0 (-> self l-bolt s5-0))) - (seek! (-> s4-0 pos) 0.0 (* (- 1.14 (-> s4-0 pos)) (-> self clock seconds-per-frame))) + (seek! (-> s4-0 pos) 0.0 (* (- 1.14 (-> s4-0 pos)) (seconds-per-frame))) (set! gp-0 (cond ((or (< 1.0 (-> s4-0 pos)) (>= 0.0 (-> s4-0 pos))) (let ((v1-9 (-> self l-bolt s5-0 bolt)) diff --git a/test/decompiler/reference/jak2/levels/fortress/rescue/forrescb-obs_REF.gc b/test/decompiler/reference/jak2/levels/fortress/rescue/forrescb-obs_REF.gc index 1c82deaa91..181e70e25d 100644 --- a/test/decompiler/reference/jak2/levels/fortress/rescue/forrescb-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/rescue/forrescb-obs_REF.gc @@ -214,7 +214,7 @@ This commonly includes things such as: (set! (-> self root trans quad) (-> v1-7 quad)) ) ) - (+! (-> self path-u) (* (-> self path-du) (-> self clock seconds-per-frame))) + (+! (-> self path-u) (* (-> self path-du) (seconds-per-frame))) (ja-post) (none) ) @@ -251,7 +251,7 @@ This commonly includes things such as: (set! (-> self root trans quad) (-> v1-7 quad)) ) ) - (+! (-> self path-u) (* (-> self path-du) (-> self clock seconds-per-frame))) + (+! (-> self path-u) (* (-> self path-du) (seconds-per-frame))) (let ((s3-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 4))) (s2-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 5))) ) @@ -686,7 +686,6 @@ This commonly includes things such as: ) ;; definition for method 3 of type fort-conveyor -;; INFO: this function exists in multiple non-identical object files (defmethod inspect fort-conveyor ((obj fort-conveyor)) (when (not obj) (set! obj obj) @@ -706,14 +705,12 @@ This commonly includes things such as: ) ;; definition for method 22 of type fort-conveyor -;; INFO: this function exists in multiple non-identical object files (defmethod get-art-group fort-conveyor ((obj fort-conveyor)) "@returns The respective [[art-group]] for the [[conveyor]]" (art-group-get-by-name *level* "skel-fort-conveyor" (the-as (pointer uint32) #f)) ) ;; definition for method 23 of type fort-conveyor -;; INFO: this function exists in multiple non-identical object files ;; WARN: Return type mismatch collide-shape-moving vs none. (defmethod reset-root! fort-conveyor ((obj fort-conveyor)) "Re-initializes the `root` [[trsqv]]" @@ -744,7 +741,6 @@ This commonly includes things such as: ) ;; definition for method 24 of type fort-conveyor -;; INFO: this function exists in multiple non-identical object files ;; WARN: Return type mismatch vector vs none. (defmethod init! fort-conveyor ((obj fort-conveyor)) "Initializes defaults for things like the `speed` and `belt-radius`" @@ -758,7 +754,6 @@ This commonly includes things such as: ) ;; definition for method 25 of type fort-conveyor -;; INFO: this function exists in multiple non-identical object files (defmethod set-and-get-ambient-sound! fort-conveyor ((obj fort-conveyor)) "So long as [[actor-option::16]] is not set, fetch the [[ambient-sound]] for the [[conveyor]] and return it as well. Otherwise, set it to `0`" diff --git a/test/decompiler/reference/jak2/levels/gungame/gun-dummy_REF.gc b/test/decompiler/reference/jak2/levels/gungame/gun-dummy_REF.gc index 7901e94740..ac106d8629 100644 --- a/test/decompiler/reference/jak2/levels/gungame/gun-dummy_REF.gc +++ b/test/decompiler/reference/jak2/levels/gungame/gun-dummy_REF.gc @@ -2176,8 +2176,8 @@ ret ) (((tpath-command translate)) - (set! (-> obj score) (- (-> obj score) (* (-> obj score-speed) (-> pp clock seconds-per-frame)))) - (set! (-> obj inout-percent) (fmax 0.0 (- (-> obj inout-percent) (* 4.0 (-> pp clock seconds-per-frame))))) + (set! (-> obj score) (- (-> obj score) (* (-> obj score-speed) (seconds-per-frame)))) + (set! (-> obj inout-percent) (fmax 0.0 (- (-> obj inout-percent) (* 4.0 (seconds-per-frame))))) (let ((s2-4 (new 'stack-no-clear 'vector)) (s3-4 (new 'stack-no-clear 'vector)) (f28-2 (lerp-scale 0.0 1.0 f30-0 0.0 (-> curr-path-command 0 time))) @@ -2255,8 +2255,8 @@ ret ) (((tpath-command wait)) - (set! (-> obj score) (- (-> obj score) (* (-> obj score-speed) (-> pp clock seconds-per-frame)))) - (set! (-> obj inout-percent) (fmax 0.0 (- (-> obj inout-percent) (* 4.0 (-> pp clock seconds-per-frame))))) + (set! (-> obj score) (- (-> obj score) (* (-> obj score-speed) (seconds-per-frame)))) + (set! (-> obj inout-percent) (fmax 0.0 (- (-> obj inout-percent) (* 4.0 (seconds-per-frame))))) (get-point-in-path! path (-> obj root trans) (-> obj path-pos) 'interp) (set! (-> obj first-time-command) #f) (when (or (and (= (-> curr-path-command 0 time) -1.0) (< (-> obj hit-points) 0)) @@ -2425,9 +2425,7 @@ (set! (-> self hit-points) -1) ) (+! (-> self root trans y) (-> self y-offset)) - (set! (-> self rot-y-offset) - (- (-> self rot-y-offset) (* 8.0 (-> self clock seconds-per-frame) (-> self rot-y-offset))) - ) + (set! (-> self rot-y-offset) (- (-> self rot-y-offset) (* 8.0 (seconds-per-frame) (-> self rot-y-offset)))) (when (< (-> self rot-y-offset) 182.04445) (when (nonzero? (-> self spin-sound)) (sound-stop (-> self spin-sound)) diff --git a/test/decompiler/reference/jak2/levels/hideout/hideout-part_REF.gc b/test/decompiler/reference/jak2/levels/hideout/hideout-part_REF.gc index 36209f0044..8c7dc640a4 100644 --- a/test/decompiler/reference/jak2/levels/hideout/hideout-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/hideout/hideout-part_REF.gc @@ -607,22 +607,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 3380)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-2d*) - (a1-4 (-> *part-id-table* 3381)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-3 a0-5 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 3380) gp-0) + (launch-particles (-> *part-id-table* 3381) gp-0) ) ) (none) diff --git a/test/decompiler/reference/jak2/levels/hiphog/whack_REF.gc b/test/decompiler/reference/jak2/levels/hiphog/whack_REF.gc index 6ad19486af..05cbc40d9b 100644 --- a/test/decompiler/reference/jak2/levels/hiphog/whack_REF.gc +++ b/test/decompiler/reference/jak2/levels/hiphog/whack_REF.gc @@ -2138,13 +2138,11 @@ (set! (-> *part-id-table* 3336 init-specs 2 random-rangef) 0.0) (set! (-> *part-id-table* 3336 init-specs 3 initial-valuef) (- 921.6 (* 614.4 (the float (/ s4-1 5))))) (set! (-> *part-id-table* 3336 init-specs 3 random-rangef) 0.0) - (sp-launch-particles-var - *sp-particle-system-3d* + (launch-particles + :system *sp-particle-system-3d* (-> *part-id-table* 3336) (-> (the-as process-drawable s5-1) node-list data 12 bone transform) - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 + :origin-is-matrix #t ) ) ) diff --git a/test/decompiler/reference/jak2/levels/intro/intro-obs_REF.gc b/test/decompiler/reference/jak2/levels/intro/intro-obs_REF.gc index 10ce4fdf2c..9262d895d4 100644 --- a/test/decompiler/reference/jak2/levels/intro/intro-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/intro/intro-obs_REF.gc @@ -107,7 +107,7 @@ (none) ) :post (behavior () - (seek! (-> self path-u) 1.0 (* (-> self path-du) (-> self clock seconds-per-frame))) + (seek! (-> self path-u) 1.0 (* (-> self path-du) (seconds-per-frame))) (let ((s3-0 (intro-flamer-method-22 self)) (s4-0 (new 'stack-no-clear 'vector)) (s5-0 (new 'stack-no-clear 'quaternion)) @@ -135,11 +135,8 @@ (f0-15 (vector-dot (vector-cross! (new 'stack-no-clear 'vector) s3-1 v1-10) *up-vector*)) (f0-16 (* 49152.0 f0-15)) ) - (set! (-> self z-rot) (deg-seek - (-> self z-rot) - (fmax -15473.777 (fmin 15473.777 f0-16)) - (* 21845.334 (-> self clock seconds-per-frame)) - ) + (set! (-> self z-rot) + (deg-seek (-> self z-rot) (fmax -15473.777 (fmin 15473.777 f0-16)) (* 21845.334 (seconds-per-frame))) ) ) ) @@ -147,8 +144,8 @@ (let ((a2-5 (vector-rotate-z! (new 'stack-no-clear 'vector) *up-vector* (-> self z-rot)))) (forward-up->quaternion s5-0 s4-0 a2-5) ) - (quaternion-slerp! (-> self root quat) (-> self root quat) s5-0 (* 8.0 (-> self clock seconds-per-frame))) - (seek! (-> self flit-factor) 1.0 (* 8.0 (-> self clock seconds-per-frame))) + (quaternion-slerp! (-> self root quat) (-> self root quat) s5-0 (* 8.0 (seconds-per-frame))) + (seek! (-> self flit-factor) 1.0 (* 8.0 (seconds-per-frame))) (let* ((v1-25 (-> self flit-prev-offset)) (a1-10 (-> self flit-next-offset)) (a0-14 (vector-! (new 'stack-no-clear 'vector) a1-10 v1-25)) diff --git a/test/decompiler/reference/jak2/levels/intro/intro-scenes_REF.gc b/test/decompiler/reference/jak2/levels/intro/intro-scenes_REF.gc index b733397a3a..87fbac6299 100644 --- a/test/decompiler/reference/jak2/levels/intro/intro-scenes_REF.gc +++ b/test/decompiler/reference/jak2/levels/intro/intro-scenes_REF.gc @@ -830,22 +830,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 vector 0 x) (-> arg2 vector 0 y) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 5341)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 5342)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 5341) gp-0) + (launch-particles (-> *part-id-table* 5342) gp-0) ) ) (none) @@ -1453,14 +1439,7 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg2 vector 0 y) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 5368)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 5368) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) @@ -2320,7 +2299,7 @@ *screen-filter* (new 'static 'vector :w 128.0) (new 'static 'vector :w 128.0) - (-> self clock seconds-per-frame) + (seconds-per-frame) (bucket-id screen-filter) ) (update-mood-weather! *mood-control* 0.25 0.5 0.0 0.0) @@ -2430,7 +2409,7 @@ ) ) (if (not (paused?)) - (+! f30-0 (-> self clock seconds-per-frame)) + (+! f30-0 (seconds-per-frame)) ) (suspend) ) @@ -2452,7 +2431,7 @@ *screen-filter* (new 'static 'vector :w 128.0) (new 'static 'vector) - (-> self clock seconds-per-frame) + (seconds-per-frame) (bucket-id screen-filter) ) (none) @@ -2557,7 +2536,7 @@ ) ) (if (not (paused?)) - (+! f30-0 (-> self clock seconds-per-frame)) + (+! f30-0 (seconds-per-frame)) ) (suspend) ) @@ -3260,7 +3239,7 @@ *screen-filter* (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) - (* 0.2 (-> self clock seconds-per-frame)) + (* 0.2 (seconds-per-frame)) (bucket-id screen-filter) ) (set-setting! 'allow-blackout #f 0.0 0) @@ -3632,7 +3611,7 @@ *screen-filter* (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) - (* 0.2 (-> self clock seconds-per-frame)) + (* 0.2 (seconds-per-frame)) (bucket-id screen-filter) ) (update-mood-weather! *mood-control* 0.25 0.0 0.0 0.0) @@ -3776,17 +3755,15 @@ (592 (apply ,(lambda () - (with-pp - (set-setting! 'allow-blackout #f 0.0 0) - (setup - *screen-filter* - (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) - (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) - (* 2.0 (-> pp clock seconds-per-frame)) - (bucket-id screen-filter) - ) - (none) + (set-setting! 'allow-blackout #f 0.0 0) + (setup + *screen-filter* + (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) + (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) + (* 2.0 (seconds-per-frame)) + (bucket-id screen-filter) ) + (none) ) ) ) @@ -4015,30 +3992,28 @@ ) (apply ,(lambda () - (with-pp - (setup - *screen-filter* - (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) - (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) - (-> pp clock seconds-per-frame) - (bucket-id screen-filter) - ) - (update-mood-weather! *mood-control* 1.0 0.5 0.0 0.0) - (update-mood-weather! *mood-control* 0.2 0.5 80.0 80.0) - (set-time-for-random-weather! *mood-control* 180000.0 180000.0) - (let ((gp-0 (level-get *level* 'introcst))) - (when gp-0 - (clear-mood-context (-> gp-0 mood-context)) - (if #f - ((the-as (function mood-context none) #f) (-> gp-0 mood-context)) - ) - (set! (-> gp-0 mood-func) update-mood-ctywide) - (set! (-> gp-0 info sky) #t) - ) - ) - (set-filter-color! 1.0 1.0 1.0) - (none) + (setup + *screen-filter* + (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) + (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) + (seconds-per-frame) + (bucket-id screen-filter) ) + (update-mood-weather! *mood-control* 1.0 0.5 0.0 0.0) + (update-mood-weather! *mood-control* 0.2 0.5 80.0 80.0) + (set-time-for-random-weather! *mood-control* 180000.0 180000.0) + (let ((gp-0 (level-get *level* 'introcst))) + (when gp-0 + (clear-mood-context (-> gp-0 mood-context)) + (if #f + ((the-as (function mood-context none) #f) (-> gp-0 mood-context)) + ) + (set! (-> gp-0 mood-func) update-mood-ctywide) + (set! (-> gp-0 info sky) #t) + ) + ) + (set-filter-color! 1.0 1.0 1.0) + (none) ) ) (want-force-vis 'ctyindb #t) @@ -4150,7 +4125,7 @@ *screen-filter* (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) (new 'static 'vector :x 255.0 :y 128.0) - (* 0.025 (-> self clock seconds-per-frame)) + (* 0.025 (seconds-per-frame)) (bucket-id screen-filter) ) ) @@ -4219,7 +4194,7 @@ *screen-filter* (new 'static 'vector :w 128.0) (new 'static 'vector :w 128.0) - (* 128.0 (-> self clock seconds-per-frame)) + (* 128.0 (seconds-per-frame)) (bucket-id screen-filter) ) (none) @@ -4479,16 +4454,9 @@ (when (and (>= f30-0 150.0) (>= 400.0 f30-0)) (let ((s4-1 3)) (while (< s4-1 gp-1) - (when (not (and (>= s4-1 7) (>= 12 s4-1))) - (let ((t9-5 sp-launch-particles-var) - (a0-6 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 5390)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> self node-list data s4-1 bone transform trans quad)) - (t9-5 a0-6 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) + (if (not (and (>= s4-1 7) (>= 12 s4-1))) + (launch-particles (-> *part-id-table* 5390) (-> self node-list data s4-1 bone transform trans)) ) - ) (+! s4-1 s5-1) ) ) diff --git a/test/decompiler/reference/jak2/levels/mountain/canyon/canyon-scenes_REF.gc b/test/decompiler/reference/jak2/levels/mountain/canyon/canyon-scenes_REF.gc index 9e3f19df31..691527a7df 100644 --- a/test/decompiler/reference/jak2/levels/mountain/canyon/canyon-scenes_REF.gc +++ b/test/decompiler/reference/jak2/levels/mountain/canyon/canyon-scenes_REF.gc @@ -1207,22 +1207,8 @@ (set! (-> *part-id-table* 1665 init-specs 4 initial-valuef) (vector-length displacement)) (draw-beam (-> *part-id-table* 1665) point-a displacement #f #t) ) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 1668)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> point-a quad)) - (t9-1 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 1669)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> point-b quad)) - (t9-2 a0-4 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1668) point-a) + (launch-particles (-> *part-id-table* 1669) point-b) (none) ) @@ -1234,22 +1220,8 @@ (set! (-> *part-id-table* 1666 init-specs 4 initial-valuef) (vector-length displacement)) (draw-beam (-> *part-id-table* 1666) point-a displacement #f #t) ) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 1668)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> point-a quad)) - (t9-1 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 1669)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> point-b quad)) - (t9-2 a0-4 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1668) point-a) + (launch-particles (-> *part-id-table* 1669) point-b) (none) ) @@ -1261,22 +1233,8 @@ (set! (-> *part-id-table* 1667 init-specs 4 initial-valuef) (vector-length displacement)) (draw-beam (-> *part-id-table* 1667) point-a displacement #f #t) ) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 1668)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> point-a quad)) - (t9-1 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 1669)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> point-b quad)) - (t9-2 a0-4 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1668) point-a) + (launch-particles (-> *part-id-table* 1669) point-b) (none) ) diff --git a/test/decompiler/reference/jak2/levels/mountain/mountain-obs2_REF.gc b/test/decompiler/reference/jak2/levels/mountain/mountain-obs2_REF.gc index 842152d8b7..83858e18e8 100644 --- a/test/decompiler/reference/jak2/levels/mountain/mountain-obs2_REF.gc +++ b/test/decompiler/reference/jak2/levels/mountain/mountain-obs2_REF.gc @@ -281,7 +281,7 @@ For example for an elevator pre-compute the distance between the first and last ) (('hint) (when (>= (-> self hint-count) 0.0) - (+! (-> self hint-count) (-> self clock seconds-per-frame)) + (+! (-> self hint-count) (seconds-per-frame)) (when (< (rand-vu-float-range 6.0 10.0) (-> self hint-count)) (talker-spawn-func (-> *talker-speech* 56) *entity-pool* (target-pos 0) (the-as region #f)) (set! (-> self hint-count) 0.0) @@ -340,10 +340,8 @@ For example for an elevator pre-compute the distance between the first and last ) ) ) - (+! (-> self angle-flip-vel) - (* -0.5 (-> self clock seconds-per-frame) (- (-> self angle-flip) (-> self dest-angle))) - ) - (+! (-> self angle-flip-vel) (* -6.0 (-> self clock seconds-per-frame) (-> self angle-flip-vel))) + (+! (-> self angle-flip-vel) (* -0.5 (seconds-per-frame) (- (-> self angle-flip) (-> self dest-angle)))) + (+! (-> self angle-flip-vel) (* -6.0 (seconds-per-frame) (-> self angle-flip-vel))) (+! (-> self angle-flip) (-> self angle-flip-vel)) (quaternion-vector-angle! (-> self root quat) (-> self axe-flip) (* 182.04445 (-> self angle-flip))) (when (and (>= (- (current-time) (-> self state-time)) (the int (+ -300.0 (-> self time-flip)))) @@ -365,7 +363,7 @@ For example for an elevator pre-compute the distance between the first and last ) (vector-normalize! s5-2 1.0) (quaternion-vector-angle! gp-2 s5-2 1820.4445) - (quaternion-pseudo-seek (-> self root quat) (-> self root quat) gp-2 (-> self clock seconds-per-frame)) + (quaternion-pseudo-seek (-> self root quat) (-> self root quat) gp-2 (seconds-per-frame)) ) ) (quaternion-normalize! (-> self root quat)) diff --git a/test/decompiler/reference/jak2/levels/mountain/mountain-obs_REF.gc b/test/decompiler/reference/jak2/levels/mountain/mountain-obs_REF.gc index 0b9779b6da..3ea13d0d32 100644 --- a/test/decompiler/reference/jak2/levels/mountain/mountain-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/mountain/mountain-obs_REF.gc @@ -419,13 +419,13 @@ (set! (-> self draw color-mult quad) (-> self color quad)) (cond ((>= (- (current-time) (-> self state-time)) (seconds 0.5)) - (+! (-> self speed-anim) (* -0.5 (-> self clock seconds-per-frame) (-> self time-anim))) - (+! (-> self speed-anim) (* -6.0 (-> self clock seconds-per-frame) (-> self speed-anim))) + (+! (-> self speed-anim) (* -0.5 (seconds-per-frame) (-> self time-anim))) + (+! (-> self speed-anim) (* -6.0 (seconds-per-frame) (-> self speed-anim))) (+! (-> self time-anim) (-> self speed-anim)) ) (else (set! (-> self draw color-mult quad) (-> self color quad)) - (set! (-> self speed-anim) (- (-> self speed-anim) (* 2.0 (-> self clock seconds-per-frame)))) + (set! (-> self speed-anim) (- (-> self speed-anim) (* 2.0 (seconds-per-frame)))) (+! (-> self time-anim) (-> self speed-anim)) (set! (-> self active) (the-as uint 3)) ) @@ -816,7 +816,7 @@ ) ((= event-type 'hint) (when (>= (-> self hint-count) 0.0) - (+! (-> self hint-count) (-> self clock seconds-per-frame)) + (+! (-> self hint-count) (seconds-per-frame)) (if (< 6.0 (-> self hint-count)) (talker-spawn-func (-> *talker-speech* 61) *entity-pool* (target-pos 0) (the-as region #f)) ) @@ -961,8 +961,8 @@ :post (behavior () (rider-trans) (if (= (-> self active) 1) - (set! (-> self color x) (fmin 1.0 (+ (-> self color x) (* 2.0 (-> self clock seconds-per-frame))))) - (set! (-> self color x) (fmax 0.5 (- (-> self color x) (* 2.0 (-> self clock seconds-per-frame))))) + (set! (-> self color x) (fmin 1.0 (+ (-> self color x) (* 2.0 (seconds-per-frame))))) + (set! (-> self color x) (fmax 0.5 (- (-> self color x) (* 2.0 (seconds-per-frame))))) ) (set! (-> self color y) (-> self color x)) (set! (-> self color z) (-> self color x)) @@ -1048,12 +1048,12 @@ (set! (-> self draw color-mult quad) (-> self color quad)) (cond ((-> self punch-anim) - (+! (-> self speed-anim) (* -4.0 (-> self clock seconds-per-frame) (-> self time-anim))) - (+! (-> self speed-anim) (* -16.0 (-> self clock seconds-per-frame) (-> self speed-anim))) + (+! (-> self speed-anim) (* -4.0 (seconds-per-frame) (-> self time-anim))) + (+! (-> self speed-anim) (* -16.0 (seconds-per-frame) (-> self speed-anim))) ) (else - (+! (-> self speed-anim) (* -3.0 (-> self clock seconds-per-frame) (-> self time-anim))) - (+! (-> self speed-anim) (* -20.0 (-> self clock seconds-per-frame) (-> self speed-anim))) + (+! (-> self speed-anim) (* -3.0 (seconds-per-frame) (-> self time-anim))) + (+! (-> self speed-anim) (* -20.0 (seconds-per-frame) (-> self speed-anim))) ) ) (+! (-> self time-anim) (-> self speed-anim)) @@ -1113,7 +1113,7 @@ ) :trans (behavior () (set! (-> self draw color-mult quad) (-> self color quad)) - (set! (-> self speed-anim) (- (-> self speed-anim) (* 0.05 (-> self clock seconds-per-frame)))) + (set! (-> self speed-anim) (- (-> self speed-anim) (* 0.05 (seconds-per-frame)))) (+! (-> self time-anim) (-> self speed-anim)) (set! (-> self active) (the-as uint 3)) (dotimes (v1-5 6) @@ -2540,8 +2540,8 @@ This commonly includes things such as: (local-vars (sv-16 vector-array) (sv-20 vector) (sv-48 float) (sv-52 symbol)) (transform-post) (if (= (-> *setting-control* user-current music) 'mountain) - (seek! (-> self volume) 0.6 (* 0.2 (-> self clock seconds-per-frame))) - (seek! (-> self volume) 1.0 (* 0.5 (-> self clock seconds-per-frame))) + (seek! (-> self volume) 0.6 (* 0.2 (seconds-per-frame))) + (seek! (-> self volume) 1.0 (* 0.5 (seconds-per-frame))) ) (sound-play-by-name (static-sound-name "mtn-aval-loop") @@ -2896,7 +2896,7 @@ This commonly includes things such as: ) :code (the-as (function none :behavior mtn-plat-return) sleep-code) :post (behavior () - (seek! (-> self path-pos) (-> self dest-pos) (* (-> self path-speed) (-> self clock seconds-per-frame))) + (seek! (-> self path-pos) (-> self dest-pos) (* (-> self path-speed) (seconds-per-frame))) (get-point-at-percent-along-path! (-> self path) (-> self basetrans) @@ -3045,7 +3045,7 @@ This commonly includes things such as: ) :code (the-as (function none :behavior mtn-plat-gap) sleep-code) :post (behavior () - (seek! (-> self path-pos) (-> self dest-pos) (* (-> self path-speed) (-> self clock seconds-per-frame))) + (seek! (-> self path-pos) (-> self dest-pos) (* (-> self path-speed) (seconds-per-frame))) (get-point-at-percent-along-path! (-> self path) (-> self basetrans) @@ -3570,14 +3570,7 @@ This commonly includes things such as: (while (< 0.0 f28-0) (set! (-> self basetrans y) (- f30-0 f28-0)) (plat-trans) - (set! f28-0 (seek-ease - f28-0 - 0.0 - (* 40960.0 (-> self clock seconds-per-frame)) - 2048.0 - (* 4096.0 (-> self clock seconds-per-frame)) - ) - ) + (set! f28-0 (seek-ease f28-0 0.0 (* 40960.0 (seconds-per-frame)) 2048.0 (* 4096.0 (seconds-per-frame)))) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/mountain/mountain-part_REF.gc b/test/decompiler/reference/jak2/levels/mountain/mountain-part_REF.gc index fcb8918e47..fe8e5a0564 100644 --- a/test/decompiler/reference/jak2/levels/mountain/mountain-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/mountain/mountain-part_REF.gc @@ -1972,14 +1972,7 @@ (let ((vec (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! vec (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((func sp-launch-particles-var) - (sys *sp-particle-system-3d*) - (launcher (-> *part-id-table* 1591)) - (matrix *launch-matrix*) - ) - (set! (-> matrix trans quad) (-> vec quad)) - (func sys launcher matrix (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 1591) vec) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/test/decompiler/reference/jak2/levels/mountain/rhino_REF.gc b/test/decompiler/reference/jak2/levels/mountain/rhino_REF.gc index 26bd75c7e5..8f94e84e31 100644 --- a/test/decompiler/reference/jak2/levels/mountain/rhino_REF.gc +++ b/test/decompiler/reference/jak2/levels/mountain/rhino_REF.gc @@ -1666,7 +1666,7 @@ :frame-num 0.0 ) (until (ja-done? 0) - (set! (-> self skid-speed) (fmax 0.0 (- (-> self skid-speed) (* 32768.0 (-> self clock seconds-per-frame))))) + (set! (-> self skid-speed) (fmax 0.0 (- (-> self skid-speed) (* 32768.0 (seconds-per-frame))))) (suspend) (ja :num! (seek!)) ) @@ -1703,13 +1703,13 @@ ) ) (until (ja-done? 0) - (set! (-> self skid-speed) (fmax 0.0 (- (-> self skid-speed) (* 32768.0 (-> self clock seconds-per-frame))))) + (set! (-> self skid-speed) (fmax 0.0 (- (-> self skid-speed) (* 32768.0 (seconds-per-frame))))) (let ((v1-45 (-> self nav))) (set! (-> v1-45 target-speed) (-> self skid-speed)) ) 0 (if (and (>= (ja-frame-num 0) 0.0) (>= 15.0 (ja-frame-num 0))) - (+! (-> self angle) (* (-> self angle-speed) (-> self clock seconds-per-frame))) + (+! (-> self angle) (* (-> self angle-speed) (seconds-per-frame))) ) (let ((a0-20 (-> self nav state)) (v1-54 (-> self dest)) diff --git a/test/decompiler/reference/jak2/levels/nest/boss/nestb-scenes_REF.gc b/test/decompiler/reference/jak2/levels/nest/boss/nestb-scenes_REF.gc index 845542f29e..6dcb9b3b33 100644 --- a/test/decompiler/reference/jak2/levels/nest/boss/nestb-scenes_REF.gc +++ b/test/decompiler/reference/jak2/levels/nest/boss/nestb-scenes_REF.gc @@ -435,14 +435,7 @@ (set! (-> *part-id-table* 621 init-specs 4 initial-valuef) f28-0) ) (vector-normalize! s5-1 1.0) - (let ((t9-4 sp-launch-particles-var) - (a0-8 *sp-particle-system-2d*) - (a1-9 (-> *part-id-table* 622)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s3-2 quad)) - (t9-4 a0-8 a1-9 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 622) s3-2) ) (let ((s4-1 (new 'stack-no-clear 'matrix)) (f26-0 (* 0.000020345053 f30-0)) @@ -453,14 +446,7 @@ (set! (-> s4-1 trans quad) (-> gp-0 quad)) (set! (-> *part-id-table* 623 init-specs 3 initial-valuef) (* f26-0 f30-1)) (set! (-> *part-id-table* 623 init-specs 5 initial-valuef) (* f26-0 f28-1)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 623) - s4-1 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 623) s4-1 :origin-is-matrix #t) (set! (-> *part-id-table* 623 init-specs 3 initial-valuef) f30-1) (set! (-> *part-id-table* 623 init-specs 5 initial-valuef) f28-1) ) diff --git a/test/decompiler/reference/jak2/levels/nest/flying-spider_REF.gc b/test/decompiler/reference/jak2/levels/nest/flying-spider_REF.gc index 305f69b2b8..d0f138c7ec 100644 --- a/test/decompiler/reference/jak2/levels/nest/flying-spider_REF.gc +++ b/test/decompiler/reference/jak2/levels/nest/flying-spider_REF.gc @@ -255,13 +255,8 @@ ) :post (behavior () (get-point-at-percent-along-path! (-> self path) (-> self root trans) (-> self path-u) 'interp) - (set! (-> self path-u) (seek-ease - (-> self path-u) - 1.0 - (* (-> self path-du) (-> self clock seconds-per-frame)) - 0.2 - (* 0.04 (-> self clock seconds-per-frame)) - ) + (set! (-> self path-u) + (seek-ease (-> self path-u) 1.0 (* (-> self path-du) (seconds-per-frame)) 0.2 (* 0.04 (seconds-per-frame))) ) (let ((f0-7 (-> self path-u))) (set-vector! (-> self root scale) f0-7 f0-7 f0-7 0.0) @@ -307,7 +302,7 @@ :frame-num 0.0 ) (until (ja-done? 0) - (quaternion-slerp! (-> self root quat) (-> self root quat) gp-0 (* 2.0 (-> self clock seconds-per-frame))) + (quaternion-slerp! (-> self root quat) (-> self root quat) gp-0 (* 2.0 (seconds-per-frame))) (suspend) (ja :num! (seek!)) ) @@ -767,35 +762,33 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod flying-spider-method-182 flying-spider ((obj flying-spider) (arg0 vector)) - (with-pp - (cond - ((= (-> obj root gspot-pos y) -40959590.0) - (set! (-> arg0 y) 0.0) - (vector-normalize! arg0 1.0) - (quaternion-set! (-> obj root quat) 0.0 (-> arg0 x) 0.0 (+ 1.0 (-> arg0 z))) - (quaternion-normalize! (-> obj root quat)) - ) - (else - (let ((s4-0 (new 'stack-no-clear 'vector))) - (set! (-> s4-0 quad) (-> *up-vector* quad)) - (let ((s3-0 (new 'stack-no-clear 'quaternion))) - (quaternion-from-two-vectors-max-angle! s3-0 s4-0 (-> obj gspot-normal) 4551.1113) - (vector-orient-by-quat! s4-0 s4-0 s3-0) - ) - (let ((s3-1 (-> obj my-up-vector))) - (new 'stack-no-clear 'vector) - (vector-deg-seek s3-1 s3-1 s4-0 (* 910.2222 (-> pp clock seconds-per-frame))) - (vector-normalize! s3-1 1.0) - (set! (-> arg0 y) 0.0) - (vector-normalize! arg0 1.0) - (forward-up->quaternion (-> obj root quat) arg0 s3-1) - ) + (cond + ((= (-> obj root gspot-pos y) -40959590.0) + (set! (-> arg0 y) 0.0) + (vector-normalize! arg0 1.0) + (quaternion-set! (-> obj root quat) 0.0 (-> arg0 x) 0.0 (+ 1.0 (-> arg0 z))) + (quaternion-normalize! (-> obj root quat)) + ) + (else + (let ((s4-0 (new 'stack-no-clear 'vector))) + (set! (-> s4-0 quad) (-> *up-vector* quad)) + (let ((s3-0 (new 'stack-no-clear 'quaternion))) + (quaternion-from-two-vectors-max-angle! s3-0 s4-0 (-> obj gspot-normal) 4551.1113) + (vector-orient-by-quat! s4-0 s4-0 s3-0) + ) + (let ((s3-1 (-> obj my-up-vector))) + (new 'stack-no-clear 'vector) + (vector-deg-seek s3-1 s3-1 s4-0 (* 910.2222 (seconds-per-frame))) + (vector-normalize! s3-1 1.0) + (set! (-> arg0 y) 0.0) + (vector-normalize! arg0 1.0) + (forward-up->quaternion (-> obj root quat) arg0 s3-1) ) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 142 of type flying-spider diff --git a/test/decompiler/reference/jak2/levels/nest/mammoth_REF.gc b/test/decompiler/reference/jak2/levels/nest/mammoth_REF.gc index 0de88c9a79..ed0839a632 100644 --- a/test/decompiler/reference/jak2/levels/nest/mammoth_REF.gc +++ b/test/decompiler/reference/jak2/levels/nest/mammoth_REF.gc @@ -259,7 +259,7 @@ 1.0 1.0 ) - (+! (-> self root transv y) (* (-> self enemy-info movement-gravity) (-> self clock seconds-per-frame))) + (+! (-> self root transv y) (* (-> self enemy-info movement-gravity) (seconds-per-frame))) (let ((a2-1 (new 'stack-no-clear 'move-above-ground-params))) (let ((v1-9 (-> self enemy-info))) (set! (-> a2-1 gnd-collide-with) (the-as collide-spec (-> self gnd-collide))) @@ -283,7 +283,7 @@ (vector-normalize! s5-1 1.0) (quaternion-set! gp-1 0.0 (-> s5-1 x) 0.0 (+ 1.0 (-> s5-1 z))) (quaternion-normalize! gp-1) - (quaternion-slerp! (-> self root quat) (-> self root quat) gp-1 (* 0.3 (-> self clock seconds-per-frame))) + (quaternion-slerp! (-> self root quat) (-> self root quat) gp-1 (* 0.3 (seconds-per-frame))) ) (nav-enemy-simple-post) (none) @@ -931,55 +931,53 @@ ;; definition for method 125 of type mammoth ;; WARN: Return type mismatch symbol vs pat-surface. (defmethod enemy-method-125 mammoth ((obj mammoth) (arg0 collide-query) (arg1 collide-spec) (arg2 float) (arg3 float) (arg4 float)) - (with-pp - (the-as - pat-surface - (when (find-ground (-> obj root) arg0 arg1 arg2 arg3 arg4) - (set! (-> obj root ground-pat) (-> arg0 best-other-tri pat)) - (let ((s3-0 (new 'stack-no-clear 'collide-query))) - (let ((s2-1 (vector-! (new 'stack-no-clear 'vector) (-> obj root gspot-pos) (-> obj root trans)))) - (vector-normalize! s2-1 1.0) - (vector+float*! (-> s3-0 start-pos) (-> obj root gspot-pos) s2-1 -4096.0) - (vector-float*! (-> s3-0 move-dist) s2-1 8192.0) - ) - (let ((v1-9 s3-0)) - (set! (-> v1-9 radius) 8192.0) - (set! (-> v1-9 collide-with) arg1) - (set! (-> v1-9 ignore-process0) obj) - (set! (-> v1-9 ignore-process1) #f) - (set! (-> v1-9 ignore-pat) (-> obj root pat-ignore-mask)) - (set! (-> v1-9 action-mask) (collide-action solid)) - ) - (fill-using-line-sphere *collide-cache* s3-0) + (the-as + pat-surface + (when (find-ground (-> obj root) arg0 arg1 arg2 arg3 arg4) + (set! (-> obj root ground-pat) (-> arg0 best-other-tri pat)) + (let ((s3-0 (new 'stack-no-clear 'collide-query))) + (let ((s2-1 (vector-! (new 'stack-no-clear 'vector) (-> obj root gspot-pos) (-> obj root trans)))) + (vector-normalize! s2-1 1.0) + (vector+float*! (-> s3-0 start-pos) (-> obj root gspot-pos) s2-1 -4096.0) + (vector-float*! (-> s3-0 move-dist) s2-1 8192.0) ) - (let ((s4-1 (new 'stack-no-clear 'vector))) - (vector-reset! s4-1) - (dotimes (s3-1 (-> *collide-cache* num-tris)) - (let* ((v1-15 (-> *collide-cache* tris s3-1)) - (s1-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-15 vertex 1) (the-as vector (-> v1-15 vertex)))) - (s0-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-15 vertex 2) (the-as vector (-> v1-15 vertex)))) - (s2-2 (new 'stack-no-clear 'vector)) - ) - (vector-normalize! s1-1 1.0) - (vector-normalize! s0-1 1.0) - (vector-cross! s2-2 s1-1 s0-1) - (if (< (cos 10922.667) (vector-dot s2-2 *y-vector*)) - (vector+! s4-1 s4-1 s2-2) - ) - ) - ) - (vector-normalize-copy! (-> obj gspot-normal) s4-1 1.0) + (let ((v1-9 s3-0)) + (set! (-> v1-9 radius) 8192.0) + (set! (-> v1-9 collide-with) arg1) + (set! (-> v1-9 ignore-process0) obj) + (set! (-> v1-9 ignore-process1) #f) + (set! (-> v1-9 ignore-pat) (-> obj root pat-ignore-mask)) + (set! (-> v1-9 action-mask) (collide-action solid)) ) - (let ((f0-4 (-> obj root gspot-pos y))) - (if (= (-> obj y-level) -40959590.0) - (set! (-> obj y-level) f0-4) - (seek! (-> obj y-level) f0-4 (* 8192.0 (-> pp clock seconds-per-frame))) - ) - ) - (set! (-> obj root gspot-pos y) (-> obj y-level)) - (set! (-> arg0 best-other-tri intersect y) (-> obj y-level)) - #t + (fill-using-line-sphere *collide-cache* s3-0) ) + (let ((s4-1 (new 'stack-no-clear 'vector))) + (vector-reset! s4-1) + (dotimes (s3-1 (-> *collide-cache* num-tris)) + (let* ((v1-15 (-> *collide-cache* tris s3-1)) + (s1-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-15 vertex 1) (the-as vector (-> v1-15 vertex)))) + (s0-1 (vector-! (new 'stack-no-clear 'vector) (-> v1-15 vertex 2) (the-as vector (-> v1-15 vertex)))) + (s2-2 (new 'stack-no-clear 'vector)) + ) + (vector-normalize! s1-1 1.0) + (vector-normalize! s0-1 1.0) + (vector-cross! s2-2 s1-1 s0-1) + (if (< (cos 10922.667) (vector-dot s2-2 *y-vector*)) + (vector+! s4-1 s4-1 s2-2) + ) + ) + ) + (vector-normalize-copy! (-> obj gspot-normal) s4-1 1.0) + ) + (let ((f0-4 (-> obj root gspot-pos y))) + (if (= (-> obj y-level) -40959590.0) + (set! (-> obj y-level) f0-4) + (seek! (-> obj y-level) f0-4 (* 8192.0 (seconds-per-frame))) + ) + ) + (set! (-> obj root gspot-pos y) (-> obj y-level)) + (set! (-> arg0 best-other-tri intersect y) (-> obj y-level)) + #t ) ) ) @@ -988,68 +986,66 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod mammoth-method-183 mammoth ((obj mammoth)) - (with-pp - (cond - ((= (-> obj root gspot-pos y) -40959590.0) - (quaternion-copy! (-> obj tilt-quat) *unity-quaternion*) - ) - (else - (let ((s1-0 (-> obj root trans)) - (s5-0 (new 'stack-no-clear 'vector)) - ) - (set! (-> s5-0 quad) (-> obj gspot-normal quad)) - (let ((s4-0 (new 'stack-no-clear 'vector))) - (set! (-> s4-0 quad) (-> obj gspot-normal quad)) - (let ((s3-0 (new 'stack-no-clear 'vector))) - (set! (-> s3-0 quad) (-> obj gspot-normal quad)) - (let ((s2-0 (new 'stack-no-clear 'vector))) - (set! (-> s2-0 quad) (-> obj gspot-normal quad)) - (let ((s0-0 (lambda ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) - (let ((gp-1 (vector-! (new 'stack-no-clear 'vector) arg2 arg1)) - (s4-1 (vector-! (new 'stack-no-clear 'vector) arg3 arg1)) - ) - (vector-normalize! gp-1 1.0) - (vector-normalize! s4-1 1.0) - (vector-cross! arg0 s4-1 gp-1) - ) + (cond + ((= (-> obj root gspot-pos y) -40959590.0) + (quaternion-copy! (-> obj tilt-quat) *unity-quaternion*) + ) + (else + (let ((s1-0 (-> obj root trans)) + (s5-0 (new 'stack-no-clear 'vector)) + ) + (set! (-> s5-0 quad) (-> obj gspot-normal quad)) + (let ((s4-0 (new 'stack-no-clear 'vector))) + (set! (-> s4-0 quad) (-> obj gspot-normal quad)) + (let ((s3-0 (new 'stack-no-clear 'vector))) + (set! (-> s3-0 quad) (-> obj gspot-normal quad)) + (let ((s2-0 (new 'stack-no-clear 'vector))) + (set! (-> s2-0 quad) (-> obj gspot-normal quad)) + (let ((s0-0 (lambda ((arg0 vector) (arg1 vector) (arg2 vector) (arg3 vector)) + (let ((gp-1 (vector-! (new 'stack-no-clear 'vector) arg2 arg1)) + (s4-1 (vector-! (new 'stack-no-clear 'vector) arg3 arg1)) + ) + (vector-normalize! gp-1 1.0) + (vector-normalize! s4-1 1.0) + (vector-cross! arg0 s4-1 gp-1) ) ) - ) - (if (and (logtest? (-> obj foot-flags) 1) (logtest? (-> obj foot-flags) 2)) - (s0-0 s5-0 s1-0 (the-as vector (-> obj foot-pos)) (-> obj foot-pos 1)) - ) - (if (and (logtest? (-> obj foot-flags) 2) (logtest? (-> obj foot-flags) 4)) - (s0-0 s4-0 s1-0 (-> obj foot-pos 1) (-> obj foot-pos 2)) - ) - (if (and (logtest? (-> obj foot-flags) 4) (logtest? (-> obj foot-flags) 8)) - (s0-0 s4-0 s1-0 (-> obj foot-pos 2) (-> obj foot-pos 3)) - ) - (if (and (logtest? (-> obj foot-flags) 8) (logtest? (-> obj foot-flags) 1)) - (s0-0 s4-0 s1-0 (-> obj foot-pos 3) (the-as vector (-> obj foot-pos))) - ) - ) - (vector+! s5-0 s5-0 s4-0) - (vector+! s5-0 s5-0 s3-0) - (vector+! s5-0 s5-0 s2-0) + ) + ) + (if (and (logtest? (-> obj foot-flags) 1) (logtest? (-> obj foot-flags) 2)) + (s0-0 s5-0 s1-0 (the-as vector (-> obj foot-pos)) (-> obj foot-pos 1)) + ) + (if (and (logtest? (-> obj foot-flags) 2) (logtest? (-> obj foot-flags) 4)) + (s0-0 s4-0 s1-0 (-> obj foot-pos 1) (-> obj foot-pos 2)) + ) + (if (and (logtest? (-> obj foot-flags) 4) (logtest? (-> obj foot-flags) 8)) + (s0-0 s4-0 s1-0 (-> obj foot-pos 2) (-> obj foot-pos 3)) + ) + (if (and (logtest? (-> obj foot-flags) 8) (logtest? (-> obj foot-flags) 1)) + (s0-0 s4-0 s1-0 (-> obj foot-pos 3) (the-as vector (-> obj foot-pos))) + ) ) + (vector+! s5-0 s5-0 s4-0) + (vector+! s5-0 s5-0 s3-0) + (vector+! s5-0 s5-0 s2-0) ) ) - (vector-normalize! s5-0 1.0) - (let ((s4-1 (new 'stack-no-clear 'quaternion))) - (let ((s0-1 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)))) - (set! (-> s0-1 y) 0.0) - (vector-xz-normalize! s0-1 1.0) - (vector-rotate-y! s5-0 s5-0 (- (vector-y-angle s0-1))) - ) - (quaternion-from-two-vectors-max-angle! s4-1 *up-vector* s5-0 4551.1113) - (quaternion-slerp! (-> obj tilt-quat) (-> obj tilt-quat) s4-1 (* 0.5 (-> pp clock seconds-per-frame))) + ) + (vector-normalize! s5-0 1.0) + (let ((s4-1 (new 'stack-no-clear 'quaternion))) + (let ((s0-1 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)))) + (set! (-> s0-1 y) 0.0) + (vector-xz-normalize! s0-1 1.0) + (vector-rotate-y! s5-0 s5-0 (- (vector-y-angle s0-1))) ) + (quaternion-from-two-vectors-max-angle! s4-1 *up-vector* s5-0 4551.1113) + (quaternion-slerp! (-> obj tilt-quat) (-> obj tilt-quat) s4-1 (* 0.5 (seconds-per-frame))) ) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for function mammoth-joint-mod-tilt @@ -1111,115 +1107,113 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch none vs object. (defun mammoth-leg-ik-callback ((arg0 joint-mod-ik) (arg1 matrix) (arg2 matrix) (arg3 vector)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (let ((s5-0 (new 'stack-no-clear 'vector))) - (set! (-> s5-0 quad) (-> arg3 quad)) - (let ((f30-0 (- (-> arg3 y) (-> arg0 process root trans y)))) - (if (< 6144.0 f30-0) - (set! f30-0 6144.0) - ) - (if (< f30-0 -6144.0) - (set! f30-0 -6144.0) - ) - (let ((s2-0 (-> arg0 user-position))) - (let ((s3-0 (-> arg0 user-position))) - (let ((v1-14 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> arg0 process root quat)))) - (let ((a0-2 f30-0)) - (.mov vf7 a0-2) - ) - (.lvf vf5 (&-> v1-14 quad)) - ) - (.lvf vf4 (&-> s3-0 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> s2-0 quad) vf6) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((s5-0 (new 'stack-no-clear 'vector))) + (set! (-> s5-0 quad) (-> arg3 quad)) + (let ((f30-0 (- (-> arg3 y) (-> arg0 process root trans y)))) + (if (< 6144.0 f30-0) + (set! f30-0 6144.0) ) - ) - (let ((f0-4 (- (-> arg3 y) (-> arg0 user-position y)))) - (seek! (-> arg0 user-float) f0-4 (* 40960.0 (-> pp clock seconds-per-frame))) - ) - (let* ((f0-8 (-> arg0 user-float)) - (f30-1 (lerp-scale 1.0 0.0 f0-8 0.0 12288.0)) - (s3-1 (new 'stack-no-clear 'vector)) - ) - (let ((v1-17 s5-0)) - (let ((a0-5 (-> arg0 user-normal))) - (let ((a1-5 8192.0)) - (.mov vf7 a1-5) + (if (< f30-0 -6144.0) + (set! f30-0 -6144.0) + ) + (let ((s2-0 (-> arg0 user-position))) + (let ((s3-0 (-> arg0 user-position))) + (let ((v1-14 (vector-y-quaternion! (new 'stack-no-clear 'vector) (-> arg0 process root quat)))) + (let ((a0-2 f30-0)) + (.mov vf7 a0-2) ) - (.lvf vf5 (&-> a0-5 quad)) + (.lvf vf5 (&-> v1-14 quad)) ) - (.lvf vf4 (&-> v1-17 quad)) + (.lvf vf4 (&-> s3-0 quad)) ) (.add.x.vf vf6 vf0 vf0 :mask #b1000) (.mul.x.vf acc vf5 vf7 :mask #b111) (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> s3-1 quad) vf6) - (vector-float*! (new 'stack-no-clear 'vector) (-> arg0 user-normal) -16384.0) - (let ((s4-1 (new 'stack-no-clear 'vector))) - 0.0 - (let ((f0-12 (intersect-ray-plane s3-1 (-> arg0 user-normal) (-> arg0 user-position) *up-vector*)) - (a0-8 s4-1) - ) - (let ((v1-20 (-> arg0 user-normal))) - (let ((a1-8 f0-12)) - (.mov vf7 a1-8) - ) - (.lvf vf5 (&-> v1-20 quad)) - ) - (.lvf vf4 (&-> s3-1 quad)) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a0-8 quad) vf6) + (.svf (&-> s2-0 quad) vf6) + ) + ) + (let ((f0-4 (- (-> arg3 y) (-> arg0 user-position y)))) + (seek! (-> arg0 user-float) f0-4 (* 40960.0 (seconds-per-frame))) + ) + (let* ((f0-8 (-> arg0 user-float)) + (f30-1 (lerp-scale 1.0 0.0 f0-8 0.0 12288.0)) + (s3-1 (new 'stack-no-clear 'vector)) + ) + (let ((v1-17 s5-0)) + (let ((a0-5 (-> arg0 user-normal))) + (let ((a1-5 8192.0)) + (.mov vf7 a1-5) ) - (let ((a1-9 s4-1)) - (let ((v1-21 s4-1)) - (let ((a0-9 (-> arg0 user-normal))) - (let ((a2-7 - (- (vector-dot (-> arg0 user-normal) (vector-! (new 'stack-no-clear 'vector) s4-1 (-> arg0 user-position)))) - ) + (.lvf vf5 (&-> a0-5 quad)) + ) + (.lvf vf4 (&-> v1-17 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> s3-1 quad) vf6) + (vector-float*! (new 'stack-no-clear 'vector) (-> arg0 user-normal) -16384.0) + (let ((s4-1 (new 'stack-no-clear 'vector))) + 0.0 + (let ((f0-12 (intersect-ray-plane s3-1 (-> arg0 user-normal) (-> arg0 user-position) *up-vector*)) + (a0-8 s4-1) + ) + (let ((v1-20 (-> arg0 user-normal))) + (let ((a1-8 f0-12)) + (.mov vf7 a1-8) + ) + (.lvf vf5 (&-> v1-20 quad)) + ) + (.lvf vf4 (&-> s3-1 quad)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a0-8 quad) vf6) + ) + (let ((a1-9 s4-1)) + (let ((v1-21 s4-1)) + (let ((a0-9 (-> arg0 user-normal))) + (let ((a2-7 + (- (vector-dot (-> arg0 user-normal) (vector-! (new 'stack-no-clear 'vector) s4-1 (-> arg0 user-position)))) ) - (.mov vf7 a2-7) - ) - (.lvf vf5 (&-> a0-9 quad)) + ) + (.mov vf7 a2-7) ) - (.lvf vf4 (&-> v1-21 quad)) + (.lvf vf5 (&-> a0-9 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-9 quad) vf6) + (.lvf vf4 (&-> v1-21 quad)) ) - (let ((a1-10 s5-0)) - (let ((v1-22 s5-0)) - (let ((a0-11 (vector-! (new 'stack-no-clear 'vector) s4-1 s5-0))) - (let ((a2-10 (fmin 1.0 (* (-> arg0 user-blend) f30-1)))) - (.mov vf7 a2-10) - ) - (.lvf vf5 (&-> a0-11 quad)) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-9 quad) vf6) + ) + (let ((a1-10 s5-0)) + (let ((v1-22 s5-0)) + (let ((a0-11 (vector-! (new 'stack-no-clear 'vector) s4-1 s5-0))) + (let ((a2-10 (fmin 1.0 (* (-> arg0 user-blend) f30-1)))) + (.mov vf7 a2-10) ) - (.lvf vf4 (&-> v1-22 quad)) + (.lvf vf5 (&-> a0-11 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-10 quad) vf6) + (.lvf vf4 (&-> v1-22 quad)) ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-10 quad) vf6) ) ) - (the-as object (handle-copy! arg0 s5-0)) ) + (the-as object (handle-copy! arg0 s5-0)) ) ) ) @@ -1296,7 +1290,7 @@ (set! (-> gp-0 ignore-process1) #f) (fill-using-bounding-box *collide-cache* gp-0) (let ((f0-11 (lerp-scale 1.0 0.0 (- (-> s0-0 y) (-> s5-0 gspot-pos y)) 2048.0 12288.0))) - (seek! (-> s3-0 user-blend) f0-11 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> s3-0 user-blend) f0-11 (* 4.0 (seconds-per-frame))) ) (let ((a1-9 (-> gp-0 start-pos))) (let ((v1-14 s0-0)) @@ -1370,125 +1364,123 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod mammoth-method-184 mammoth ((obj mammoth)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (dotimes (s5-0 4) - (-> obj joint-ik s5-0 shoulder-matrix-no-ik) - (let ((a0-1 (-> obj joint-ik s5-0 elbow-matrix-no-ik)) - (s3-0 (-> *mammoth-ik-setup* s5-0)) - (v1-8 (new 'stack-no-clear 'vector)) - (s1-0 (new 'stack-no-clear 'vector)) - ) - (set! (-> s1-0 quad) (-> *y-vector* quad)) - (new 'stack-no-clear 'vector) - (let ((s4-0 (new 'stack-no-clear 'vector))) - (let ((a2-0 v1-8)) - (let ((a1-4 (-> a0-1 trans))) - (let ((a0-2 (-> a0-1 vector 1))) - (let ((a3-0 (-> s3-0 hand-dist))) - (.mov vf7 a3-0) - ) - (.lvf vf5 (&-> a0-2 quad)) - ) - (.lvf vf4 (&-> a1-4 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a2-0 quad) vf6) - ) - (set! (-> s4-0 quad) (-> v1-8 quad)) - (let ((s2-0 (new 'stack-no-clear 'collide-query)) - (f30-0 (- (- (-> s4-0 y) (-> s3-0 ground-dist)) (-> obj root trans y))) - ) - (when #t - (let ((a1-5 (-> s2-0 bbox)) - (v1-13 s4-0) - (a0-4 (new 'stack-no-clear 'vector)) - ) - (set! (-> a0-4 x) 16384.0) - (set! (-> a0-4 y) 16384.0) - (set! (-> a0-4 z) 16384.0) - (set! (-> a0-4 w) 1.0) - (vector-! (the-as vector a1-5) v1-13 a0-4) - ) - (let ((a1-7 (-> s2-0 bbox max)) - (v1-14 s4-0) - (a0-5 (new 'stack-no-clear 'vector)) - ) - (set! (-> a0-5 x) 16384.0) - (set! (-> a0-5 y) 16384.0) - (set! (-> a0-5 z) 16384.0) - (set! (-> a0-5 w) 1.0) - (vector+! a1-7 v1-14 a0-5) - ) - (set! (-> s2-0 collide-with) (collide-spec backgnd)) - (set! (-> s2-0 ignore-process0) #f) - (set! (-> s2-0 ignore-process1) #f) - (set! (-> s2-0 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (fill-using-bounding-box *collide-cache* s2-0) - (let ((a1-10 (-> s2-0 start-pos))) - (let ((v1-19 s4-0)) - (let ((a0-7 s1-0)) - (let ((a2-10 24576.0)) - (.mov vf7 a2-10) - ) - (.lvf vf5 (&-> a0-7 quad)) - ) - (.lvf vf4 (&-> v1-19 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-10 quad) vf6) - ) - (vector-float*! (-> s2-0 move-dist) s1-0 -49152.0) - (let ((v1-22 s2-0)) - (set! (-> v1-22 radius) (-> s3-0 ground-dist)) - (set! (-> v1-22 collide-with) (collide-spec backgnd)) - (set! (-> v1-22 ignore-process0) #f) - (set! (-> v1-22 ignore-process1) #f) - (set! (-> v1-22 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (set! (-> v1-22 action-mask) (collide-action solid)) - ) - (let ((f0-14 (probe-using-line-sphere *collide-cache* s2-0))) - (when (>= f0-14 0.0) - (let ((v1-26 (new 'stack-no-clear 'vector))) - (let ((a0-13 (-> s2-0 start-pos))) - (let ((a1-12 (-> s2-0 move-dist))) - (let ((a2-11 f0-14)) - (.mov vf7 a2-11) - ) - (.lvf vf5 (&-> a1-12 quad)) - ) - (.lvf vf4 (&-> a0-13 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> v1-26 quad) vf6) - (seek! (-> obj ik-handle-y s5-0) (-> v1-26 y) (* 16384.0 (-> pp clock seconds-per-frame))) - ) - ) - ) - (set! (-> s4-0 y) (+ (-> obj ik-handle-y s5-0) f30-0)) - ) - (set! (-> obj heel-lerp s5-0) (lerp-scale 0.0 1.0 f30-0 0.0 3072.0)) - ) - (handle-copy! (-> obj joint-ik s5-0) s4-0) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (dotimes (s5-0 4) + (-> obj joint-ik s5-0 shoulder-matrix-no-ik) + (let ((a0-1 (-> obj joint-ik s5-0 elbow-matrix-no-ik)) + (s3-0 (-> *mammoth-ik-setup* s5-0)) + (v1-8 (new 'stack-no-clear 'vector)) + (s1-0 (new 'stack-no-clear 'vector)) ) + (set! (-> s1-0 quad) (-> *y-vector* quad)) + (new 'stack-no-clear 'vector) + (let ((s4-0 (new 'stack-no-clear 'vector))) + (let ((a2-0 v1-8)) + (let ((a1-4 (-> a0-1 trans))) + (let ((a0-2 (-> a0-1 vector 1))) + (let ((a3-0 (-> s3-0 hand-dist))) + (.mov vf7 a3-0) + ) + (.lvf vf5 (&-> a0-2 quad)) + ) + (.lvf vf4 (&-> a1-4 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a2-0 quad) vf6) + ) + (set! (-> s4-0 quad) (-> v1-8 quad)) + (let ((s2-0 (new 'stack-no-clear 'collide-query)) + (f30-0 (- (- (-> s4-0 y) (-> s3-0 ground-dist)) (-> obj root trans y))) + ) + (when #t + (let ((a1-5 (-> s2-0 bbox)) + (v1-13 s4-0) + (a0-4 (new 'stack-no-clear 'vector)) + ) + (set! (-> a0-4 x) 16384.0) + (set! (-> a0-4 y) 16384.0) + (set! (-> a0-4 z) 16384.0) + (set! (-> a0-4 w) 1.0) + (vector-! (the-as vector a1-5) v1-13 a0-4) + ) + (let ((a1-7 (-> s2-0 bbox max)) + (v1-14 s4-0) + (a0-5 (new 'stack-no-clear 'vector)) + ) + (set! (-> a0-5 x) 16384.0) + (set! (-> a0-5 y) 16384.0) + (set! (-> a0-5 z) 16384.0) + (set! (-> a0-5 w) 1.0) + (vector+! a1-7 v1-14 a0-5) + ) + (set! (-> s2-0 collide-with) (collide-spec backgnd)) + (set! (-> s2-0 ignore-process0) #f) + (set! (-> s2-0 ignore-process1) #f) + (set! (-> s2-0 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (fill-using-bounding-box *collide-cache* s2-0) + (let ((a1-10 (-> s2-0 start-pos))) + (let ((v1-19 s4-0)) + (let ((a0-7 s1-0)) + (let ((a2-10 24576.0)) + (.mov vf7 a2-10) + ) + (.lvf vf5 (&-> a0-7 quad)) + ) + (.lvf vf4 (&-> v1-19 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-10 quad) vf6) + ) + (vector-float*! (-> s2-0 move-dist) s1-0 -49152.0) + (let ((v1-22 s2-0)) + (set! (-> v1-22 radius) (-> s3-0 ground-dist)) + (set! (-> v1-22 collide-with) (collide-spec backgnd)) + (set! (-> v1-22 ignore-process0) #f) + (set! (-> v1-22 ignore-process1) #f) + (set! (-> v1-22 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (set! (-> v1-22 action-mask) (collide-action solid)) + ) + (let ((f0-14 (probe-using-line-sphere *collide-cache* s2-0))) + (when (>= f0-14 0.0) + (let ((v1-26 (new 'stack-no-clear 'vector))) + (let ((a0-13 (-> s2-0 start-pos))) + (let ((a1-12 (-> s2-0 move-dist))) + (let ((a2-11 f0-14)) + (.mov vf7 a2-11) + ) + (.lvf vf5 (&-> a1-12 quad)) + ) + (.lvf vf4 (&-> a0-13 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> v1-26 quad) vf6) + (seek! (-> obj ik-handle-y s5-0) (-> v1-26 y) (* 16384.0 (seconds-per-frame))) + ) + ) + ) + (set! (-> s4-0 y) (+ (-> obj ik-handle-y s5-0) f30-0)) + ) + (set! (-> obj heel-lerp s5-0) (lerp-scale 0.0 1.0 f30-0 0.0 3072.0)) + ) + (handle-copy! (-> obj joint-ik s5-0) s4-0) ) ) - 0 - (none) ) + 0 + (none) ) ) diff --git a/test/decompiler/reference/jak2/levels/nest/mantis_REF.gc b/test/decompiler/reference/jak2/levels/nest/mantis_REF.gc index 8b3c5d3574..1fec93dd9f 100644 --- a/test/decompiler/reference/jak2/levels/nest/mantis_REF.gc +++ b/test/decompiler/reference/jak2/levels/nest/mantis_REF.gc @@ -692,7 +692,7 @@ #f (until #f (label cfg-9) - (if (or (and (>= (fabs (* 4096.0 (-> self clock seconds-per-frame))) (-> self root transv y)) + (if (or (and (>= (fabs (* 4096.0 (seconds-per-frame))) (-> self root transv y)) (>= (-> self base-height) (-> self root trans y)) ) (logtest? (-> self root status) (collide-status on-ground)) @@ -1544,34 +1544,32 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod mantis-method-193 mantis ((obj mantis) (arg0 vector)) - (with-pp - (cond - ((= (-> obj root gspot-pos y) -40959590.0) - (set! (-> arg0 y) 0.0) - (vector-normalize! arg0 1.0) - (quaternion-set! (-> obj root quat) 0.0 (-> arg0 x) 0.0 (+ 1.0 (-> arg0 z))) - (quaternion-normalize! (-> obj root quat)) - ) - (else - (let ((s4-0 (new 'stack-no-clear 'vector))) - (set! (-> s4-0 quad) (-> *up-vector* quad)) - (let ((s3-0 (new 'stack-no-clear 'quaternion))) - (quaternion-from-two-vectors-max-angle! s3-0 s4-0 (-> obj gspot-normal) 10922.667) - (vector-orient-by-quat! s4-0 s4-0 s3-0) - ) - (let ((s3-1 (-> obj my-up-vector))) - (vector-deg-seek s3-1 s3-1 s4-0 (* 8192.0 (-> pp clock seconds-per-frame))) - (vector-normalize! s3-1 1.0) - (set! (-> arg0 y) 0.0) - (vector-normalize! arg0 1.0) - (forward-up-nopitch->quaternion (-> obj root quat) arg0 s3-1) - ) + (cond + ((= (-> obj root gspot-pos y) -40959590.0) + (set! (-> arg0 y) 0.0) + (vector-normalize! arg0 1.0) + (quaternion-set! (-> obj root quat) 0.0 (-> arg0 x) 0.0 (+ 1.0 (-> arg0 z))) + (quaternion-normalize! (-> obj root quat)) + ) + (else + (let ((s4-0 (new 'stack-no-clear 'vector))) + (set! (-> s4-0 quad) (-> *up-vector* quad)) + (let ((s3-0 (new 'stack-no-clear 'quaternion))) + (quaternion-from-two-vectors-max-angle! s3-0 s4-0 (-> obj gspot-normal) 10922.667) + (vector-orient-by-quat! s4-0 s4-0 s3-0) + ) + (let ((s3-1 (-> obj my-up-vector))) + (vector-deg-seek s3-1 s3-1 s4-0 (* 8192.0 (seconds-per-frame))) + (vector-normalize! s3-1 1.0) + (set! (-> arg0 y) 0.0) + (vector-normalize! arg0 1.0) + (forward-up-nopitch->quaternion (-> obj root quat) arg0 s3-1) ) ) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 142 of type mantis diff --git a/test/decompiler/reference/jak2/levels/nest/nest-obs_REF.gc b/test/decompiler/reference/jak2/levels/nest/nest-obs_REF.gc index 10417ae72f..8f9fd9b809 100644 --- a/test/decompiler/reference/jak2/levels/nest/nest-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/nest/nest-obs_REF.gc @@ -101,23 +101,23 @@ (set! (-> self y-rot-rate) 0.0) (logclear! (-> self mask) (process-mask actor-pause)) (while (< 0.0 (-> self y-delta)) - (seek! (-> self y-rot-rate) 500.0 (* 1000.0 (-> self clock seconds-per-frame))) + (seek! (-> self y-rot-rate) 500.0 (* 1000.0 (seconds-per-frame))) (quaternion-rotate-y! (-> self root quat) (-> self root quat) - (* 182.04445 (-> self clock seconds-per-frame) (-> self y-rot-rate)) + (* 182.04445 (seconds-per-frame) (-> self y-rot-rate)) ) - (seek! (-> self y-delta) 0.0 (* 4096.0 (-> self clock seconds-per-frame) (* 0.006 (-> self y-rot-rate)))) + (seek! (-> self y-delta) 0.0 (* 4096.0 (seconds-per-frame) (* 0.006 (-> self y-rot-rate)))) (set! (-> self root trans y) (+ (-> self y-start) (-> self y-delta))) (suspend) ) (let ((gp-0 (current-time))) (until (>= (- (current-time) gp-0) (seconds 1)) - (seek! (-> self y-rot-rate) 0.0 (* 4000.0 (-> self clock seconds-per-frame))) + (seek! (-> self y-rot-rate) 0.0 (* 4000.0 (seconds-per-frame))) (quaternion-rotate-y! (-> self root quat) (-> self root quat) - (* 182.04445 (-> self clock seconds-per-frame) (-> self y-rot-rate)) + (* 182.04445 (seconds-per-frame) (-> self y-rot-rate)) ) (suspend) ) @@ -255,7 +255,7 @@ This commonly includes things such as: ) ) (while (< (-> self y-offset) 16384.0) - (seek! (-> self y-offset) 16384.0 (* 8192.0 (-> self clock seconds-per-frame))) + (seek! (-> self y-offset) 16384.0 (* 8192.0 (seconds-per-frame))) (set! (-> self root trans y) (+ (-> self y-level) (-> self y-offset))) (suspend) ) diff --git a/test/decompiler/reference/jak2/levels/nest/nest-scenes_REF.gc b/test/decompiler/reference/jak2/levels/nest/nest-scenes_REF.gc index 1b7e27395e..85f5f3b5a1 100644 --- a/test/decompiler/reference/jak2/levels/nest/nest-scenes_REF.gc +++ b/test/decompiler/reference/jak2/levels/nest/nest-scenes_REF.gc @@ -873,7 +873,7 @@ *screen-filter* (new 'static 'vector :x 255.0 :y 255.0 :z 255.0) (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) - (* 128.0 (-> self clock seconds-per-frame)) + (* 128.0 (seconds-per-frame)) (bucket-id screen-filter) ) ) @@ -959,7 +959,7 @@ *screen-filter* (new 'static 'vector :x 255.0 :y 255.0 :z 255.0 :w 128.0) (new 'static 'vector :x 255.0 :y 128.0) - (-> self clock seconds-per-frame) + (seconds-per-frame) (bucket-id screen-filter) ) ) diff --git a/test/decompiler/reference/jak2/levels/palace/boss/squid-setup_REF.gc b/test/decompiler/reference/jak2/levels/palace/boss/squid-setup_REF.gc index ee0e068815..97f97cd143 100644 --- a/test/decompiler/reference/jak2/levels/palace/boss/squid-setup_REF.gc +++ b/test/decompiler/reference/jak2/levels/palace/boss/squid-setup_REF.gc @@ -3173,22 +3173,8 @@ This commonly includes things such as: (set! (-> *part-id-table* 4857 init-specs 10 initial-valuef) 0.0) (draw-beam (-> *part-id-table* 4857) a1-0 s5-1 #f #t) (vector-normalize! s5-1 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-8 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 4858)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s4-1 quad)) - (t9-2 a0-8 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-9 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 4859)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s4-1 quad)) - (t9-3 a0-9 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4858) s4-1) + (launch-particles (-> *part-id-table* 4859) s4-1) ) (let ((s4-2 (new 'stack-no-clear 'matrix)) (f26-0 (* 0.000012207031 f30-0)) @@ -3199,14 +3185,7 @@ This commonly includes things such as: (set! (-> s4-2 trans quad) (-> gp-0 quad)) (set! (-> *part-id-table* 4860 init-specs 3 initial-valuef) (* f26-0 f30-1)) (set! (-> *part-id-table* 4860 init-specs 4 initial-valuef) (* f26-0 f28-0)) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 4860) - s4-2 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 4860) s4-2 :origin-is-matrix #t) (set! (-> *part-id-table* 4860 init-specs 3 initial-valuef) f30-1) (set! (-> *part-id-table* 4860 init-specs 4 initial-valuef) f28-0) ) diff --git a/test/decompiler/reference/jak2/levels/palace/cable/palcab-obs_REF.gc b/test/decompiler/reference/jak2/levels/palace/cable/palcab-obs_REF.gc index 83b2869356..7a6954d1da 100644 --- a/test/decompiler/reference/jak2/levels/palace/cable/palcab-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/palace/cable/palcab-obs_REF.gc @@ -187,7 +187,7 @@ (init-vf0-vector) (let ((v1-0 (-> self root)) (f30-0 4369.067) - (f28-0 (* (-> self rotate-speed) (-> self clock seconds-per-frame))) + (f28-0 (* (-> self rotate-speed) (seconds-per-frame))) (gp-0 (new 'stack-no-clear 'vector)) ) (set! (-> gp-0 x) 1.0) @@ -654,22 +654,8 @@ This commonly includes things such as: (set! (-> *part-id-table* 606 init-specs 10 initial-valuef) f26-0) ) (vector-normalize! s5-1 1.0) - (let ((t9-2 sp-launch-particles-var) - (a0-8 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 607)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s4-1 quad)) - (t9-2 a0-8 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-9 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 608)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> s4-1 quad)) - (t9-3 a0-9 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 607) s4-1) + (launch-particles (-> *part-id-table* 608) s4-1) ) (let ((s4-2 (new 'stack-no-clear 'matrix)) (f22-0 (* 0.000027126736 f30-0)) @@ -684,14 +670,7 @@ This commonly includes things such as: (set! (-> *part-id-table* 609 init-specs 4 initial-valuef) (* f22-0 f28-1)) (set! (-> *part-id-table* 609 init-specs 1 initial-valuef) 1.0) (set! (-> *part-id-table* 609 init-specs 1 random-rangef) 1.0) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 609) - s4-2 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 609) s4-2 :origin-is-matrix #t) (set! (-> *part-id-table* 609 init-specs 3 initial-valuef) f30-1) (set! (-> *part-id-table* 609 init-specs 4 initial-valuef) f28-1) (set! (-> *part-id-table* 609 init-specs 1 initial-valuef) f26-1) @@ -947,12 +926,8 @@ This commonly includes things such as: ) :code (the-as (function none :behavior pal-rot-gun) sleep-code) :post (behavior () - (seek! (-> self spin-rate) (-> self spin-rate-final) (* 3640.889 (-> self clock seconds-per-frame))) - (quaternion-rotate-z! - (-> self root quat) - (-> self root quat) - (* (-> self spin-rate) (-> self clock seconds-per-frame)) - ) + (seek! (-> self spin-rate) (-> self spin-rate-final) (* 3640.889 (seconds-per-frame))) + (quaternion-rotate-z! (-> self root quat) (-> self root quat) (* (-> self spin-rate) (seconds-per-frame))) (let ((f30-0 1.0)) (when (>= (- (current-time) (-> self fire-timer)) (seconds 0.05)) (let ((gp-0 (new 'stack-no-clear 'matrix))) @@ -1024,12 +999,8 @@ This commonly includes things such as: ) :code (the-as (function none :behavior pal-rot-gun) sleep-code) :post (behavior () - (seek! (-> self spin-rate) 0.0 (* 3640.889 (-> self clock seconds-per-frame))) - (quaternion-rotate-z! - (-> self root quat) - (-> self root quat) - (* (-> self spin-rate) (-> self clock seconds-per-frame)) - ) + (seek! (-> self spin-rate) 0.0 (* 3640.889 (seconds-per-frame))) + (quaternion-rotate-z! (-> self root quat) (-> self root quat) (* (-> self spin-rate) (seconds-per-frame))) (let ((f30-1 (+ 32768.0 (the float (sar (shl (the int (quaternion-z-angle (-> self root quat))) 48) 48))))) (let ((f0-10 (-> self prev-z-rot))) (if (or (and (< f0-10 32768.0) (< 32768.0 f30-1)) (< f30-1 f0-10)) diff --git a/test/decompiler/reference/jak2/levels/palace/pal-obs_REF.gc b/test/decompiler/reference/jak2/levels/palace/pal-obs_REF.gc index 7c6322d690..a58841273f 100644 --- a/test/decompiler/reference/jak2/levels/palace/pal-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/palace/pal-obs_REF.gc @@ -589,8 +589,8 @@ This commonly includes things such as: (none) ) :trans (behavior () - (+! (-> self speed-y) (* -163840.0 (-> self clock seconds-per-frame))) - (+! (-> self root trans y) (* (-> self speed-y) (-> self clock seconds-per-frame))) + (+! (-> self speed-y) (* -163840.0 (seconds-per-frame))) + (+! (-> self root trans y) (* (-> self speed-y) (seconds-per-frame))) (when (< (-> self root trans y) 1441792.0) (when (not (-> self hit-sound-played?)) (sound-play "grind-ring-hit") diff --git a/test/decompiler/reference/jak2/levels/palace/roof/palboss-scenes_REF.gc b/test/decompiler/reference/jak2/levels/palace/roof/palboss-scenes_REF.gc index 621009b9ea..97258fa6a4 100644 --- a/test/decompiler/reference/jak2/levels/palace/roof/palboss-scenes_REF.gc +++ b/test/decompiler/reference/jak2/levels/palace/roof/palboss-scenes_REF.gc @@ -595,22 +595,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 vector 0 x) (-> arg2 vector 0 y) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 4806)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 4807)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4806) gp-0) + (launch-particles (-> *part-id-table* 4807) gp-0) ) (none) ) diff --git a/test/decompiler/reference/jak2/levels/palace/roof/palroof-part_REF.gc b/test/decompiler/reference/jak2/levels/palace/roof/palroof-part_REF.gc index 99100561bc..0dcc38d40a 100644 --- a/test/decompiler/reference/jak2/levels/palace/roof/palroof-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/palace/roof/palroof-part_REF.gc @@ -214,22 +214,8 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 4758)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-3d*) - (a1-3 (-> *part-id-table* 4759)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 4758) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 4759) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/test/decompiler/reference/jak2/levels/palace/throne/metalkor-texture_REF.gc b/test/decompiler/reference/jak2/levels/palace/throne/metalkor-texture_REF.gc index 7c1e1bc452..c151974a86 100644 --- a/test/decompiler/reference/jak2/levels/palace/throne/metalkor-texture_REF.gc +++ b/test/decompiler/reference/jak2/levels/palace/throne/metalkor-texture_REF.gc @@ -135,77 +135,75 @@ ;; definition for function metkor-texture-anim-func ;; WARN: Return type mismatch int vs none. (defun metkor-texture-anim-func () - (with-pp - (let ((gp-0 *metkor-texture-anim-array*)) - (when (not (paused?)) - (let ((s5-0 (-> gp-0 array-data 0 data 0))) - (cond - ((= (-> s5-0 extra x) 0.0) - (cond - ((>= 0.0 (-> s5-0 extra y)) - (set! (-> s5-0 extra y) (rand-vu-float-range 150.0 300.0)) - (set! (-> s5-0 extra z) (-> s5-0 extra y)) - (set! (-> s5-0 extra w) (rand-vu-float-range 0.1 0.5)) - (set! (-> s5-0 extra x) 1.0) - ) - (else - (set! (-> s5-0 extra y) (- (-> s5-0 extra y) (* 300.0 (-> pp clock seconds-per-frame)))) - ) + (let ((gp-0 *metkor-texture-anim-array*)) + (when (not (paused?)) + (let ((s5-0 (-> gp-0 array-data 0 data 0))) + (cond + ((= (-> s5-0 extra x) 0.0) + (cond + ((>= 0.0 (-> s5-0 extra y)) + (set! (-> s5-0 extra y) (rand-vu-float-range 150.0 300.0)) + (set! (-> s5-0 extra z) (-> s5-0 extra y)) + (set! (-> s5-0 extra w) (rand-vu-float-range 0.1 0.5)) + (set! (-> s5-0 extra x) 1.0) + ) + (else + (set! (-> s5-0 extra y) (- (-> s5-0 extra y) (* 300.0 (seconds-per-frame)))) ) ) - ((= (-> s5-0 extra x) 1.0) - (cond - ((>= 0.0 (-> s5-0 extra y)) - (set! (-> s5-0 extra y) (rand-vu-float-range 300.0 600.0)) - (set! (-> s5-0 extra x) 0.0) - ) - (else - (let ((f0-16 (+ 0.1 (* (-> s5-0 extra w) (sin (* 32768.0 (/ (-> s5-0 extra y) (-> s5-0 extra z)))))))) - (set-vector! (-> s5-0 start-color) (* 0.5 f0-16) (* 0.7 f0-16) f0-16 1.0) - (set-vector! (-> s5-0 end-color) (* 0.5 f0-16) (* 0.7 f0-16) f0-16 1.0) - ) - (set! (-> s5-0 extra y) (- (-> s5-0 extra y) (* 300.0 (-> pp clock seconds-per-frame)))) + ) + ((= (-> s5-0 extra x) 1.0) + (cond + ((>= 0.0 (-> s5-0 extra y)) + (set! (-> s5-0 extra y) (rand-vu-float-range 300.0 600.0)) + (set! (-> s5-0 extra x) 0.0) + ) + (else + (let ((f0-16 (+ 0.1 (* (-> s5-0 extra w) (sin (* 32768.0 (/ (-> s5-0 extra y) (-> s5-0 extra z)))))))) + (set-vector! (-> s5-0 start-color) (* 0.5 f0-16) (* 0.7 f0-16) f0-16 1.0) + (set-vector! (-> s5-0 end-color) (* 0.5 f0-16) (* 0.7 f0-16) f0-16 1.0) ) + (set! (-> s5-0 extra y) (- (-> s5-0 extra y) (* 300.0 (seconds-per-frame)))) ) ) - ) + ) ) - (let ((gp-1 (-> gp-0 array-data 0 data 1))) - (cond - ((= (-> gp-1 extra x) 0.0) - (cond - ((>= 0.0 (-> gp-1 extra y)) - (set! (-> gp-1 extra y) (rand-vu-float-range 75.0 150.0)) - (set! (-> gp-1 extra z) (-> gp-1 extra y)) - (set! (-> gp-1 extra x) 1.0) - ) - (else - (set! (-> gp-1 start-st-offset y) 0.0) - (set! (-> gp-1 end-st-offset y) 0.0) - (set! (-> gp-1 extra y) (- (-> gp-1 extra y) (* 300.0 (-> pp clock seconds-per-frame)))) - ) + ) + (let ((gp-1 (-> gp-0 array-data 0 data 1))) + (cond + ((= (-> gp-1 extra x) 0.0) + (cond + ((>= 0.0 (-> gp-1 extra y)) + (set! (-> gp-1 extra y) (rand-vu-float-range 75.0 150.0)) + (set! (-> gp-1 extra z) (-> gp-1 extra y)) + (set! (-> gp-1 extra x) 1.0) + ) + (else + (set! (-> gp-1 start-st-offset y) 0.0) + (set! (-> gp-1 end-st-offset y) 0.0) + (set! (-> gp-1 extra y) (- (-> gp-1 extra y) (* 300.0 (seconds-per-frame)))) ) ) - ((= (-> gp-1 extra x) 1.0) - (cond - ((>= 0.0 (-> gp-1 extra y)) - (set! (-> gp-1 extra y) (rand-vu-float-range 300.0 600.0)) - (set! (-> gp-1 extra x) 0.0) - ) - (else - (let ((f0-34 (- 1.0 (/ (-> gp-1 extra y) (-> gp-1 extra z))))) - (set! (-> gp-1 start-st-offset y) f0-34) - (set! (-> gp-1 end-st-offset y) f0-34) - ) - (set! (-> gp-1 extra y) (- (-> gp-1 extra y) (* 300.0 (-> pp clock seconds-per-frame)))) + ) + ((= (-> gp-1 extra x) 1.0) + (cond + ((>= 0.0 (-> gp-1 extra y)) + (set! (-> gp-1 extra y) (rand-vu-float-range 300.0 600.0)) + (set! (-> gp-1 extra x) 0.0) + ) + (else + (let ((f0-34 (- 1.0 (/ (-> gp-1 extra y) (-> gp-1 extra z))))) + (set! (-> gp-1 start-st-offset y) f0-34) + (set! (-> gp-1 end-st-offset y) f0-34) ) + (set! (-> gp-1 extra y) (- (-> gp-1 extra y) (* 300.0 (seconds-per-frame)))) ) ) - ) + ) ) ) ) - 0 - (none) ) + 0 + (none) ) diff --git a/test/decompiler/reference/jak2/levels/palace/throne/palace-scenes_REF.gc b/test/decompiler/reference/jak2/levels/palace/throne/palace-scenes_REF.gc index e6ff64d2cf..2a8253e50b 100644 --- a/test/decompiler/reference/jak2/levels/palace/throne/palace-scenes_REF.gc +++ b/test/decompiler/reference/jak2/levels/palace/throne/palace-scenes_REF.gc @@ -272,23 +272,9 @@ This commonly includes things such as: (set! (-> s5-0 trans quad) (-> s4-0 quad)) (set! (-> *part-id-table* 4934 init-specs 22 initial-valuef) (vector-y-angle (-> s5-0 vector 1))) (set! (-> *part-id-table* 4934 init-specs 21 initial-valuef) (- 16384.0 (vector-x-angle (-> s5-0 vector 1)))) - (sp-launch-particles-var - *sp-particle-system-2d* - (-> *part-id-table* 4934) - s5-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles (-> *part-id-table* 4934) s5-0 :origin-is-matrix #t) (set! (-> *part-id-table* 64 init-specs 10 initial-valuef) (-> arg1 omega)) - (sp-launch-particles-var - *sp-particle-system-3d* - (-> *part-id-table* 64) - s5-0 - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 64) s5-0 :origin-is-matrix #t) ) ) (none) diff --git a/test/decompiler/reference/jak2/levels/ruins/mechtest-obs_REF.gc b/test/decompiler/reference/jak2/levels/ruins/mechtest-obs_REF.gc index 38320ec3f1..d099d89fef 100644 --- a/test/decompiler/reference/jak2/levels/ruins/mechtest-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/ruins/mechtest-obs_REF.gc @@ -182,7 +182,7 @@ (s3-0 (new 'stack-no-clear 'vector)) ) (.lvf vf1 (&-> (-> s4-0 transv) quad)) - (let ((f0-0 (-> self clock seconds-per-frame))) + (let ((f0-0 (seconds-per-frame))) (.mov at-0 f0-0) ) (.mov vf2 at-0) diff --git a/test/decompiler/reference/jak2/levels/ruins/rapid-gunner_REF.gc b/test/decompiler/reference/jak2/levels/ruins/rapid-gunner_REF.gc index 09f258de36..4b4a805f81 100644 --- a/test/decompiler/reference/jak2/levels/ruins/rapid-gunner_REF.gc +++ b/test/decompiler/reference/jak2/levels/ruins/rapid-gunner_REF.gc @@ -772,7 +772,7 @@ (none) ) :trans (behavior () - (seek! (-> self joint-blend) 0.95 (-> self clock seconds-per-frame)) + (seek! (-> self joint-blend) 0.95 (seconds-per-frame)) (let ((gp-0 (handle->process (-> self focus handle)))) (if (not gp-0) (go-virtual hostile) @@ -1080,7 +1080,7 @@ (none) ) :trans (behavior () - (seek! (-> self joint-blend) 0.0 (-> self clock seconds-per-frame)) + (seek! (-> self joint-blend) 0.0 (seconds-per-frame)) (when (enemy-method-96 self 6371.5557 #t) (rapid-gunner-method-185 self (-> self target-next-pos) 24.0) (when (skip-check-los? (-> self los) 30) diff --git a/test/decompiler/reference/jak2/levels/ruins/ruins-part_REF.gc b/test/decompiler/reference/jak2/levels/ruins/ruins-part_REF.gc index 2f726f6075..f857549db4 100644 --- a/test/decompiler/reference/jak2/levels/ruins/ruins-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/ruins/ruins-part_REF.gc @@ -158,30 +158,9 @@ (let ((vec (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! vec (-> arg2 vector 0 x) f30-0 (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 1255)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> vec quad)) - (t9-1 a0-2 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 1256)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> vec quad)) - (t9-2 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 1257)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> vec quad)) - (t9-3 a0-4 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1255) vec) + (launch-particles (-> *part-id-table* 1256) vec) + (launch-particles (-> *part-id-table* 1257) vec) ) ) ) @@ -1194,14 +1173,7 @@ TODO - check argument types / what birds?" (let ((vec (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! vec (-> arg2 x) (-> arg1 user-float) (-> arg2 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-3d*) - (a1-2 (-> *part-id-table* 1291)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> vec quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 1291) vec) ) ) (sparticle-motion-blur arg0 arg1 arg2) diff --git a/test/decompiler/reference/jak2/levels/ruins/ruins-scenes_REF.gc b/test/decompiler/reference/jak2/levels/ruins/ruins-scenes_REF.gc index 81f45c60fb..c262902db3 100644 --- a/test/decompiler/reference/jak2/levels/ruins/ruins-scenes_REF.gc +++ b/test/decompiler/reference/jak2/levels/ruins/ruins-scenes_REF.gc @@ -128,21 +128,7 @@ "Generates simple sparks (2D particles) at the location specified. This is used in the cutscene. @param position The position to render the sparks at TODO - first arg type?" - (let ((launch-func sp-launch-particles-var) - (2d-sys *sp-particle-system-2d*) - (sp-launcher (-> *part-id-table* 1247)) - (matrix *launch-matrix*) - ) - (set! (-> matrix trans quad) (-> position quad)) - (launch-func - 2d-sys - sp-launcher - matrix - (the-as sparticle-launch-state #f) - (the-as sparticle-launch-control #f) - 1.0 - ) - ) + (launch-particles (-> *part-id-table* 1247) position) 0 (none) ) diff --git a/test/decompiler/reference/jak2/levels/sewer/escort/grim_REF.gc b/test/decompiler/reference/jak2/levels/sewer/escort/grim_REF.gc index 00e33f0721..e10f2c3312 100644 --- a/test/decompiler/reference/jak2/levels/sewer/escort/grim_REF.gc +++ b/test/decompiler/reference/jak2/levels/sewer/escort/grim_REF.gc @@ -99,7 +99,7 @@ (ruffian-method-245 obj) (let ((f30-0 (-> obj nav state speed))) (let ((f0-1 (lerp-scale 0.0 1.0 f30-0 12288.0 40960.0))) - (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (-> pp clock seconds-per-frame))) + (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (seconds-per-frame))) ) (let ((f28-0 (-> obj travel-anim-interp)) (v1-9 (if (> (-> obj skel active-channels) 0) diff --git a/test/decompiler/reference/jak2/levels/sewer/escort/jinx_REF.gc b/test/decompiler/reference/jak2/levels/sewer/escort/jinx_REF.gc index 4e52c10615..b14a7def31 100644 --- a/test/decompiler/reference/jak2/levels/sewer/escort/jinx_REF.gc +++ b/test/decompiler/reference/jak2/levels/sewer/escort/jinx_REF.gc @@ -419,7 +419,7 @@ (ruffian-method-245 obj) (let ((f30-0 (-> obj nav state speed))) (let ((f0-1 (lerp-scale 0.0 1.0 f30-0 12288.0 40960.0))) - (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (-> pp clock seconds-per-frame))) + (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (seconds-per-frame))) ) (let ((f28-0 (-> obj travel-anim-interp)) (v1-9 (if (> (-> obj skel active-channels) 0) @@ -851,7 +851,3 @@ 0 (none) ) - - - - diff --git a/test/decompiler/reference/jak2/levels/sewer/escort/mog_REF.gc b/test/decompiler/reference/jak2/levels/sewer/escort/mog_REF.gc index 4b48a0f0d9..54f6c2e9bb 100644 --- a/test/decompiler/reference/jak2/levels/sewer/escort/mog_REF.gc +++ b/test/decompiler/reference/jak2/levels/sewer/escort/mog_REF.gc @@ -295,7 +295,7 @@ (ruffian-method-245 obj) (let ((f30-0 (-> obj nav state speed))) (let ((f0-1 (lerp-scale 0.0 1.0 f30-0 12288.0 40960.0))) - (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (-> pp clock seconds-per-frame))) + (seek! (-> obj travel-anim-interp) f0-1 (* 4.0 (seconds-per-frame))) ) (let ((f28-0 (-> obj travel-anim-interp)) (v1-9 (if (> (-> obj skel active-channels) 0) diff --git a/test/decompiler/reference/jak2/levels/sewer/hosehead-fake_REF.gc b/test/decompiler/reference/jak2/levels/sewer/hosehead-fake_REF.gc index 74551bff8e..70b450ccba 100644 --- a/test/decompiler/reference/jak2/levels/sewer/hosehead-fake_REF.gc +++ b/test/decompiler/reference/jak2/levels/sewer/hosehead-fake_REF.gc @@ -315,12 +315,7 @@ :virtual #t :event hosehead-fake-event-handler :trans (behavior () - (vector-seek-3d-smooth! - (-> self root trans) - (-> self walk-dest) - (* 24576.0 (-> self clock seconds-per-frame)) - 0.8 - ) + (vector-seek-3d-smooth! (-> self root trans) (-> self walk-dest) (* 24576.0 (seconds-per-frame)) 0.8) (let ((f0-2 409.6)) (if (>= (* f0-2 f0-2) (vector-vector-distance-squared (-> self root trans) (-> self walk-dest))) (go-virtual idle) @@ -635,7 +630,3 @@ ) #f ) - - - - diff --git a/test/decompiler/reference/jak2/levels/sewer/hosehead_REF.gc b/test/decompiler/reference/jak2/levels/sewer/hosehead_REF.gc index 2a22fc39e9..d4dcda7033 100644 --- a/test/decompiler/reference/jak2/levels/sewer/hosehead_REF.gc +++ b/test/decompiler/reference/jak2/levels/sewer/hosehead_REF.gc @@ -436,7 +436,6 @@ ) ;; definition for method 3 of type ik-setup -;; INFO: this function exists in multiple non-identical object files (defmethod inspect ik-setup ((obj ik-setup)) (when (not obj) (set! obj obj) @@ -785,7 +784,7 @@ (s5-0 (new 'stack-no-clear 'vector)) (s4-0 (new 'stack-no-clear 'vector)) ) - (seek! (-> obj lazer-length) 327680.0 (* 327680.0 (-> pp clock seconds-per-frame))) + (seek! (-> obj lazer-length) 327680.0 (* 327680.0 (seconds-per-frame))) (vector-normalize-copy! s5-0 (-> s2-0 vector 1) (-> obj lazer-length)) (matrix->trans s2-0 s4-0) (set! (-> obj lazer-dist) @@ -842,22 +841,8 @@ ) (set! (-> *part-id-table* 1455 init-specs 4 initial-valuef) (vector-length s5-0)) (draw-beam (-> *part-id-table* 1455) s4-0 s5-0 #f #t) - (let ((t9-10 sp-launch-particles-var) - (a0-25 *sp-particle-system-2d*) - (a1-12 (-> *part-id-table* 1456)) - (a2-9 *launch-matrix*) - ) - (set! (-> a2-9 trans quad) (-> s4-0 quad)) - (t9-10 a0-25 a1-12 a2-9 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-11 sp-launch-particles-var) - (a0-26 *sp-particle-system-2d*) - (a1-13 (-> *part-id-table* 1457)) - (a2-10 *launch-matrix*) - ) - (set! (-> a2-10 trans quad) (-> (vector+! (new 'stack-no-clear 'vector) s5-0 s4-0) quad)) - (t9-11 a0-26 a1-13 a2-10 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1456) s4-0) + (launch-particles (-> *part-id-table* 1457) (vector+! (new 'stack-no-clear 'vector) s5-0 s4-0)) ) ) (let ((s5-1 sound-play-by-spec) @@ -934,120 +919,118 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch vector vs none. (defmethod hosehead-method-186 hosehead ((obj hosehead)) - (with-pp - (rlet ((acc :class vf) - (vf0 :class vf) - (vf4 :class vf) - (vf5 :class vf) - (vf6 :class vf) - (vf7 :class vf) - ) - (init-vf0-vector) - (let ((s3-0 (new 'stack-no-clear 'collide-query)) - (gp-0 (new 'stack-no-clear 'vector)) - (s5-0 (new 'stack-no-clear 'vector)) - ) - (let ((s2-0 gp-0)) - (let ((s1-0 (-> obj root trans))) - (let ((v1-2 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)))) - (let ((a0-3 8192.0)) - (.mov vf7 a0-3) - ) - (.lvf vf5 (&-> v1-2 quad)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((s3-0 (new 'stack-no-clear 'collide-query)) + (gp-0 (new 'stack-no-clear 'vector)) + (s5-0 (new 'stack-no-clear 'vector)) + ) + (let ((s2-0 gp-0)) + (let ((s1-0 (-> obj root trans))) + (let ((v1-2 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)))) + (let ((a0-3 8192.0)) + (.mov vf7 a0-3) ) - (.lvf vf4 (&-> s1-0 quad)) + (.lvf vf5 (&-> v1-2 quad)) ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> s2-0 quad) vf6) + (.lvf vf4 (&-> s1-0 quad)) ) - (set! (-> s5-0 quad) (-> gp-0 quad)) - (+! (-> gp-0 y) -8192.0) - (+! (-> s5-0 y) 8192.0) - (set! (-> s3-0 start-pos quad) (-> gp-0 quad)) - (vector-float*! - (-> s3-0 move-dist) - (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)) - -16384.0 - ) - (let ((v1-9 s3-0)) - (set! (-> v1-9 radius) 40.96) - (set! (-> v1-9 collide-with) (collide-spec backgnd)) - (set! (-> v1-9 ignore-process0) #f) - (set! (-> v1-9 ignore-process1) #f) - (set! (-> v1-9 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (set! (-> v1-9 action-mask) (collide-action solid)) - ) - (let ((f0-7 (fill-and-probe-using-line-sphere *collide-cache* s3-0))) - (when (>= f0-7 0.0) - (let ((a1-4 gp-0)) - (let ((v1-12 gp-0)) - (let ((a0-15 (-> s3-0 move-dist))) - (let ((a2-0 f0-7)) - (.mov vf7 a2-0) - ) - (.lvf vf5 (&-> a0-15 quad)) - ) - (.lvf vf4 (&-> v1-12 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a1-4 quad) vf6) - ) - ) - ) - (set! (-> s3-0 start-pos quad) (-> s5-0 quad)) - (vector-float*! - (-> s3-0 move-dist) - (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)) - -16384.0 - ) - (let ((v1-16 s3-0)) - (set! (-> v1-16 radius) 40.96) - (set! (-> v1-16 collide-with) (collide-spec backgnd)) - (set! (-> v1-16 ignore-process0) #f) - (set! (-> v1-16 ignore-process1) #f) - (set! (-> v1-16 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) - (set! (-> v1-16 action-mask) (collide-action solid)) - ) - (let ((f0-10 (fill-and-probe-using-line-sphere *collide-cache* s3-0))) - (when (>= f0-10 0.0) - (let ((a0-26 s5-0)) - (let ((v1-19 s5-0)) - (let ((a1-7 (-> s3-0 move-dist))) - (let ((a2-1 f0-10)) - (.mov vf7 a2-1) - ) - (.lvf vf5 (&-> a1-7 quad)) - ) - (.lvf vf4 (&-> v1-19 quad)) - ) - (.add.x.vf vf6 vf0 vf0 :mask #b1000) - (.mul.x.vf acc vf5 vf7 :mask #b111) - (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) - (.svf (&-> a0-26 quad) vf6) - ) - ) - ) - (let ((s2-6 (vector-! (new 'stack-no-clear 'vector) gp-0 s5-0)) - (s1-1 (vector-x-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) - (s3-1 (new 'stack-no-clear 'quaternion)) - ) - (let ((s0-0 (new 'stack-no-clear 'matrix))) - (vector-normalize! s2-6 1.0) - (quaternion-vector-angle! s3-1 s1-1 -16384.0) - (quaternion->matrix s0-0 s3-1) - (vector-rotate*! s2-6 s2-6 s0-0) - ) - (quaternion-look-at! s3-1 s2-6 *up-vector*) - (quaternion-pseudo-seek (-> obj root quat) (-> obj root quat) s3-1 (-> pp clock seconds-per-frame)) - ) - (vector-average! (-> obj root trans) gp-0 s5-0) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> s2-0 quad) vf6) ) - (none) + (set! (-> s5-0 quad) (-> gp-0 quad)) + (+! (-> gp-0 y) -8192.0) + (+! (-> s5-0 y) 8192.0) + (set! (-> s3-0 start-pos quad) (-> gp-0 quad)) + (vector-float*! + (-> s3-0 move-dist) + (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)) + -16384.0 + ) + (let ((v1-9 s3-0)) + (set! (-> v1-9 radius) 40.96) + (set! (-> v1-9 collide-with) (collide-spec backgnd)) + (set! (-> v1-9 ignore-process0) #f) + (set! (-> v1-9 ignore-process1) #f) + (set! (-> v1-9 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (set! (-> v1-9 action-mask) (collide-action solid)) + ) + (let ((f0-7 (fill-and-probe-using-line-sphere *collide-cache* s3-0))) + (when (>= f0-7 0.0) + (let ((a1-4 gp-0)) + (let ((v1-12 gp-0)) + (let ((a0-15 (-> s3-0 move-dist))) + (let ((a2-0 f0-7)) + (.mov vf7 a2-0) + ) + (.lvf vf5 (&-> a0-15 quad)) + ) + (.lvf vf4 (&-> v1-12 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-4 quad) vf6) + ) + ) + ) + (set! (-> s3-0 start-pos quad) (-> s5-0 quad)) + (vector-float*! + (-> s3-0 move-dist) + (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat)) + -16384.0 + ) + (let ((v1-16 s3-0)) + (set! (-> v1-16 radius) 40.96) + (set! (-> v1-16 collide-with) (collide-spec backgnd)) + (set! (-> v1-16 ignore-process0) #f) + (set! (-> v1-16 ignore-process1) #f) + (set! (-> v1-16 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1)) + (set! (-> v1-16 action-mask) (collide-action solid)) + ) + (let ((f0-10 (fill-and-probe-using-line-sphere *collide-cache* s3-0))) + (when (>= f0-10 0.0) + (let ((a0-26 s5-0)) + (let ((v1-19 s5-0)) + (let ((a1-7 (-> s3-0 move-dist))) + (let ((a2-1 f0-10)) + (.mov vf7 a2-1) + ) + (.lvf vf5 (&-> a1-7 quad)) + ) + (.lvf vf4 (&-> v1-19 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a0-26 quad) vf6) + ) + ) + ) + (let ((s2-6 (vector-! (new 'stack-no-clear 'vector) gp-0 s5-0)) + (s1-1 (vector-x-quaternion! (new 'stack-no-clear 'vector) (-> obj root quat))) + (s3-1 (new 'stack-no-clear 'quaternion)) + ) + (let ((s0-0 (new 'stack-no-clear 'matrix))) + (vector-normalize! s2-6 1.0) + (quaternion-vector-angle! s3-1 s1-1 -16384.0) + (quaternion->matrix s0-0 s3-1) + (vector-rotate*! s2-6 s2-6 s0-0) + ) + (quaternion-look-at! s3-1 s2-6 *up-vector*) + (quaternion-pseudo-seek (-> obj root quat) (-> obj root quat) s3-1 (seconds-per-frame)) + ) + (vector-average! (-> obj root trans) gp-0 s5-0) ) + (none) ) ) @@ -1780,7 +1763,7 @@ :frame-num 0.0 ) (until (ja-done? 0) - (set! (-> self root trans y) (- (-> self root trans y) (* 36864.0 (-> self clock seconds-per-frame)))) + (set! (-> self root trans y) (- (-> self root trans y) (* 36864.0 (seconds-per-frame)))) (hosehead-method-186 self) (suspend) (ja :num! (seek! max 1.5)) @@ -1952,7 +1935,7 @@ (goto cfg-13) ) (suspend) - (+! (-> self head-angle) (* (-> self head-angle-inc) (-> self clock seconds-per-frame))) + (+! (-> self head-angle) (* (-> self head-angle-inc) (seconds-per-frame))) ) ) #f @@ -2198,59 +2181,45 @@ ;; WARN: Return type mismatch int vs none. (defmethod hosehead-method-187 hosehead ((obj hosehead) (arg0 vector)) (local-vars (sv-128 vector)) - (with-pp - (set! sv-128 (new 'stack-no-clear 'vector)) - (let ((s3-0 (new 'stack-no-clear 'vector)) - (s1-0 (new 'stack-no-clear 'vector)) - (s0-0 (new 'stack-no-clear 'vector)) - (s4-0 (new 'stack-no-clear 'vector)) - (s5-0 (new 'stack-no-clear 'vector)) - ) - (let ((a0-1 (-> obj node-list data 9 bone transform))) - (matrix->trans a0-1 s1-0) - ) - (vector-z-quaternion! s0-0 (-> obj root quat)) - (vector-! sv-128 arg0 s1-0) - (vector-normalize! sv-128 1.0) - (rot-zxy-from-vector! s4-0 s0-0) - (rot-zxy-from-vector! s3-0 sv-128) - (set! (-> s5-0 x) (fmax -1820.4445 (fmin 1820.4445 (deg- (-> s3-0 x) (-> s4-0 x))))) - (set! (-> s5-0 y) (fmax -3640.889 (fmin 3640.889 (deg- (-> s3-0 y) (-> s4-0 y))))) - (set! (-> s5-0 z) 0.0) - (if (not (logtest? (enemy-flag dislike-combo) (-> obj enemy-flags))) - (set! (-> s5-0 y) (- (-> s5-0 y))) - ) - (+! (-> s5-0 y) (-> obj head-angle)) - (let ((s4-1 (new 'stack-no-clear 'quaternion))) - (quaternion-zxy! s4-1 s5-0) - (quaternion-pseudo-seek - (-> obj head-joint-mod quat) - (-> obj head-joint-mod quat) - s4-1 - (-> pp clock seconds-per-frame) - ) + (set! sv-128 (new 'stack-no-clear 'vector)) + (let ((s3-0 (new 'stack-no-clear 'vector)) + (s1-0 (new 'stack-no-clear 'vector)) + (s0-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + (s5-0 (new 'stack-no-clear 'vector)) ) + (let ((a0-1 (-> obj node-list data 9 bone transform))) + (matrix->trans a0-1 s1-0) + ) + (vector-z-quaternion! s0-0 (-> obj root quat)) + (vector-! sv-128 arg0 s1-0) + (vector-normalize! sv-128 1.0) + (rot-zxy-from-vector! s4-0 s0-0) + (rot-zxy-from-vector! s3-0 sv-128) + (set! (-> s5-0 x) (fmax -1820.4445 (fmin 1820.4445 (deg- (-> s3-0 x) (-> s4-0 x))))) + (set! (-> s5-0 y) (fmax -3640.889 (fmin 3640.889 (deg- (-> s3-0 y) (-> s4-0 y))))) + (set! (-> s5-0 z) 0.0) + (if (not (logtest? (enemy-flag dislike-combo) (-> obj enemy-flags))) + (set! (-> s5-0 y) (- (-> s5-0 y))) + ) + (+! (-> s5-0 y) (-> obj head-angle)) + (let ((s4-1 (new 'stack-no-clear 'quaternion))) + (quaternion-zxy! s4-1 s5-0) + (quaternion-pseudo-seek (-> obj head-joint-mod quat) (-> obj head-joint-mod quat) s4-1 (seconds-per-frame)) ) - 0 - (none) ) + 0 + (none) ) ;; definition for method 188 of type hosehead ;; WARN: Return type mismatch quaternion vs none. (defmethod hosehead-method-188 hosehead ((obj hosehead)) - (with-pp - (let ((gp-0 (new 'stack-no-clear 'quaternion))) - (quaternion-identity! gp-0) - (quaternion-pseudo-seek - (-> obj head-joint-mod quat) - (-> obj head-joint-mod quat) - gp-0 - (-> pp clock seconds-per-frame) - ) - ) - (none) + (let ((gp-0 (new 'stack-no-clear 'quaternion))) + (quaternion-identity! gp-0) + (quaternion-pseudo-seek (-> obj head-joint-mod quat) (-> obj head-joint-mod quat) gp-0 (seconds-per-frame)) ) + (none) ) ;; definition for method 55 of type hosehead diff --git a/test/decompiler/reference/jak2/levels/sewer/sewer-obs2_REF.gc b/test/decompiler/reference/jak2/levels/sewer/sewer-obs2_REF.gc index b1a048085f..6f00eed8bb 100644 --- a/test/decompiler/reference/jak2/levels/sewer/sewer-obs2_REF.gc +++ b/test/decompiler/reference/jak2/levels/sewer/sewer-obs2_REF.gc @@ -343,15 +343,15 @@ For example for an elevator pre-compute the distance between the first and last ) :code (the-as (function none :behavior sew-valve) sleep-code) :post (behavior () - (seek! (-> self spin-rate) 0.0 (* 81920.0 (-> self clock seconds-per-frame))) - (+! (-> self spin) (* (-> self spin-rate) (-> self clock seconds-per-frame))) + (seek! (-> self spin-rate) 0.0 (* 81920.0 (seconds-per-frame))) + (+! (-> self spin) (* (-> self spin-rate) (seconds-per-frame))) (quaternion-axis-angle! (-> self joint rotation) 0.0 0.0 1.0 (-> self spin)) (let* ((f0-8 (- (get-base-height *ocean-map-sewer*) (-> self water-height))) (f30-0 f0-8) (f28-0 (seek-ease f0-8 0.0 - (* (lerp 21299.2 8192.0 (* 0.000005086263 (-> self spin-rate))) (-> self clock seconds-per-frame)) + (* (lerp 21299.2 8192.0 (* 0.000005086263 (-> self spin-rate))) (seconds-per-frame)) 12288.0 2.0 ) @@ -1389,7 +1389,7 @@ This commonly includes things such as: :trans (behavior () (let ((f0-0 (-> self deadly-radius))) (when (>= f0-0 0.0) - (set! (-> self deadly-radius) (seek f0-0 409600.0 (* 368640.0 (-> self clock seconds-per-frame)))) + (set! (-> self deadly-radius) (seek f0-0 409600.0 (* 368640.0 (seconds-per-frame)))) (attack-target! self) ) ) diff --git a/test/decompiler/reference/jak2/levels/sewer/sewer-obs_REF.gc b/test/decompiler/reference/jak2/levels/sewer/sewer-obs_REF.gc index 005b4fd433..0827e032c7 100644 --- a/test/decompiler/reference/jak2/levels/sewer/sewer-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/sewer/sewer-obs_REF.gc @@ -352,11 +352,11 @@ This commonly includes things such as: ((zero? (-> self switch-state)) (cond ((>= 3.0 (-> self anim-time)) - (+! (-> self anim-time) (* 6.0 (-> self clock seconds-per-frame))) + (+! (-> self anim-time) (* 6.0 (seconds-per-frame))) (set! (-> self anim-time) (fmin 3.0 (-> self anim-time))) ) (else - (+! (-> self anim-time) (* 6.0 (-> self clock seconds-per-frame))) + (+! (-> self anim-time) (* 6.0 (seconds-per-frame))) (if (< 6.0 (-> self anim-time)) (set! (-> self anim-time) 0.0) ) @@ -364,7 +364,7 @@ This commonly includes things such as: ) ) (else - (+! (-> self anim-time) (* 6.0 (-> self clock seconds-per-frame))) + (+! (-> self anim-time) (* 6.0 (seconds-per-frame))) (set! (-> self anim-time) (fmin 6.0 (-> self anim-time))) ) ) @@ -1058,14 +1058,7 @@ This commonly includes things such as: (none) ) :post (behavior () - (let ((t9-0 sp-launch-particles-var) - (a0-0 *sp-particle-system-2d*) - (a1-0 (-> *part-id-table* 1442)) - (a2-0 *launch-matrix*) - ) - (set! (-> a2-0 trans quad) (-> self root trans quad)) - (t9-0 a0-0 a1-0 a2-0 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1442) (-> self root trans)) (ja-post) (none) ) diff --git a/test/decompiler/reference/jak2/levels/sewer/sewer-part_REF.gc b/test/decompiler/reference/jak2/levels/sewer/sewer-part_REF.gc index 9d53aefa82..549e5d03bb 100644 --- a/test/decompiler/reference/jak2/levels/sewer/sewer-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/sewer/sewer-part_REF.gc @@ -241,22 +241,8 @@ ) ) ) - (let ((t9-8 sp-launch-particles-var) - (a0-11 *sp-particle-system-2d*) - (a1-6 (-> *part-id-table* 1444)) - (a2-4 *launch-matrix*) - ) - (set! (-> a2-4 trans quad) (-> gp-0 quad)) - (t9-8 a0-11 a1-6 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-9 sp-launch-particles-var) - (a0-12 *sp-particle-system-3d*) - (a1-7 (-> *part-id-table* 1445)) - (a2-5 *launch-matrix*) - ) - (set! (-> a2-5 trans quad) (-> gp-0 quad)) - (t9-9 a0-12 a1-7 a2-5 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1444) gp-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 1445) gp-0) ) ) ) @@ -412,22 +398,8 @@ ) ) ) - (let ((t9-8 sp-launch-particles-var) - (a0-11 *sp-particle-system-2d*) - (a1-6 (-> *part-id-table* 1444)) - (a2-4 *launch-matrix*) - ) - (set! (-> a2-4 trans quad) (-> gp-0 quad)) - (t9-8 a0-11 a1-6 a2-4 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-9 sp-launch-particles-var) - (a0-12 *sp-particle-system-3d*) - (a1-7 (-> *part-id-table* 1445)) - (a2-5 *launch-matrix*) - ) - (set! (-> a2-5 trans quad) (-> gp-0 quad)) - (t9-9 a0-12 a1-7 a2-5 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1444) gp-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 1445) gp-0) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/stadium/stadium-obs_REF.gc b/test/decompiler/reference/jak2/levels/stadium/stadium-obs_REF.gc index 6717568d6c..204f988ffc 100644 --- a/test/decompiler/reference/jak2/levels/stadium/stadium-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/stadium/stadium-obs_REF.gc @@ -495,7 +495,7 @@ This commonly includes things such as: ) (('hold) (set! (-> self escort-force (-> arg3 param 0) y) - (seek (-> self escort-force (-> arg3 param 0) y) 1.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek (-> self escort-force (-> arg3 param 0) y) 1.0 (* 2.0 (seconds-per-frame))) ) ) (else @@ -552,16 +552,15 @@ This commonly includes things such as: (target-pos 0) (let ((s4-0 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> gp-0 quat))) (f30-0 0.0) - (s3-0 - (lambda ((arg0 rift-rider) (arg1 vector) (arg2 vector) (arg3 vector)) - (let ((f0-1 (vector-dot (vector-! (new 'stack-no-clear 'vector) arg2 arg1) arg3))) - (if (< f0-1 0.0) - (- f0-1) - 0.0 + (s3-0 (lambda ((arg0 rift-rider) (arg1 vector) (arg2 vector) (arg3 vector)) + (let ((f0-1 (vector-dot (vector-! (new 'stack-no-clear 'vector) arg2 arg1) arg3))) + (if (< f0-1 0.0) + (- f0-1) + 0.0 + ) ) + ) ) - ) - ) ) (let ((s0-0 (new 'stack-no-clear 'vector)) (v1-13 0) @@ -603,21 +602,16 @@ This commonly includes things such as: (let ((s1-1 s3-0) (s0-2 self) ) - (+! f30-0 - (s1-1 - s0-2 - (the-as vector (send-event self 'get-position 'right (new 'stack-no-clear 'vector))) - (the-as vector s2-0) - s4-0 - ) + (+! f30-0 (s1-1 + s0-2 + (the-as vector (send-event self 'get-position 'right (new 'stack-no-clear 'vector))) + (the-as vector s2-0) + s4-0 + ) ) ) ) - (seek! - (-> self speed) - (fmin 12288.0 (+ 2048.0 (vector-length s5-0))) - (* 4096.0 (-> self clock seconds-per-frame)) - ) + (seek! (-> self speed) (fmin 12288.0 (+ 2048.0 (vector-length s5-0))) (* 4096.0 (seconds-per-frame))) (set! (-> self speed) (* (-> self speed) (lerp-scale 1.0 0.0 f30-0 24576.0 49152.0))) (let ((f30-1 (-> self speed)) (s2-1 lerp-scale) @@ -635,7 +629,7 @@ This commonly includes things such as: ) ) (vector-normalize! s5-0 (-> self speed)) - (vector-seek! (-> gp-0 transv) s5-0 (* 4096.0 (-> self clock seconds-per-frame))) + (vector-seek! (-> gp-0 transv) s5-0 (* 4096.0 (seconds-per-frame))) ) ) (vector-v++! (-> gp-0 trans) (-> gp-0 transv)) @@ -649,7 +643,7 @@ This commonly includes things such as: (set! (-> a2-14 ignore-process1) #f) (set! (-> a2-14 ignore-pat) (-> v1-43 pat-ignore-mask)) (set! (-> a2-14 action-mask) (collide-action solid)) - (fill-cache-for-shape v1-43 (* (vector-length (-> v1-43 transv)) (-> self clock seconds-per-frame)) a2-14) + (fill-cache-for-shape v1-43 (* (vector-length (-> v1-43 transv)) (seconds-per-frame)) a2-14) ) (rigid-body-object-method-37 self) (pusher-post) @@ -790,7 +784,7 @@ This commonly includes things such as: ) :trans (behavior () (dotimes (gp-0 2) - (seek! (-> self escort-force gp-0 y) 0.0 (* 0.3 (-> self clock seconds-per-frame))) + (seek! (-> self escort-force gp-0 y) 0.0 (* 0.3 (seconds-per-frame))) ) (let ((f30-0 (get-furthest-point-on-path (-> self path) (-> self root trans)))) (if (< 8.0 f30-0) @@ -836,7 +830,7 @@ This commonly includes things such as: (sound-group sfx) (-> self root trans) ) - (seek! (-> self hover-volume) 1.0 (-> self clock seconds-per-frame)) + (seek! (-> self hover-volume) 1.0 (seconds-per-frame)) (spawn (-> self part) (-> self root trans)) (rift-rider-travel-post) (none) @@ -913,7 +907,7 @@ This commonly includes things such as: ) :code (the-as (function none :behavior rift-rider) sleep-code) :post (behavior () - (seek! (-> self height) 4096.0 (* 6144.0 (-> self clock seconds-per-frame))) + (seek! (-> self height) 4096.0 (* 6144.0 (seconds-per-frame))) (get-point-in-path! (-> self path) (-> self dest-pos) (-> self path-pos) 'interp) (+! (-> self dest-pos y) (-> self height)) (set! (-> self path-pos) (fmin @@ -927,13 +921,9 @@ This commonly includes things such as: (let ((s5-0 (new 'stack-no-clear 'vector))) (+! (-> v1-10 y) (-> self height)) (vector-! s5-0 v1-10 (-> gp-0 trans)) - (seek! - (-> self speed) - (fmin 12288.0 (+ -2048.0 (vector-length s5-0))) - (* 4096.0 (-> self clock seconds-per-frame)) - ) + (seek! (-> self speed) (fmin 12288.0 (+ -2048.0 (vector-length s5-0))) (* 4096.0 (seconds-per-frame))) (vector-normalize! s5-0 (-> self speed)) - (vector-seek! (-> gp-0 transv) s5-0 (* 4096.0 (-> self clock seconds-per-frame))) + (vector-seek! (-> gp-0 transv) s5-0 (* 4096.0 (seconds-per-frame))) ) ) (vector-v++! (-> gp-0 trans) (-> gp-0 transv)) @@ -948,7 +938,7 @@ This commonly includes things such as: (-> gp-0 quat) (-> gp-0 quat) (-> (the-as process-drawable v1-19) root quat) - (* 0.5 (-> self clock seconds-per-frame)) + (* 0.5 (seconds-per-frame)) ) ) ) @@ -1011,7 +1001,7 @@ This commonly includes things such as: ) :post (behavior () (dotimes (gp-0 2) - (seek! (-> self escort-force gp-0 y) 0.0 (* 1.6 (-> self clock seconds-per-frame))) + (seek! (-> self escort-force gp-0 y) 0.0 (* 1.6 (seconds-per-frame))) ) (let ((v1-8 (-> self root)) (a2-1 (new 'stack-no-clear 'collide-query)) @@ -1021,7 +1011,7 @@ This commonly includes things such as: (set! (-> a2-1 ignore-process1) #f) (set! (-> a2-1 ignore-pat) (-> v1-8 pat-ignore-mask)) (set! (-> a2-1 action-mask) (collide-action solid)) - (fill-cache-for-shape v1-8 (* (vector-length (-> v1-8 transv)) (-> self clock seconds-per-frame)) a2-1) + (fill-cache-for-shape v1-8 (* (vector-length (-> v1-8 transv)) (seconds-per-frame)) a2-1) ) (rigid-body-object-method-37 self) (pusher-post) @@ -1881,7 +1871,7 @@ This commonly includes things such as: ) :post (behavior () (when (not (-> self enable-move?)) - (seek! (-> self speed) 2048.0 (* 12288.0 (-> self clock seconds-per-frame))) + (seek! (-> self speed) 2048.0 (* 12288.0 (seconds-per-frame))) (let ((v1-4 (-> self nav))) (set! (-> v1-4 target-speed) (-> self speed)) ) @@ -1952,13 +1942,9 @@ This commonly includes things such as: (vector-normalize! s4-0 1.0) (quaternion-set! s5-0 0.0 (-> s4-0 x) 0.0 (+ 1.0 (-> s4-0 z))) (quaternion-normalize! s5-0) - (quaternion-slerp! (-> self root quat) (-> self root quat) s5-0 (* 8.0 (-> self clock seconds-per-frame))) - ) - (seek! - (-> self observed-speed) - (vector-length (-> gp-2 transv)) - (* 81920.0 (-> self clock seconds-per-frame)) + (quaternion-slerp! (-> self root quat) (-> self root quat) s5-0 (* 8.0 (seconds-per-frame))) ) + (seek! (-> self observed-speed) (vector-length (-> gp-2 transv)) (* 81920.0 (seconds-per-frame))) ) (spawn-energy) (stad-samos-post) @@ -2090,7 +2076,7 @@ This commonly includes things such as: (fill-cache-integrate-and-collide gp-1 (-> gp-1 transv) a2-1 (meters 0)) ) (when (logtest? (-> gp-1 status) (collide-status touch-surface)) - (let ((f0-1 (fmax 0.0 (+ 1.0 (* -11.999999 (-> self clock seconds-per-frame)))))) + (let ((f0-1 (fmax 0.0 (+ 1.0 (* -11.999999 (seconds-per-frame)))))) (vector-float*! (-> gp-1 transv) (-> gp-1 transv) f0-1) ) ) @@ -2576,8 +2562,8 @@ This commonly includes things such as: :code (the-as (function none :behavior stadium-barrier) sleep-code) :post (behavior () (if (!= (-> self flashf) 0.0) - (seek! (-> self flashf) 0.0 (* 8.0 (-> self clock seconds-per-frame))) - (seek! (-> self colorf) 0.0 (* 1.5 (-> self clock seconds-per-frame))) + (seek! (-> self flashf) 0.0 (* 8.0 (seconds-per-frame))) + (seek! (-> self colorf) 0.0 (* 1.5 (seconds-per-frame))) ) (let ((a0-2 (new 'stack-no-clear 'vector)) (gp-0 (new 'stack-no-clear 'vector)) diff --git a/test/decompiler/reference/jak2/levels/stadium/stadium-part_REF.gc b/test/decompiler/reference/jak2/levels/stadium/stadium-part_REF.gc index 2ce1baaa5b..96b3bd74b3 100644 --- a/test/decompiler/reference/jak2/levels/stadium/stadium-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/stadium/stadium-part_REF.gc @@ -639,30 +639,9 @@ (let ((vec (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! vec (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 3938)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> vec quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 3939)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> vec quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-5 *sp-particle-system-3d*) - (a1-4 (-> *part-id-table* 3940)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> vec quad)) - (t9-3 a0-5 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 3938) vec) + (launch-particles (-> *part-id-table* 3939) vec) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 3940) vec) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/test/decompiler/reference/jak2/levels/stadium/stadium-race-obs_REF.gc b/test/decompiler/reference/jak2/levels/stadium/stadium-race-obs_REF.gc index e8e1b31097..97ae3ffa4e 100644 --- a/test/decompiler/reference/jak2/levels/stadium/stadium-race-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/stadium/stadium-race-obs_REF.gc @@ -56,7 +56,7 @@ :post (behavior () (cond ((!= (-> self tt) (-> self tt-target)) - (seek! (-> self tt) (-> self tt-target) (-> self clock seconds-per-frame)) + (seek! (-> self tt) (-> self tt-target) (seconds-per-frame)) (ja :num-func num-func-identity :frame-num (ja-aframe (-> self tt) 0)) (transform-post) ) @@ -181,7 +181,3 @@ This commonly includes things such as: ;; failed to figure out what this is: 0 - - - - diff --git a/test/decompiler/reference/jak2/levels/strip/chaincrate_REF.gc b/test/decompiler/reference/jak2/levels/strip/chaincrate_REF.gc index 8a5b66ca5e..76ce56e8af 100644 --- a/test/decompiler/reference/jak2/levels/strip/chaincrate_REF.gc +++ b/test/decompiler/reference/jak2/levels/strip/chaincrate_REF.gc @@ -158,7 +158,7 @@ (go-virtual die-fast) ) (rider-trans) - (let ((f30-0 (fmin 1.0 (+ (-> self path-u) (* (-> self path-speed) (-> self clock seconds-per-frame)))))) + (let ((f30-0 (fmin 1.0 (+ (-> self path-u) (* (-> self path-speed) (seconds-per-frame)))))) (set! (-> self path-u) f30-0) (strip-chain-crate-slave-method-22 self) (let ((a0-1 (* (-> self guide-num) 2)) diff --git a/test/decompiler/reference/jak2/levels/strip/strip-drop_REF.gc b/test/decompiler/reference/jak2/levels/strip/strip-drop_REF.gc index 7d8ba4195a..d1bb376f20 100644 --- a/test/decompiler/reference/jak2/levels/strip/strip-drop_REF.gc +++ b/test/decompiler/reference/jak2/levels/strip/strip-drop_REF.gc @@ -161,14 +161,7 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 1117)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1117) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) @@ -182,22 +175,8 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-3d*) - (a1-2 (-> *part-id-table* 1114)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 1116)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 1114) s3-0) + (launch-particles (-> *part-id-table* 1116) s3-0) ) ) (sparticle-motion-blur arg0 arg1 (the-as vector arg2)) diff --git a/test/decompiler/reference/jak2/levels/strip/strip-obs_REF.gc b/test/decompiler/reference/jak2/levels/strip/strip-obs_REF.gc index 4b6e4b36ca..a5cdacb2e1 100644 --- a/test/decompiler/reference/jak2/levels/strip/strip-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/strip/strip-obs_REF.gc @@ -282,11 +282,7 @@ This commonly includes things such as: ) ) ) - (quaternion-rotate-local-x! - (-> self root quat) - (-> self root quat) - (* (-> self spin) (-> self clock seconds-per-frame)) - ) + (quaternion-rotate-local-x! (-> self root quat) (-> self root quat) (* (-> self spin) (seconds-per-frame))) (strip-trans) (none) ) diff --git a/test/decompiler/reference/jak2/levels/strip/strip-part_REF.gc b/test/decompiler/reference/jak2/levels/strip/strip-part_REF.gc index b041dcc696..d40af6f495 100644 --- a/test/decompiler/reference/jak2/levels/strip/strip-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/strip/strip-part_REF.gc @@ -428,30 +428,9 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 980)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 981)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-4 (-> *part-id-table* 982)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-3 a0-4 a1-4 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 980) gp-0) + (launch-particles (-> *part-id-table* 981) gp-0) + (launch-particles (-> *part-id-table* 982) gp-0) ) ) (none) @@ -1564,30 +1543,9 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 vector 0 x) f30-0 (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 1031)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 1032)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-3 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 1033)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> gp-0 quad)) - (t9-3 a0-4 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 1031) gp-0) + (launch-particles (-> *part-id-table* 1032) gp-0) + (launch-particles (-> *part-id-table* 1033) gp-0) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/title/title-obs_REF.gc b/test/decompiler/reference/jak2/levels/title/title-obs_REF.gc index 6928bc20c0..9650a419d2 100644 --- a/test/decompiler/reference/jak2/levels/title/title-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/title/title-obs_REF.gc @@ -615,32 +615,30 @@ ;; definition for function title-progress ;; WARN: Return type mismatch int vs none. (defun title-progress ((arg0 symbol)) - (with-pp - (setup - *screen-filter* - (new 'static 'vector :w 128.0) - (new 'static 'vector :w 128.0) - (-> pp clock seconds-per-frame) - (bucket-id screen-filter) - ) - (set-setting! 'allow-progress #t 0.0 0) - (apply-settings *setting-control*) - (activate-progress *dproc* arg0) - (set-setting! 'allow-progress #f 0.0 0) - (dotimes (gp-1 5) - (suspend) - ) - (disable *screen-filter*) - (remove-setting! 'allow-error) - (while (-> *blit-displays-work* menu-mode) - (suspend) - ) - (set-setting! 'allow-error #f 0.0 0) - (apply-settings *setting-control*) - (set-blackout-frames (seconds 0.2)) - 0 - (none) + (setup + *screen-filter* + (new 'static 'vector :w 128.0) + (new 'static 'vector :w 128.0) + (seconds-per-frame) + (bucket-id screen-filter) ) + (set-setting! 'allow-progress #t 0.0 0) + (apply-settings *setting-control*) + (activate-progress *dproc* arg0) + (set-setting! 'allow-progress #f 0.0 0) + (dotimes (gp-1 5) + (suspend) + ) + (disable *screen-filter*) + (remove-setting! 'allow-error) + (while (-> *blit-displays-work* menu-mode) + (suspend) + ) + (set-setting! 'allow-error #f 0.0 0) + (apply-settings *setting-control*) + (set-blackout-frames (seconds 0.2)) + 0 + (none) ) ;; failed to figure out what this is: @@ -855,7 +853,7 @@ :enter (-> (method-of-type title-control startup) enter) :exit (-> (method-of-type title-control startup) exit) :code (behavior () - (title-fade-out (* 3.0 (-> self clock seconds-per-frame))) + (title-fade-out (* 3.0 (seconds-per-frame))) (title-progress 'title) (sleep-code) (none) diff --git a/test/decompiler/reference/jak2/levels/tomb/target-indax_REF.gc b/test/decompiler/reference/jak2/levels/tomb/target-indax_REF.gc index 88da200ff6..b9625c6e20 100644 --- a/test/decompiler/reference/jak2/levels/tomb/target-indax_REF.gc +++ b/test/decompiler/reference/jak2/levels/tomb/target-indax_REF.gc @@ -703,13 +703,13 @@ ((>= (- (current-time) gp-0) (seconds 2.5)) ) ((>= (- (current-time) gp-0) (seconds 1)) - (set! f28-0 (seek f28-0 1.0 (* 2.0 (-> self clock seconds-per-frame)))) + (set! f28-0 (seek f28-0 1.0 (* 2.0 (seconds-per-frame)))) ) (else - (set! f28-0 (seek f28-0 0.0 (* 2.0 (-> self clock seconds-per-frame)))) + (set! f28-0 (seek f28-0 0.0 (* 2.0 (seconds-per-frame)))) ) ) - (set! f30-0 (seek f30-0 f26-1 (* 4.0 (-> self clock seconds-per-frame)))) + (set! f30-0 (seek f30-0 f26-1 (* 4.0 (seconds-per-frame)))) ) (let ((v1-94 (-> self skel root-channel 1))) (set! (-> v1-94 frame-interp 1) f28-0) @@ -777,7 +777,7 @@ ) (let ((f0-3 (fmax 0.0 (fmin 1.0 (* 0.000048828126 (+ -10240.0 (-> self control ctrl-xz-vel))))))) (if (< (-> self control unknown-float35) f0-3) - (seek! (-> self control unknown-float35) f0-3 (* 4.0 (-> self clock seconds-per-frame))) + (seek! (-> self control unknown-float35) f0-3 (* 4.0 (seconds-per-frame))) ) ) (none) @@ -807,7 +807,7 @@ ) (ja-no-eval :group! (-> self draw art-group data 419) :num! (loop!) :frame-num 0.0) (until #f - (seek! (-> self control unknown-float35) 0.0 (* 10.0 (-> self clock seconds-per-frame))) + (seek! (-> self control unknown-float35) 0.0 (* 10.0 (seconds-per-frame))) (suspend) (ja-blend-eval) (ja :num! (loop!)) @@ -1227,7 +1227,7 @@ (go target-indax-falling #f) ) ((< (the-as float f26-0) 0.0) - (set! f26-0 (seek (the-as float f26-0) -0.04096 (* 491520.0 (-> self clock seconds-per-frame)))) + (set! f26-0 (seek (the-as float f26-0) -0.04096 (* 491520.0 (seconds-per-frame)))) (set-forward-vel (the-as float f26-0)) ) ((and (nonzero? (-> self control unknown-time-frame18)) diff --git a/test/decompiler/reference/jak2/levels/tomb/tomb-beetle_REF.gc b/test/decompiler/reference/jak2/levels/tomb/tomb-beetle_REF.gc index 955cdd8c8a..4a1f229d1a 100644 --- a/test/decompiler/reference/jak2/levels/tomb/tomb-beetle_REF.gc +++ b/test/decompiler/reference/jak2/levels/tomb/tomb-beetle_REF.gc @@ -702,13 +702,13 @@ (init-vf0-vector) (when (-> self flying?) (let ((gp-0 (-> self root))) - (+! (-> self speed) (* (-> self fly-away-acc) (-> self clock seconds-per-frame))) + (+! (-> self speed) (* (-> self fly-away-acc) (seconds-per-frame))) (let ((s5-0 (new 'stack-no-clear 'vector))) (vector-normalize-copy! s5-0 (-> self fly-away-dir) (-> self speed)) (vector-v++! (the-as vector (-> self fly-info)) s5-0) ) - (+! (-> self fly-away-ry) (* (-> self fly-away-ry-speed) (-> self clock seconds-per-frame))) - (+! (-> self fly-away-radius) (* 20480.0 (-> self clock seconds-per-frame))) + (+! (-> self fly-away-ry) (* (-> self fly-away-ry-speed) (seconds-per-frame))) + (+! (-> self fly-away-radius) (* 20480.0 (seconds-per-frame))) (let ((s5-1 (new 'stack-no-clear 'vector))) (set-vector! s5-1 (sin (-> self fly-away-ry)) 0.0 (cos (-> self fly-away-ry)) 1.0) (vector-normalize! s5-1 (-> self fly-away-radius)) @@ -731,7 +731,7 @@ (-> self root quat) (-> self root quat) (-> self fly-info 1 dst-quat) - (* 12.0 (-> self clock seconds-per-frame)) + (* 12.0 (seconds-per-frame)) ) ) (tomb-beetle-method-185 self) @@ -993,14 +993,14 @@ (let* ((gp-0 (-> self fly-info (-> self dest-index))) (f30-0 (vector-vector-distance (-> self root trans) (-> gp-0 dst))) ) - (seek! (-> self speed) (* 4.0 f30-0) (* 409600.0 (-> self clock seconds-per-frame))) + (seek! (-> self speed) (* 4.0 f30-0) (* 409600.0 (seconds-per-frame))) (let ((s5-1 (vector-! (new 'stack-no-clear 'vector) (-> gp-0 dst) (-> self root trans)))) (vector-normalize! s5-1 (-> self speed)) - (vector-seek! (-> self root transv) s5-1 (* (-> self speed) (-> self clock seconds-per-frame))) + (vector-seek! (-> self root transv) s5-1 (* (-> self speed) (seconds-per-frame))) ) (let ((v1-13 (new 'stack-no-clear 'vector))) (.lvf vf1 (&-> (-> self root transv) quad)) - (let ((f0-9 (-> self clock seconds-per-frame))) + (let ((f0-9 (seconds-per-frame))) (.mov at-0 f0-9) ) (.mov vf2 at-0) diff --git a/test/decompiler/reference/jak2/levels/tomb/tomb-obs_REF.gc b/test/decompiler/reference/jak2/levels/tomb/tomb-obs_REF.gc index 5b8cd2ad97..1326e62468 100644 --- a/test/decompiler/reference/jak2/levels/tomb/tomb-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/tomb/tomb-obs_REF.gc @@ -1707,7 +1707,7 @@ This commonly includes things such as: :code (the-as (function none :behavior tomb-plat-return) sleep-code) :post (behavior () (sound-play "tomb-plat-ret" :id (-> self sound-id) :position (-> self root trans)) - (seek! (-> self path-pos) 1.0 (* 2.0 (-> self clock seconds-per-frame) (-> self path-speed))) + (seek! (-> self path-pos) 1.0 (* 2.0 (seconds-per-frame) (-> self path-speed))) (let ((f30-0 (-> self path-pos))) (get-point-at-percent-along-path! (-> self intro-path) @@ -1792,7 +1792,7 @@ This commonly includes things such as: :code (the-as (function none :behavior tomb-plat-return) sleep-code) :post (behavior () (sound-play "tomb-plat-ret" :id (-> self sound-id) :position (-> self root trans)) - (seek! (-> self path-pos) (-> self dest-pos) (* (-> self path-speed) (-> self clock seconds-per-frame))) + (seek! (-> self path-pos) (-> self dest-pos) (* (-> self path-speed) (seconds-per-frame))) (get-point-at-percent-along-path! (-> self path) (-> self basetrans) @@ -2002,22 +2002,8 @@ This commonly includes things such as: (set! (-> *part-id-table* 3159 init-specs 4 initial-valuef) (vector-length a2-1)) (draw-beam (-> *part-id-table* 3159) arg0 a2-1 #f #t) ) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 3160)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> arg0 quad)) - (t9-1 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 3161)) - (a2-3 *launch-matrix*) - ) - (set! (-> a2-3 trans quad) (-> arg1 quad)) - (t9-2 a0-4 a1-3 a2-3 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 3160) arg0) + (launch-particles (-> *part-id-table* 3161) arg1) (none) ) diff --git a/test/decompiler/reference/jak2/levels/tomb/tomb-water_REF.gc b/test/decompiler/reference/jak2/levels/tomb/tomb-water_REF.gc index b46c6d24b7..1905192350 100644 --- a/test/decompiler/reference/jak2/levels/tomb/tomb-water_REF.gc +++ b/test/decompiler/reference/jak2/levels/tomb/tomb-water_REF.gc @@ -1234,7 +1234,7 @@ This commonly includes things such as: ;; definition for function tomb-simon-block-post (defbehavior tomb-simon-block-post tomb-simon-block () (when (!= (-> self basetrans y) (-> self base-height)) - (seek! (-> self basetrans y) (-> self base-height) (* (-> self move-rate) (-> self clock seconds-per-frame))) + (seek! (-> self basetrans y) (-> self base-height) (* (-> self move-rate) (seconds-per-frame))) (when (and (< (- (-> self base-height) (-> self basetrans y)) 21504.0) (not (logtest? (-> self flags) (simon-block-flags sbf5))) ) @@ -1242,7 +1242,7 @@ This commonly includes things such as: (logior! (-> self flags) (simon-block-flags sbf5)) ) (if (< (- (-> self base-height) (-> self basetrans y)) 81920.0) - (seek! (-> self move-rate) 0.0 (* 81920.0 (-> self clock seconds-per-frame))) + (seek! (-> self move-rate) 0.0 (* 81920.0 (seconds-per-frame))) ) (when (< (+ -409.6 (-> self base-height)) (-> self basetrans y)) (sound-play "simon-hit") @@ -1612,9 +1612,7 @@ This commonly includes things such as: (none) ) :post (behavior () - (set! (-> self root transv y) - (- (-> self root transv y) (* (-> self move-rate) (-> self clock seconds-per-frame))) - ) + (set! (-> self root transv y) (- (-> self root transv y) (* (-> self move-rate) (seconds-per-frame)))) (+! (-> self root trans y) (-> self root transv y)) (transform-post) (none) @@ -2548,7 +2546,7 @@ This commonly includes things such as: ) (cond ((< 0.0 (-> self volume)) - (seek! (-> self volume) 0.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self volume) 0.0 (* 2.0 (seconds-per-frame))) (update-vol! (-> self sound) (-> self volume)) (update! (-> self sound)) ) @@ -2607,7 +2605,7 @@ This commonly includes things such as: ) ) ) - (seek! (-> self volume) 1.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self volume) 1.0 (* 2.0 (seconds-per-frame))) (cond ((logtest? gp-0 8) (set! gp-0 0) @@ -2654,7 +2652,7 @@ This commonly includes things such as: (set! s5-2 #t) (set-tombc-electricity-scale! 0.0) ) - (seek! (-> self volume) 0.0 (* 2.0 (-> self clock seconds-per-frame))) + (seek! (-> self volume) 0.0 (* 2.0 (seconds-per-frame))) (suspend) ) ) diff --git a/test/decompiler/reference/jak2/levels/tomb/widow-part_REF.gc b/test/decompiler/reference/jak2/levels/tomb/widow-part_REF.gc index 19d0bd5545..94eacd4c65 100644 --- a/test/decompiler/reference/jak2/levels/tomb/widow-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/tomb/widow-part_REF.gc @@ -2325,22 +2325,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 vector 0 x) (-> arg1 user-float) (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 3273)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-3 (-> *part-id-table* 3274)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 3273) gp-0) + (launch-particles (-> *part-id-table* 3274) gp-0) ) ) (none) @@ -2484,22 +2470,8 @@ (let ((gp-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! gp-0 (-> arg2 launchrot x) (-> arg2 launchrot y) (-> arg2 launchrot z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-2 *sp-particle-system-2d*) - (a1-1 (-> *part-id-table* 3280)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> gp-0 quad)) - (t9-1 a0-2 a1-1 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 3281)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> gp-0 quad)) - (t9-2 a0-3 a1-2 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 3280) gp-0) + (launch-particles (-> *part-id-table* 3281) gp-0) ) (none) ) diff --git a/test/decompiler/reference/jak2/levels/under/centipede_REF.gc b/test/decompiler/reference/jak2/levels/under/centipede_REF.gc index e11ea2b5db..80962f9c63 100644 --- a/test/decompiler/reference/jak2/levels/under/centipede_REF.gc +++ b/test/decompiler/reference/jak2/levels/under/centipede_REF.gc @@ -262,105 +262,103 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch float vs none. (defmethod centipede-method-187 centipede ((obj centipede)) - (with-pp - (let ((centipede-cam (-> obj cam))) - (let ((cam-dir (new 'stack-no-clear 'vector))) - (set! (-> cam-dir quad) (-> centipede-cam dir quad)) - (vector-z-quaternion! (-> centipede-cam dir) (-> obj root quat)) - (set! (-> centipede-cam dir y) 0.0) - (vector-normalize! (-> centipede-cam dir) 1.0) - (set! (-> centipede-cam trans quad) (-> obj root trans quad)) - (set! (-> centipede-cam trans y) (+ 32768.0 - (* (+ (* 2048.0 (cos (* 218.45334 (the float (mod (current-time) 300))))) - (* 614.4 (cos (* 68.91272 (the float (mod (current-time) 951))))) - ) - (-> obj bobbing-intensity) - ) - (-> centipede-cam trans y) - ) - ) - (if (= (-> obj id) 1) - (set! (-> centipede-cam dir y) -0.574) - (set! (-> centipede-cam dir y) -0.474) + (let ((centipede-cam (-> obj cam))) + (let ((cam-dir (new 'stack-no-clear 'vector))) + (set! (-> cam-dir quad) (-> centipede-cam dir quad)) + (vector-z-quaternion! (-> centipede-cam dir) (-> obj root quat)) + (set! (-> centipede-cam dir y) 0.0) + (vector-normalize! (-> centipede-cam dir) 1.0) + (set! (-> centipede-cam trans quad) (-> obj root trans quad)) + (set! (-> centipede-cam trans y) (+ 32768.0 + (* (+ (* 2048.0 (cos (* 218.45334 (the float (mod (current-time) 300))))) + (* 614.4 (cos (* 68.91272 (the float (mod (current-time) 951))))) + ) + (-> obj bobbing-intensity) + ) + (-> centipede-cam trans y) + ) ) - (vector-normalize! (-> centipede-cam dir) 1.0) - (let ((proc (handle->process (-> obj focus handle))) - (s3-0 #f) - ) - (when (and proc (not (and (-> obj next-state) (let ((v1-27 (-> obj next-state name))) - (or (= v1-27 'attack) (= v1-27 'attack-failed)) - ) - ) - ) - ) - (let ((s2-0 (new 'stack-no-clear 'vector))) - (vector-! s2-0 (get-trans (the-as process-focusable proc) 0) (-> obj root trans)) - (vector-normalize! s2-0 1.0) - (when (>= (vector-dot s2-0 (-> centipede-cam dir)) 0.342) - (let ((f0-23 (fmax - 0.0 - (fmin 8192.0 (atan (-> s2-0 y) (sqrtf (+ (* (-> s2-0 x) (-> s2-0 x)) (* (-> s2-0 z) (-> s2-0 z)))))) - ) + (if (= (-> obj id) 1) + (set! (-> centipede-cam dir y) -0.574) + (set! (-> centipede-cam dir y) -0.474) + ) + (vector-normalize! (-> centipede-cam dir) 1.0) + (let ((proc (handle->process (-> obj focus handle))) + (s3-0 #f) + ) + (when (and proc (not (and (-> obj next-state) (let ((v1-27 (-> obj next-state name))) + (or (= v1-27 'attack) (= v1-27 'attack-failed)) + ) + ) ) - ) - (seek! (-> centipede-cam track-focus-tilt) f0-23 (* 65536.0 (-> pp clock seconds-per-frame))) - ) - (set! s3-0 #t) + ) + (let ((s2-0 (new 'stack-no-clear 'vector))) + (vector-! s2-0 (get-trans (the-as process-focusable proc) 0) (-> obj root trans)) + (vector-normalize! s2-0 1.0) + (when (>= (vector-dot s2-0 (-> centipede-cam dir)) 0.342) + (let ((f0-23 (fmax + 0.0 + (fmin 8192.0 (atan (-> s2-0 y) (sqrtf (+ (* (-> s2-0 x) (-> s2-0 x)) (* (-> s2-0 z) (-> s2-0 z)))))) + ) + ) + ) + (seek! (-> centipede-cam track-focus-tilt) f0-23 (* 65536.0 (seconds-per-frame))) ) + (set! s3-0 #t) ) ) - (if (not s3-0) - (seek! (-> centipede-cam track-focus-tilt) 0.0 (* 65536.0 (-> pp clock seconds-per-frame))) - ) ) - (let ((s4-1 (new 'stack-no-clear 'vector)) - (s3-1 (new 'stack-no-clear 'quaternion)) - (s2-1 (new 'stack-no-clear 'matrix)) - ) - (vector-rotate90-around-y! s4-1 (-> centipede-cam dir)) - (set! (-> s4-1 y) 0.0) - (vector-normalize! s4-1 1.0) - (quaternion-vector-angle! s3-1 s4-1 (-> centipede-cam track-focus-tilt)) - (quaternion->matrix s2-1 s3-1) - (vector-matrix*! (-> centipede-cam dir) (-> centipede-cam dir) s2-1) - ) - (cond - ((-> centipede-cam init?) - (set! (-> centipede-cam init?) #f) - ) - (else - (let ((s3-2 (new 'stack-no-clear 'matrix)) - (s4-2 (new 'stack-no-clear 'vector)) - ) - (matrix-from-two-vectors-max-angle! s3-2 (-> centipede-cam dir) cam-dir 8192.0) - (vector-matrix*! s4-2 (-> centipede-cam dir) s3-2) - (matrix-from-two-vectors-smooth! s3-2 s4-2 (-> centipede-cam dir) 65536.0 150) - (vector-matrix*! (-> centipede-cam dir) s4-2 s3-2) - ) + (if (not s3-0) + (seek! (-> centipede-cam track-focus-tilt) 0.0 (* 65536.0 (seconds-per-frame))) + ) + ) + (let ((s4-1 (new 'stack-no-clear 'vector)) + (s3-1 (new 'stack-no-clear 'quaternion)) + (s2-1 (new 'stack-no-clear 'matrix)) + ) + (vector-rotate90-around-y! s4-1 (-> centipede-cam dir)) + (set! (-> s4-1 y) 0.0) + (vector-normalize! s4-1 1.0) + (quaternion-vector-angle! s3-1 s4-1 (-> centipede-cam track-focus-tilt)) + (quaternion->matrix s2-1 s3-1) + (vector-matrix*! (-> centipede-cam dir) (-> centipede-cam dir) s2-1) + ) + (cond + ((-> centipede-cam init?) + (set! (-> centipede-cam init?) #f) + ) + (else + (let ((s3-2 (new 'stack-no-clear 'matrix)) + (s4-2 (new 'stack-no-clear 'vector)) + ) + (matrix-from-two-vectors-max-angle! s3-2 (-> centipede-cam dir) cam-dir 8192.0) + (vector-matrix*! s4-2 (-> centipede-cam dir) s3-2) + (matrix-from-two-vectors-smooth! s3-2 s4-2 (-> centipede-cam dir) 65536.0 150) + (vector-matrix*! (-> centipede-cam dir) s4-2 s3-2) ) ) ) - (let ((v1-47 *camera*)) - (when v1-47 - (let ((v1-48 (-> v1-47 slave))) - (when v1-48 - (set! (-> v1-48 0 saved-pt quad) (-> centipede-cam trans quad)) - (let ((s5-1 (-> v1-48 0 tracking))) - (vector-cross! (the-as vector (-> s5-1 inv-mat)) *up-vector* (-> centipede-cam dir)) - (vector-normalize! (the-as vector (-> s5-1 inv-mat)) 1.0) - (vector-cross! (-> s5-1 inv-mat vector 1) (-> centipede-cam dir) (the-as vector (-> s5-1 inv-mat))) - (set! (-> s5-1 inv-mat vector 2 quad) (-> centipede-cam dir quad)) - (set! (-> s5-1 inv-mat vector 0 w) 0.0) - (set! (-> s5-1 inv-mat vector 1 w) 0.0) - (set! (-> s5-1 inv-mat vector 2 w) 0.0) - ) + ) + (let ((v1-47 *camera*)) + (when v1-47 + (let ((v1-48 (-> v1-47 slave))) + (when v1-48 + (set! (-> v1-48 0 saved-pt quad) (-> centipede-cam trans quad)) + (let ((s5-1 (-> v1-48 0 tracking))) + (vector-cross! (the-as vector (-> s5-1 inv-mat)) *up-vector* (-> centipede-cam dir)) + (vector-normalize! (the-as vector (-> s5-1 inv-mat)) 1.0) + (vector-cross! (-> s5-1 inv-mat vector 1) (-> centipede-cam dir) (the-as vector (-> s5-1 inv-mat))) + (set! (-> s5-1 inv-mat vector 2 quad) (-> centipede-cam dir quad)) + (set! (-> s5-1 inv-mat vector 0 w) 0.0) + (set! (-> s5-1 inv-mat vector 1 w) 0.0) + (set! (-> s5-1 inv-mat vector 2 w) 0.0) ) ) ) ) ) - (none) ) + (none) ) ;; definition for method 188 of type centipede @@ -500,69 +498,67 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch quaternion vs none. (defmethod nav-enemy-method-142 centipede ((obj centipede) (arg0 nav-control)) - (with-pp - (let ((t9-0 (method-of-type nav-enemy nav-enemy-method-142))) - (t9-0 obj arg0) - ) - (let ((s5-0 (new 'stack-no-clear 'vector))) - (vector-z-quaternion! s5-0 (-> obj root quat)) - (vector-normalize! s5-0 1.0) - (let ((s3-0 (handle->process (-> obj focus handle))) - (s4-0 #f) - ) - (cond - (s3-0 - (let ((s2-0 (-> obj focus-pos-hist-count))) - (countdown (v1-7 (min 14 s2-0)) - (set! (-> obj focus-pos-hist (+ v1-7 1) quad) (-> obj focus-pos-hist v1-7 quad)) - ) - (set! (-> obj focus-pos-hist 0 quad) (-> (get-trans (the-as process-focusable s3-0) 0) quad)) - (if (< s2-0 15) - (set! (-> obj focus-pos-hist-count) (+ s2-0 1)) - ) + (let ((t9-0 (method-of-type nav-enemy nav-enemy-method-142))) + (t9-0 obj arg0) + ) + (let ((s5-0 (new 'stack-no-clear 'vector))) + (vector-z-quaternion! s5-0 (-> obj root quat)) + (vector-normalize! s5-0 1.0) + (let ((s3-0 (handle->process (-> obj focus handle))) + (s4-0 #f) + ) + (cond + (s3-0 + (let ((s2-0 (-> obj focus-pos-hist-count))) + (countdown (v1-7 (min 14 s2-0)) + (set! (-> obj focus-pos-hist (+ v1-7 1) quad) (-> obj focus-pos-hist v1-7 quad)) ) - ) - (else - (set! (-> obj focus-pos-hist-count) 0) - 0 + (set! (-> obj focus-pos-hist 0 quad) (-> (get-trans (the-as process-focusable s3-0) 0) quad)) + (if (< s2-0 15) + (set! (-> obj focus-pos-hist-count) (+ s2-0 1)) + ) ) ) - (when s3-0 - (let ((s3-1 (new 'stack-no-clear 'vector))) - (vector-! s3-1 (-> obj focus-pos-hist (+ (-> obj focus-pos-hist-count) -1)) (-> obj root trans)) - (vector-normalize! s3-1 1.0) - (when (>= (vector-dot s3-1 s5-0) 0.342) - (let ((f0-9 - (fmax - 0.0 - (fmin 8192.0 (atan (-> s3-1 y) (sqrtf (+ (* (-> s3-1 x) (-> s3-1 x)) (* (-> s3-1 z) (-> s3-1 z)))))) - ) + (else + (set! (-> obj focus-pos-hist-count) 0) + 0 + ) + ) + (when s3-0 + (let ((s3-1 (new 'stack-no-clear 'vector))) + (vector-! s3-1 (-> obj focus-pos-hist (+ (-> obj focus-pos-hist-count) -1)) (-> obj root trans)) + (vector-normalize! s3-1 1.0) + (when (>= (vector-dot s3-1 s5-0) 0.342) + (let ((f0-9 + (fmax + 0.0 + (fmin 8192.0 (atan (-> s3-1 y) (sqrtf (+ (* (-> s3-1 x) (-> s3-1 x)) (* (-> s3-1 z) (-> s3-1 z)))))) ) ) - (set! (-> obj track-focus-tilt) - (seek-with-smooth (-> obj track-focus-tilt) f0-9 (* 5461.3335 (-> pp clock seconds-per-frame)) 0.25 1.0) - ) - ) - (set! s4-0 #t) + ) + (set! (-> obj track-focus-tilt) + (seek-with-smooth (-> obj track-focus-tilt) f0-9 (* 5461.3335 (seconds-per-frame)) 0.25 1.0) + ) ) + (set! s4-0 #t) ) ) - (if (not s4-0) - (set! (-> obj track-focus-tilt) - (seek-with-smooth (-> obj track-focus-tilt) 0.0 (* 5461.3335 (-> pp clock seconds-per-frame)) 0.25 1.0) - ) - ) - ) - (let ((s3-2 (new 'stack-no-clear 'vector)) - (s4-1 (new 'stack-no-clear 'quaternion)) - ) - (vector-rotate90-around-y! s3-2 s5-0) - (quaternion-vector-angle! s4-1 s3-2 (+ 4551.1113 (-> obj track-focus-tilt))) - (quaternion*! (-> obj root quat) s4-1 (-> obj root quat)) ) + (if (not s4-0) + (set! (-> obj track-focus-tilt) + (seek-with-smooth (-> obj track-focus-tilt) 0.0 (* 5461.3335 (seconds-per-frame)) 0.25 1.0) + ) + ) + ) + (let ((s3-2 (new 'stack-no-clear 'vector)) + (s4-1 (new 'stack-no-clear 'quaternion)) + ) + (vector-rotate90-around-y! s3-2 s5-0) + (quaternion-vector-angle! s4-1 s3-2 (+ 4551.1113 (-> obj track-focus-tilt))) + (quaternion*! (-> obj root quat) s4-1 (-> obj root quat)) ) - (none) ) + (none) ) ;; definition for method 60 of type centipede @@ -635,50 +631,48 @@ ;; INFO: Used lq/sq ;; WARN: Return type mismatch int vs none. (defmethod centipede-method-183 centipede ((obj centipede)) - (with-pp - (when (not (and (-> obj next-state) (= (-> obj next-state name) 'thru-grating))) - (centipede-method-187 obj) - (when (= (-> obj id) 2) - (let ((overlap-parms (new 'stack-no-clear 'overlaps-others-params))) - (set! (-> overlap-parms options) (overlaps-others-options)) - (set! (-> overlap-parms collide-with-filter) (the-as collide-spec -1)) - (set! (-> overlap-parms tlist) *touching-list*) - (find-overlapping-shapes (-> obj root) overlap-parms) + (when (not (and (-> obj next-state) (= (-> obj next-state name) 'thru-grating))) + (centipede-method-187 obj) + (when (= (-> obj id) 2) + (let ((overlap-parms (new 'stack-no-clear 'overlaps-others-params))) + (set! (-> overlap-parms options) (overlaps-others-options)) + (set! (-> overlap-parms collide-with-filter) (the-as collide-spec -1)) + (set! (-> overlap-parms tlist) *touching-list*) + (find-overlapping-shapes (-> obj root) overlap-parms) + ) + ) + (let* ((travel-speed (-> *centipede-nav-enemy-info* run-travel-speed)) + (f0-2 (fmin 1.0 (/ (vector-length (-> obj root transv)) travel-speed))) + ) + (seek! (-> obj bobbing-intensity) f0-2 (* 4.0 (seconds-per-frame))) + ) + (quaternion-copy! (-> obj bobbing quat) (-> obj root quat)) + (set! (-> obj bobbing trans quad) (-> obj root trans quad)) + (let ((s5-0 (new 'stack-no-clear 'vector)) + (f30-1 (* 2662.4 (cos (* 283.70563 (the float (mod (current-time) 231)))))) + (bob-trans (-> obj bobbing trans)) ) - ) - (let* ((travel-speed (-> *centipede-nav-enemy-info* run-travel-speed)) - (f0-2 (fmin 1.0 (/ (vector-length (-> obj root transv)) travel-speed))) - ) - (seek! (-> obj bobbing-intensity) f0-2 (* 4.0 (-> pp clock seconds-per-frame))) - ) - (quaternion-copy! (-> obj bobbing quat) (-> obj root quat)) - (set! (-> obj bobbing trans quad) (-> obj root trans quad)) - (let ((s5-0 (new 'stack-no-clear 'vector)) - (f30-1 (* 2662.4 (cos (* 283.70563 (the float (mod (current-time) 231)))))) - (bob-trans (-> obj bobbing trans)) - ) - (vector-z-quaternion! s5-0 (-> obj root quat)) - (set! (-> s5-0 y) 0.0) - (vector-normalize! s5-0 (* f30-1 (-> obj bobbing-intensity))) - (vector+! (the-as vector (&-> bob-trans x)) (the-as vector (&-> bob-trans x)) s5-0) - ) + (vector-z-quaternion! s5-0 (-> obj root quat)) + (set! (-> s5-0 y) 0.0) + (vector-normalize! s5-0 (* f30-1 (-> obj bobbing-intensity))) + (vector+! (the-as vector (&-> bob-trans x)) (the-as vector (&-> bob-trans x)) s5-0) ) - (update-trans! (-> obj sound) (-> obj root trans)) - (when (!= (-> obj talking-volume) (-> obj desired-talking-volume)) - (seek! (-> obj talking-volume) (-> obj desired-talking-volume) (* 4.0 (-> pp clock seconds-per-frame))) - (update-vol! (-> obj sound) (-> obj talking-volume)) - ) - (update! (-> obj sound)) - (update-trans! (-> obj legs-sound) (-> obj root trans)) - (let ((f0-20 (fmin 1.0 (* 0.00012207031 (vector-length (-> obj root transv)))))) - (when (!= (-> obj legs-volume) f0-20) - (seek! (-> obj legs-volume) f0-20 (* 4.0 (-> pp clock seconds-per-frame))) - (update-vol! (-> obj legs-sound) (-> obj legs-volume)) - ) - ) - (update! (-> obj legs-sound)) - (none) ) + (update-trans! (-> obj sound) (-> obj root trans)) + (when (!= (-> obj talking-volume) (-> obj desired-talking-volume)) + (seek! (-> obj talking-volume) (-> obj desired-talking-volume) (* 4.0 (seconds-per-frame))) + (update-vol! (-> obj sound) (-> obj talking-volume)) + ) + (update! (-> obj sound)) + (update-trans! (-> obj legs-sound) (-> obj root trans)) + (let ((f0-20 (fmin 1.0 (* 0.00012207031 (vector-length (-> obj root transv)))))) + (when (!= (-> obj legs-volume) f0-20) + (seek! (-> obj legs-volume) f0-20 (* 4.0 (seconds-per-frame))) + (update-vol! (-> obj legs-sound) (-> obj legs-volume)) + ) + ) + (update! (-> obj legs-sound)) + (none) ) ;; definition for method 55 of type centipede @@ -688,90 +682,78 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (let ((t9-0 (method-of-type nav-enemy track-target!))) - (t9-0 obj) - ) - (let ((a0-3 (handle->process (-> obj focus handle)))) - (when a0-3 - (let ((f0-0 (-> (get-trans (the-as process-focusable a0-3) 1) y))) - (if (!= f0-0 -40959590.0) - (set! (-> obj focus-gnd-height) f0-0) - ) - ) - ) - ) - (let ((s5-0 (-> obj root))) - (set! (-> s5-0 gspot-pos quad) (-> s5-0 trans quad)) - (let ((v1-12 (-> obj nav)) - (a0-8 (-> s5-0 trans)) - (a1-2 (new 'stack-no-clear 'nav-find-poly-parms)) - ) - (vector-! (-> a1-2 point) a0-8 (-> v1-12 state mesh bounds)) - (set! (-> a1-2 y-threshold) (-> v1-12 nearest-y-threshold)) - (set! (-> a1-2 ignore) (the-as uint 2)) - (let ((a1-3 (find-poly-containing-point-local (-> v1-12 state mesh) a1-2)) - (s4-0 (new 'stack-no-clear 'collide-query)) - ) - (when a1-3 - (let ((s2-0 (-> obj nav)) - (s3-0 (-> s4-0 best-other-tri intersect)) - ) - (let ((a3-2 (-> s4-0 best-other-tri normal)) - (v1-15 (-> s5-0 trans)) - ) - (project-point-onto-plane-of-poly-local - (-> s2-0 state mesh) - a1-3 - s3-0 - a3-2 - (vector-! (new 'stack-no-clear 'vector) v1-15 (-> s2-0 state mesh bounds)) - ) - ) - (vector+! s3-0 s3-0 (-> s2-0 state mesh bounds)) - ) - 0 - (let ((f0-2 1024.0)) - (if (>= (* f0-2 f0-2) (vector-vector-xz-distance-squared (-> s4-0 best-other-tri intersect) (-> s5-0 trans))) - (set! (-> s5-0 gspot-pos y) (-> s4-0 best-other-tri intersect y)) - ) - ) - ) - ) - ) - (let ((f0-6 (-> obj root trans y))) - (cond - ((>= (-> s5-0 gspot-pos y) f0-6) - (set! (-> s5-0 trans y) (-> s5-0 gspot-pos y)) - ) - ((and (!= (-> obj focus-gnd-height) -40959590.0) - (>= (- (-> obj focus-gnd-height) (-> s5-0 gspot-pos y)) 4096.0) - ) - (set! (-> s5-0 trans y) (seek-with-smooth - (-> s5-0 trans y) - (-> obj focus-gnd-height) - (* 24576.0 (-> pp clock seconds-per-frame)) - 0.25 - 1.0 - ) - ) - ) - (else - (set! (-> s5-0 trans y) (seek-with-smooth - (-> s5-0 trans y) - (-> s5-0 gspot-pos y) - (* 24576.0 (-> pp clock seconds-per-frame)) - 0.25 - 1.0 - ) - ) - ) - ) - ) - ) - (centipede-method-183 obj) - (none) + (let ((t9-0 (method-of-type nav-enemy track-target!))) + (t9-0 obj) ) + (let ((a0-3 (handle->process (-> obj focus handle)))) + (when a0-3 + (let ((f0-0 (-> (get-trans (the-as process-focusable a0-3) 1) y))) + (if (!= f0-0 -40959590.0) + (set! (-> obj focus-gnd-height) f0-0) + ) + ) + ) + ) + (let ((s5-0 (-> obj root))) + (set! (-> s5-0 gspot-pos quad) (-> s5-0 trans quad)) + (let ((v1-12 (-> obj nav)) + (a0-8 (-> s5-0 trans)) + (a1-2 (new 'stack-no-clear 'nav-find-poly-parms)) + ) + (vector-! (-> a1-2 point) a0-8 (-> v1-12 state mesh bounds)) + (set! (-> a1-2 y-threshold) (-> v1-12 nearest-y-threshold)) + (set! (-> a1-2 ignore) (the-as uint 2)) + (let ((a1-3 (find-poly-containing-point-local (-> v1-12 state mesh) a1-2)) + (s4-0 (new 'stack-no-clear 'collide-query)) + ) + (when a1-3 + (let ((s2-0 (-> obj nav)) + (s3-0 (-> s4-0 best-other-tri intersect)) + ) + (let ((a3-2 (-> s4-0 best-other-tri normal)) + (v1-15 (-> s5-0 trans)) + ) + (project-point-onto-plane-of-poly-local + (-> s2-0 state mesh) + a1-3 + s3-0 + a3-2 + (vector-! (new 'stack-no-clear 'vector) v1-15 (-> s2-0 state mesh bounds)) + ) + ) + (vector+! s3-0 s3-0 (-> s2-0 state mesh bounds)) + ) + 0 + (let ((f0-2 1024.0)) + (if (>= (* f0-2 f0-2) (vector-vector-xz-distance-squared (-> s4-0 best-other-tri intersect) (-> s5-0 trans))) + (set! (-> s5-0 gspot-pos y) (-> s4-0 best-other-tri intersect y)) + ) + ) + ) + ) + ) + (let ((f0-6 (-> obj root trans y))) + (cond + ((>= (-> s5-0 gspot-pos y) f0-6) + (set! (-> s5-0 trans y) (-> s5-0 gspot-pos y)) + ) + ((and (!= (-> obj focus-gnd-height) -40959590.0) + (>= (- (-> obj focus-gnd-height) (-> s5-0 gspot-pos y)) 4096.0) + ) + (set! (-> s5-0 trans y) + (seek-with-smooth (-> s5-0 trans y) (-> obj focus-gnd-height) (* 24576.0 (seconds-per-frame)) 0.25 1.0) + ) + ) + (else + (set! (-> s5-0 trans y) + (seek-with-smooth (-> s5-0 trans y) (-> s5-0 gspot-pos y) (* 24576.0 (seconds-per-frame)) 0.25 1.0) + ) + ) + ) + ) + ) + (centipede-method-183 obj) + (none) ) ;; definition for method 116 of type centipede @@ -1190,7 +1172,7 @@ (vector-seek-3d-smooth! (-> (the-as process-focusable v1-3) root trans) (-> self root trans) - (* 28672.0 (-> self clock seconds-per-frame)) + (* 28672.0 (seconds-per-frame)) 0.8 ) ) diff --git a/test/decompiler/reference/jak2/levels/under/jellyfish_REF.gc b/test/decompiler/reference/jak2/levels/under/jellyfish_REF.gc index 67c95e2b17..2b865f07b3 100644 --- a/test/decompiler/reference/jak2/levels/under/jellyfish_REF.gc +++ b/test/decompiler/reference/jak2/levels/under/jellyfish_REF.gc @@ -481,7 +481,7 @@ ) :trans (behavior () (local-vars (a0-8 vector) (gp-2 vector)) - (seek! (-> self tentacle-blend) 1.0 (-> self clock seconds-per-frame)) + (seek! (-> self tentacle-blend) 1.0 (seconds-per-frame)) (hover-nav-control-method-11 (-> self hover) (jellyfish-method-161 self (new 'stack-no-clear 'vector) (get-norm! (-> self sync) 0)) @@ -541,7 +541,7 @@ ) :trans (behavior () (local-vars (gp-0 vector)) - (seek! (-> self tentacle-blend) 1.0 (-> self clock seconds-per-frame)) + (seek! (-> self tentacle-blend) 1.0 (seconds-per-frame)) (when (>= (- (current-time) (-> self state-time)) (seconds 0.1)) (let ((v1-4 (-> self focus aware))) (cond @@ -592,7 +592,7 @@ (none) ) :trans (behavior () - (seek! (-> self tentacle-blend) 0.0 (-> self clock seconds-per-frame)) + (seek! (-> self tentacle-blend) 0.0 (seconds-per-frame)) (none) ) :code (behavior () @@ -712,7 +712,7 @@ (let ((s3-0 (new 'stack-no-clear 'quaternion))) (vector-normalize! s5-1 1.0) (vector-normalize! s4-1 1.0) - (quaternion-from-two-vectors-partial! s3-0 s5-1 s4-1 (* 8.0 (-> self clock seconds-per-frame))) + (quaternion-from-two-vectors-partial! s3-0 s5-1 s4-1 (* 8.0 (seconds-per-frame))) (vector-orient-by-quat! s5-1 s5-1 s3-0) ) (vector-normalize! s5-1 (fmin f30-0 (+ 16384.0 f28-0))) @@ -1225,41 +1225,39 @@ - tracks when the enemy was last drawn - looks at the target and handles attacking @TODO Not extremely well understood yet" - (with-pp - (let ((v1-1 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) (-> obj main-joint-acc) (-> obj root quat)))) - (+! (-> obj tentacle-clock) - (* (lerp-scale 1.0 10.0 (fmax (fmax (fmax 0.0 (fabs (-> v1-1 x))) (-> v1-1 y)) (fabs (-> v1-1 z))) 0.0 24576.0) - (-> pp clock seconds-per-frame) - ) - ) - ) - (when (not (-> obj tentacles-initialized)) - (set! (-> obj tentacles-initialized) #t) - (dotimes (s5-0 5) - (initialize-chain-joints (-> obj tentacles s5-0)) + (let ((v1-1 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) (-> obj main-joint-acc) (-> obj root quat)))) + (+! (-> obj tentacle-clock) + (* (lerp-scale 1.0 10.0 (fmax (fmax (fmax 0.0 (fabs (-> v1-1 x))) (-> v1-1 y)) (fabs (-> v1-1 z))) 0.0 24576.0) + (seconds-per-frame) + ) ) - ) - (dotimes (s5-1 5) - (update (-> obj tentacles s5-1) obj) - ) - (let ((a1-3 (handle->process (-> obj focus handle)))) - (if a1-3 - (los-control-method-9 (-> obj los) (the-as process-focusable a1-3) (the-as vector #f) 4096.0) - ) - ) - (let ((a0-10 (handle->process (-> obj focus handle)))) - (when (and a0-10 - (focus-test? (the-as process-focusable a0-10) mech) - (not (logtest? (-> (the-as process-focusable a0-10) focus-status) (focus-status dead ignore))) - ) - (set! (-> obj focus-pos quad) (-> (get-trans (the-as process-focusable a0-10) 0) quad)) - (set! (-> obj path-player-u) (get-furthest-point-on-path (-> obj path) (-> obj focus-pos))) - ) - ) - (set! (-> obj path-my-u) (get-furthest-point-on-path (-> obj path) (-> obj root trans))) - ((method-of-type hover-enemy track-target!) obj) - (none) ) + (when (not (-> obj tentacles-initialized)) + (set! (-> obj tentacles-initialized) #t) + (dotimes (s5-0 5) + (initialize-chain-joints (-> obj tentacles s5-0)) + ) + ) + (dotimes (s5-1 5) + (update (-> obj tentacles s5-1) obj) + ) + (let ((a1-3 (handle->process (-> obj focus handle)))) + (if a1-3 + (los-control-method-9 (-> obj los) (the-as process-focusable a1-3) (the-as vector #f) 4096.0) + ) + ) + (let ((a0-10 (handle->process (-> obj focus handle)))) + (when (and a0-10 + (focus-test? (the-as process-focusable a0-10) mech) + (not (logtest? (-> (the-as process-focusable a0-10) focus-status) (focus-status dead ignore))) + ) + (set! (-> obj focus-pos quad) (-> (get-trans (the-as process-focusable a0-10) 0) quad)) + (set! (-> obj path-player-u) (get-furthest-point-on-path (-> obj path) (-> obj focus-pos))) + ) + ) + (set! (-> obj path-my-u) (get-furthest-point-on-path (-> obj path) (-> obj root trans))) + ((method-of-type hover-enemy track-target!) obj) + (none) ) ;; definition for method 116 of type jellyfish diff --git a/test/decompiler/reference/jak2/levels/under/under-part_REF.gc b/test/decompiler/reference/jak2/levels/under/under-part_REF.gc index 3f04bbcb1c..4599ca3ab7 100644 --- a/test/decompiler/reference/jak2/levels/under/under-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/under/under-part_REF.gc @@ -411,22 +411,8 @@ (let ((s3-0 (new 'stack-no-clear 'vector))) (sp-kill-particle arg0 arg1) (set-vector! s3-0 (-> arg2 vector 0 x) f30-0 (-> arg2 vector 0 z) 1.0) - (let ((t9-1 sp-launch-particles-var) - (a0-3 *sp-particle-system-2d*) - (a1-2 (-> *part-id-table* 2226)) - (a2-1 *launch-matrix*) - ) - (set! (-> a2-1 trans quad) (-> s3-0 quad)) - (t9-1 a0-3 a1-2 a2-1 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) - (let ((t9-2 sp-launch-particles-var) - (a0-4 *sp-particle-system-3d*) - (a1-3 (-> *part-id-table* 2227)) - (a2-2 *launch-matrix*) - ) - (set! (-> a2-2 trans quad) (-> s3-0 quad)) - (t9-2 a0-4 a1-3 a2-2 (the-as sparticle-launch-state #f) (the-as sparticle-launch-control #f) 1.0) - ) + (launch-particles (-> *part-id-table* 2226) s3-0) + (launch-particles :system *sp-particle-system-3d* (-> *part-id-table* 2227) s3-0) ) ) ) diff --git a/test/decompiler/reference/jak2/levels/under/under-shoot-block_REF.gc b/test/decompiler/reference/jak2/levels/under/under-shoot-block_REF.gc index 41c0c15f99..d807a47661 100644 --- a/test/decompiler/reference/jak2/levels/under/under-shoot-block_REF.gc +++ b/test/decompiler/reference/jak2/levels/under/under-shoot-block_REF.gc @@ -1384,12 +1384,7 @@ (set! (-> gp-1 vector 1 quad) (-> gp-1 vector 0 quad)) (+! (-> gp-1 vector 1 y) 16384.0) (until (>= 409.6 (fabs (- (-> gp-1 vector 1 y) (-> self root trans y)))) - (vector-seek-3d-smooth! - (-> self root trans) - (-> gp-1 vector 1) - (* 30720.0 (-> self clock seconds-per-frame)) - 0.25 - ) + (vector-seek-3d-smooth! (-> self root trans) (-> gp-1 vector 1) (* 30720.0 (seconds-per-frame)) 0.25) (rider-post) (suspend) ) @@ -1414,12 +1409,7 @@ (set! (-> gp-0 vector 1 quad) (-> gp-0 vector 0 quad)) (+! (-> gp-0 vector 1 y) 16384.0) (until (>= 409.6 (fabs (- (-> gp-0 vector 1 y) (-> self root trans y)))) - (vector-seek-3d-smooth! - (-> self root trans) - (-> gp-0 vector 1) - (* 30720.0 (-> self clock seconds-per-frame)) - 0.25 - ) + (vector-seek-3d-smooth! (-> self root trans) (-> gp-0 vector 1) (* 30720.0 (seconds-per-frame)) 0.25) (rider-post) (suspend) ) @@ -1676,12 +1666,7 @@ (set! (-> gp-1 vector 1 quad) (-> gp-1 vector 0 quad)) (+! (-> gp-1 vector 1 y) -1228.8) (until (>= 40.96 (fabs (- (-> gp-1 vector 1 y) (-> self root trans y)))) - (vector-seek-3d-smooth! - (-> self root trans) - (-> gp-1 vector 1) - (* 8192.0 (-> self clock seconds-per-frame)) - 0.25 - ) + (vector-seek-3d-smooth! (-> self root trans) (-> gp-1 vector 1) (* 8192.0 (seconds-per-frame)) 0.25) (transform-post) (suspend) ) @@ -1719,12 +1704,7 @@ (set! (-> gp-1 vector 1 y) (-> self puzzle origin y)) (+! (-> gp-1 vector 1 y) -8192.0) (until (>= 40.96 (fabs (- (-> gp-1 vector 1 y) (-> self root trans y)))) - (vector-seek-3d-smooth! - (-> self root trans) - (-> gp-1 vector 1) - (* 12288.0 (-> self clock seconds-per-frame)) - 0.25 - ) + (vector-seek-3d-smooth! (-> self root trans) (-> gp-1 vector 1) (* 12288.0 (seconds-per-frame)) 0.25) (transform-post) (suspend) ) @@ -1768,7 +1748,7 @@ ) (quaternion-copy! gp-0 (-> self root quat)) (while (< (- (current-time) (-> self state-time)) (seconds 1.25)) - (+! f30-0 (* 65536.0 (-> self clock seconds-per-frame))) + (+! f30-0 (* 65536.0 (seconds-per-frame))) (quaternion-vector-angle! s5-0 (-> self rot-axis) (- f30-0)) (quaternion*! (-> self root quat) s5-0 gp-0) (suspend) @@ -1779,7 +1759,7 @@ ) :post (behavior () (let ((gp-0 (-> self root))) - (set! (-> gp-0 transv y) (- (-> gp-0 transv y) (* 348160.0 (-> self clock seconds-per-frame)))) + (set! (-> gp-0 transv y) (- (-> gp-0 transv y) (* 348160.0 (seconds-per-frame)))) (let ((a2-0 (new 'stack-no-clear 'collide-query))) (set! (-> a2-0 collide-with) (-> gp-0 root-prim prim-core collide-with)) (set! (-> a2-0 ignore-process0) self) diff --git a/test/decompiler/reference/jak2/levels/under/under-sig-obs_REF.gc b/test/decompiler/reference/jak2/levels/under/under-sig-obs_REF.gc index 325961fc58..045a3c0ad5 100644 --- a/test/decompiler/reference/jak2/levels/under/under-sig-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/under/under-sig-obs_REF.gc @@ -247,7 +247,7 @@ For example for an elevator pre-compute the distance between the first and last ) (('hint) (when (>= (-> self hint-count) 0.0) - (+! (-> self hint-count) (-> self clock seconds-per-frame)) + (+! (-> self hint-count) (seconds-per-frame)) (if (< 6.0 (-> self hint-count)) #f ) @@ -328,10 +328,8 @@ For example for an elevator pre-compute the distance between the first and last ) ) ) - (+! (-> self angle-flip-vel) - (* -0.5 (-> self clock seconds-per-frame) (- (-> self angle-flip) (-> self dest-angle))) - ) - (+! (-> self angle-flip-vel) (* -6.0 (-> self clock seconds-per-frame) (-> self angle-flip-vel))) + (+! (-> self angle-flip-vel) (* -0.5 (seconds-per-frame) (- (-> self angle-flip) (-> self dest-angle)))) + (+! (-> self angle-flip-vel) (* -6.0 (seconds-per-frame) (-> self angle-flip-vel))) (+! (-> self angle-flip) (-> self angle-flip-vel)) (if (!= *bot-record-path* -1) (set! (-> self angle-flip) 0.0) @@ -356,7 +354,7 @@ For example for an elevator pre-compute the distance between the first and last ) (vector-normalize! s5-2 1.0) (quaternion-vector-angle! gp-2 s5-2 910.2222) - (quaternion-pseudo-seek (-> self root quat) (-> self root quat) gp-2 (-> self clock seconds-per-frame)) + (quaternion-pseudo-seek (-> self root quat) (-> self root quat) gp-2 (seconds-per-frame)) ) ) (quaternion-normalize! (-> self root quat)) @@ -426,7 +424,7 @@ For example for an elevator pre-compute the distance between the first and last (vector-rotate90-around-y! s4-0 s4-0) (quaternion-copy! gp-1 (-> self root quat)) (until #f - (+! f30-1 (* 65536.0 (-> self clock seconds-per-frame))) + (+! f30-1 (* 65536.0 (seconds-per-frame))) (quaternion-vector-angle! s5-1 s4-0 (- f30-1)) (quaternion*! (-> self root quat) s5-1 gp-1) (suspend) @@ -437,7 +435,7 @@ For example for an elevator pre-compute the distance between the first and last ) :post (behavior () (let ((v1-0 (-> self root))) - (set! (-> v1-0 transv y) (- (-> v1-0 transv y) (* 512000.0 (-> self clock seconds-per-frame)))) + (set! (-> v1-0 transv y) (- (-> v1-0 transv y) (* 512000.0 (seconds-per-frame)))) (let ((a2-0 (new 'stack-no-clear 'collide-query))) (set! (-> a2-0 collide-with) (-> v1-0 root-prim prim-core collide-with)) (set! (-> a2-0 ignore-process0) self) @@ -1488,11 +1486,7 @@ This commonly includes things such as: ) ) (when (!= (-> self volume) (-> self desired-volume)) - (seek! - (-> self volume) - (-> self desired-volume) - (* (-> self volume-seek-speed) (-> self clock seconds-per-frame)) - ) + (seek! (-> self volume) (-> self desired-volume) (* (-> self volume-seek-speed) (seconds-per-frame))) (when (nonzero? (-> self approach-sound-id)) (when *sound-player-enable* (let ((v1-12 (the-as sound-rpc-set-param (get-sound-buffer-entry)))) diff --git a/test/decompiler/reference/jak2/levels/under/underb-master_REF.gc b/test/decompiler/reference/jak2/levels/under/underb-master_REF.gc index 57e0b7446b..af7ef6fdf0 100644 --- a/test/decompiler/reference/jak2/levels/under/underb-master_REF.gc +++ b/test/decompiler/reference/jak2/levels/under/underb-master_REF.gc @@ -431,9 +431,7 @@ ) (cond ((-> self air-charge-up?) - (set! (-> self air-supply) - (seek-with-smooth (-> self air-supply) 1.0 (* 2.0 (-> self clock seconds-per-frame)) 0.125 0.01) - ) + (set! (-> self air-supply) (seek-with-smooth (-> self air-supply) 1.0 (* 2.0 (seconds-per-frame)) 0.125 0.01)) (when (= (-> self air-supply) 1.0) (set! (-> self air-charge-up?) #f) (set! (-> self air-supply) 1.01) @@ -442,7 +440,7 @@ ) ) (else - (seek! (-> self air-supply) 0.0 (* 0.04 (-> self clock seconds-per-frame))) + (seek! (-> self air-supply) 0.0 (* 0.04 (seconds-per-frame))) (cond ((= (-> self air-supply) 0.0) (let ((a1-6 (new 'stack-no-clear 'event-message-block))) @@ -1011,7 +1009,7 @@ (when gp-0 (let ((f0-0 (-> (the-as water-anim gp-0) root trans y))) (when (!= f0-0 (-> self up-y)) - (let ((f0-4 (seek f0-0 (-> self up-y) (* 12288.0 (-> self clock seconds-per-frame))))) + (let ((f0-4 (seek f0-0 (-> self up-y) (* 12288.0 (seconds-per-frame))))) (send-event gp-0 'move-to-y f0-4) ) ) @@ -1113,7 +1111,7 @@ (when gp-0 (let ((f0-0 (-> (the-as water-anim gp-0) root trans y))) (when (!= f0-0 (-> self down-y)) - (let ((f0-4 (seek f0-0 (-> self down-y) (* 12288.0 (-> self clock seconds-per-frame))))) + (let ((f0-4 (seek f0-0 (-> self down-y) (* 12288.0 (seconds-per-frame))))) (send-event gp-0 'move-to-y f0-4) ) ) @@ -1269,7 +1267,3 @@ This commonly includes things such as: 0 (none) ) - - - -