decomp3: support for virtual states inheriting from their own type's virtual states, gun-yellow-shot, gun-red-shot, gun-dark-shot (#3438)

This commit is contained in:
Hat Kid 2024-03-31 17:14:14 +02:00 committed by GitHub
parent afea4f7694
commit c96e44ab30
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
52 changed files with 28550 additions and 367 deletions

View file

@ -355,6 +355,21 @@ FormElement* rewrite_virtual_defstate(
inherit_info = {{mot_mr.maps.strings.at(0), mot_mr.maps.strings.at(1)}};
}
// jak 3: some virtual states set their parent here and inherit from their own type's states...
std::string maybe_parent_state;
std::string maybe_state_type;
auto maybe_parent = elt->body()->at(body_idx);
auto maybe_parent_matcher =
Matcher::set(Matcher::deref(Matcher::any_reg(), false, {DerefTokenMatcher::string("parent")}),
Matcher::op(GenericOpMatcher::fixed(FixedOperatorKind::METHOD_OF_TYPE),
{Matcher::any_symbol(0), Matcher::any_constant_token(1)}));
auto maybe_parent_mr = match(maybe_parent_matcher, maybe_parent);
if (maybe_parent_mr.matched) {
maybe_state_type = maybe_parent_mr.maps.strings.at(0);
maybe_parent_state = maybe_parent_mr.maps.strings.at(1);
body_idx++;
}
// checks to check: method type is a state
// if inherit matches expected.
@ -411,7 +426,14 @@ FormElement* rewrite_virtual_defstate(
// expected_state_name, type_name);
}
} else {
if (inherit_info) {
// if we set our parent state, check that that state's type and this type are the same
if (inherit_info && maybe_parent_mr.matched && maybe_state_type == type_name) {
env.func->warnings.warning(
"Virtual defstate {} is inheriting from state {} which is one of its own type's "
"states.",
expected_state_name, maybe_parent_state);
}
if (inherit_info && !maybe_parent_mr.matched) {
env.func->warnings.error_and_throw(
"Virtual defstate for state {} in type {}: the state wasn't defined in the "
"parent but was inherited.",
@ -421,7 +443,7 @@ FormElement* rewrite_virtual_defstate(
}
// checks: parent_type_name is the parent
if (inherit_info) {
if (inherit_info && !maybe_parent_mr.matched) {
auto child_type_info = env.dts->ts.lookup_type(type_name);
if (child_type_info->get_parent() != inherit_info->parent_type_name) {
env.func->warnings.error_and_throw(
@ -451,8 +473,13 @@ FormElement* rewrite_virtual_defstate(
elt->body(), body_idx + 1, env, expected_state_name, elt->entries().at(0).dest,
method_info.type.substitute_for_method_call(type_name), pool, type_name, skip_states);
return pool.alloc_element<DefstateElement>(type_name, expected_state_name, "", entries, true,
state_override);
std::string parent_str;
if (!maybe_parent_state.empty()) {
parent_str = fmt::format("({} {})", type_name, maybe_parent_state);
}
return pool.alloc_element<DefstateElement>(type_name, expected_state_name, parent_str, entries,
true, state_override);
}
FormElement* rewrite_virtual_defstate_with_nonvirtual_inherit(
@ -481,8 +508,6 @@ FormElement* rewrite_virtual_defstate_with_nonvirtual_inherit(
// (set! (-> gp-6 exit) (the-as (function object) L251))
// (set! (-> gp-6 trans) (the-as (function object) L253))
// )
// ASSERT(elt->body()->size() > 1);
env.func->warnings.warning("Encountered virtual defstate {} with non-virtual inherit.",
expected_state_name);
// variable at the top of let, contains the static state with name exptected_state_name

View file

@ -2265,16 +2265,16 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define-extern matrix-fur-compose (function matrix vector vector vector matrix))
(define-extern matrix-fu-compose (function matrix vector vector vector matrix))
(define-extern matrix-fu-compose (function matrix vector vector matrix))
(define-extern matrix-fr-compose (function matrix vector vector vector matrix))
(define-extern matrix-ur-compose (function matrix vector vector vector matrix))
(define-extern matrix-f-u-compose (function matrix vector vector vector matrix))
(define-extern matrix-f-u-compose (function matrix vector vector matrix))
(define-extern matrix-f-r-compose (function matrix vector vector vector matrix))
(define-extern matrix-u-f-compose (function matrix vector vector matrix))
(define-extern matrix-u-r-compose (function matrix vector vector vector matrix))
(define-extern matrix-r-f-compose (function matrix vector vector vector matrix))
(define-extern matrix-r-u-compose (function matrix vector vector vector matrix))
(define-extern matrix-f-compose (function matrix vector vector vector matrix))
(define-extern matrix-f-compose (function matrix vector float matrix))
(define-extern matrix-u-compose (function matrix vector vector vector matrix))
(define-extern matrix-r-compose (function matrix vector vector vector matrix))
@ -7449,6 +7449,19 @@
(movie0 16)
(movie1 17)
(movie2 18)
(tm19 19)
(tm20 20)
(tm21 21)
(tm22 22)
(tm23 23)
(tm24 24)
(tm25 25)
(tm26 26)
(tm27 27)
(tm28 28)
(tm29 29)
(tm30 30)
(tm31 31)
)
;; ---level-h:task-mask
@ -7815,7 +7828,7 @@
it will kick out levels as needed to make a free slot, and set up a new level, and start
the load. This should only be used when you might want to start a load." (_type_ symbol symbol) level) ;; 12
(activate-levels! "Make all levels 'active!" (_type_) int) ;; 13
(level-group-method-14 () none) ;; 14 ;; (debug-print-entities (_type_ symbol type) none)
(debug-print-entities (_type_ symbol type string) none) ;; 14
(debug-draw-actors (_type_ symbol) none) ;; 15
(assign-draw-indices "Assign the order for levels to be drawn." (_type_) none) ;; 16
(actors-update (_type_) none) ;; 17
@ -7824,11 +7837,11 @@
(level-get-target-inside "Get the level that the player is 'in'." (_type_) level) ;; 20
(init-level-system "If needed, initialize the level system by loading common/art packages and allocating level heaps." (_type_ symbol) none) ;; 21
(art-group-get-by-name "Check all levels for an art group with the given name." (_type_ string (pointer level)) art-group) ;; 22 ;; (load-commands-set! (_type_ pair) none)
(level-group-method-23 () none) ;; 23 ;; (art-group-get-by-name (_type_ string (pointer uint32)) art-group)
(level-group-method-24 () none) ;; 24 ;; (alt-load-command-get-index (_type_ symbol int) pair)
(level-group-method-25 () none) ;; 25 ;; (update-vis-volumes (_type_) none)
(update-vis-volumes (_type_) none) ;; 23 ;; (art-group-get-by-name (_type_ string (pointer uint32)) art-group)
(level-group-method-24 (_type_) none) ;; 24 ;; (alt-load-command-get-index (_type_ symbol int) pair)
(print-volume-sizes (_type_) none) ;; 25
(status-of-level-and-borrows "Get the combined status of a level and borrow levels." (_type_ symbol symbol) symbol) ;; 26 ;; (update-vis-volumes-from-nav-mesh (_type_) none)
(do-nothing "Empty method." (_type_) none) ;; 27 ;; (print-volume-sizes (_type_) none)
(do-nothing "Empty method." (_type_) none) ;; 27
(load-in-progress? "Is there a load happening now?" (_type_) symbol) ;; 28 ;; (level-status (_type_ symbol) symbol)
(is-load-allowed? "Does the exclusive-load setting allow us to load this level?" (_type_ (pointer symbol)) symbol) ;; 29
(level-get-most-disposable "Get the level inside this level-group that should
@ -17943,7 +17956,7 @@
(radius float :offset-assert 56)
(duration float :offset-assert 60)
(duration-rand float :offset-assert 64)
(sound symbol :offset-assert 68)
(sound sound-spec :offset-assert 68)
(delay float :offset-assert 72)
(delay-rand float :offset-assert 76)
)
@ -20541,7 +20554,7 @@
(send-shoves (_type_ process touching-shapes-entry float float float) symbol) ;; 50
(above-ground? (_type_ collide-query vector collide-spec float float float) symbol) ;; 51
(water-info-init! (_type_ water-info collide-action) water-info) ;; 52
(collide-shape-method-53 () none) ;; 53 ;; (iterate-prims (_type_ (function collide-shape-prim none)) none)
(iterate-prims (_type_ (function collide-shape-prim none)) none) ;; 53
(collide-shape-method-54 () none) ;; 54 ;; (pusher-init (_type_) none)
)
)
@ -23187,6 +23200,7 @@
(declare-type entity-camera entity)
(declare-type entity-nav-mesh structure)
(declare-type entity-race-mesh entity)
(declare-type city-level-info structure)
(deftype bsp-node (structure)
@ -23238,11 +23252,11 @@
; (ambients symbol :offset-assert 156) ;; now just #t?
(subdivide-close float :offset 160)
(subdivide-far float :offset-assert 164)
; (race-meshes (array entity-race-mesh) :offset-assert 168)
(race-meshes (array entity-race-mesh) :offset-assert 168)
(actor-birth-order (pointer uint32) :offset 172)
(light-hash light-hash :offset-assert 176)
(nav-meshes (array entity-nav-mesh) :offset-assert 180)
; (actor-groups (array actor-group) :offset-assert 184)
(actor-groups (array actor-group) :offset-assert 184)
(region-trees (array drawable-tree-region-prim) :offset 188)
; (region-array region-array :offset-assert 192)
(collide-hash collide-hash :offset 196)
@ -25078,7 +25092,7 @@
:size-assert #x40
:flag-assert #xa00000040
(:methods
(entity-links-method-9 () none) ;; 9 ;; (birth? (_type_ vector) symbol)
(birth? (_type_ vector) symbol) ;; 9
)
)
@ -25232,7 +25246,7 @@
(sx float :offset 12)
(sy float :offset 28)
(rot float :offset 24)
(flag int32 :offset 16)
(flag int32 :offset 16 :score 1)
(matrix int32 :offset 20)
(warp-turns int32 :offset 16)
(r float :offset 32)
@ -28079,9 +28093,9 @@
(nav-mesh-method-19 () none) ;; 19 ;; (clamp-vector-to-mesh-no-gaps (_type_ vector nav-poly vector clamp-travel-vector-to-mesh-return-info) none)
(nav-mesh-method-20 () none) ;; 20 ;; (set-normals-from-adjacent-bounds (_type_ clamp-travel-vector-to-mesh-return-info) none)
(nav-mesh-method-21 () none) ;; 21 ;; (find-adjacent-bounds-one (_type_ vector nav-poly int int) none)
(nav-mesh-method-22 () none) ;; 22 ;; (compute-bounding-box-from-vertices (_type_ vector vector) none)
(nav-mesh-method-22 () none) ;; 22
(nav-mesh-method-23 () none) ;; 23 ;; (init-from-entity (_type_ entity-nav-mesh) none)
(nav-mesh-method-24 () none) ;; 24 ;; (handle-birth (_type_) none)
(compute-bounding-box-from-vertices (_type_ vector vector) none) ;; 24 ;; (handle-birth (_type_) none)
(nav-mesh-method-25 () none) ;; 25 ;; (handle-kill (_type_) none)
(nav-mesh-method-26 () none) ;; 26 ;; (update-navigation (_type_) none)
(nav-mesh-method-27 () none) ;; 27 ;; (new-nav-control (_type_ process-drawable) nav-control)
@ -28305,7 +28319,7 @@
:size-assert #x120
:flag-assert #x2f00000120
(:methods
(nav-control-method-9 () none) ;; 9 ;; (debug-draw (_type_) none)
(debug-draw (_type_) none) ;; 9
(nav-control-method-10 () none) ;; 10 ;; (point-in-bsphere? (_type_ vector) symbol)
(find-poly-containing-point-1 (_type_ vector) nav-poly) ;; 11
(cloest-point-on-mesh (_type_ vector vector nav-poly) nav-poly) ;; 12
@ -30928,10 +30942,10 @@
(define-extern *particle-vel* vector)
;; (define-extern birth-func-set-vel function) ;; (function object sparticle-cpuinfo sparticle-launchinfo none)
;; (define-extern birth-func-texture-group function) ;; (function int sparticle-cpuinfo sparticle-launchinfo none)
;; (define-extern rot-to-particle function)
(define-extern rot-to-particle (function degrees sprite-vec-data-2d matrix none))
;; (define-extern birth-func-flip-based-on-scale function)
;; (define-extern sparticle-2d-spline-align function)
;; (define-extern sparticle-2d-spline-align-instant function)
(define-extern sparticle-2d-spline-align-instant (function object sparticle-cpuinfo sprite-vec-data-2d object none))
;; (define-extern birth-func-inherit-size function)
;; (define-extern birth-func-texture-group-2d function)
;; (define-extern birth-func-set-vel-2d function)
@ -33185,7 +33199,7 @@
(define-extern slave-los-state->string (function slave-los-state string))
;; (define-extern cam-line-dma function) ;; (function pointer)
;; (define-extern camera-line2d function) ;; (function vector4w vector4w pointer)
;; (define-extern camera-plot-float-func function) ;; (function float float float float (function float float) vector4w none)
(define-extern camera-plot-float-func (function float float float float (function float float) vector4w none))
(define-extern camera-line-setup (function vector4w none))
(define-extern camera-line-draw (function vector vector none))
(define-extern camera-line (function vector vector vector4w none))
@ -33580,7 +33594,7 @@
:size-assert #x10
:flag-assert #xc00000010
(:methods
(curve2d-piecewise-method-10 (_type_ int symbol uint) none) ;; 10
(curve2d-piecewise-method-10 (_type_ int symbol int) none) ;; 10
(curve2d-piecewise-method-11 (_type_) none) ;; 11
)
)
@ -35357,7 +35371,7 @@
;; (define-extern spt-birth-func-part-jump-droppings-for function)
(define-extern process-drawable-burn-effect (function time-frame rgbaf :behavior target))
(define-extern lightning-probe-callback (function lightning-tracker none))
;; (define-extern process-drawable-shock-effect-replace function)
(define-extern process-drawable-shock-effect-replace (function process-drawable lightning-spec (function lightning-tracker none) int int float none))
(define-extern process-drawable-shock-effect (function process-drawable lightning-spec (function lightning-tracker none) sparticle-launcher int int float object))
;; (define-extern process-drawable-shock-wall-effect function) ;; (function process-drawable lightning-spec (function lightning-tracker none) sparticle-launcher symbol)
(define-extern process-drawable2-shock-effect (function process-drawable process-drawable lightning-spec (function lightning-tracker none) sparticle-launcher none))
@ -35369,28 +35383,28 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; (define-extern sparticle-track-gun-joint function)
;; (define-extern *red-shot-colors* object) ;; (pointer rgba)
;; (define-extern *range-explo-dust-color* curve-color-fast)
;; (define-extern *range-explo-dust-alpha* curve2d-fast)
;; (define-extern *range-explo-dust-scale-x* curve2d-fast)
;; (define-extern *range-explo-dust-scale-y* curve2d-fast)
;; (define-extern *curve-explo-dust-alpha* curve2d-fast)
;; (define-extern *curve-explo-dust-scale-x* curve2d-fast)
;; (define-extern *curve-explo-dust-scale-y* curve2d-fast)
;; (define-extern *part-gun-red3-explosion-dust-in-curve-settings* object)
;; (define-extern *range-explo-color* curve-color-fast)
;; (define-extern *range-explo-alpha* curve2d-fast)
;; (define-extern *range-explo-scale-x* curve2d-fast)
;; (define-extern *range-explo-scale-y* curve2d-fast)
;; (define-extern *curve-explo-alpha* curve2d-fast)
;; (define-extern *curve-explo-scale-x* curve2d-fast)
;; (define-extern *curve-explo-scale-y* curve2d-fast)
;; (define-extern *part-gun-red3-explosion-texture-curve-settings* object)
;; (define-extern *curve-linear-up-red* object)
(define-extern *red-shot-colors* (pointer rgba))
(define-extern *range-explo-dust-color* curve-color-fast)
(define-extern *range-explo-dust-alpha* curve2d-fast)
(define-extern *range-explo-dust-scale-x* curve2d-fast)
(define-extern *range-explo-dust-scale-y* curve2d-fast)
(define-extern *curve-explo-dust-alpha* curve2d-fast)
(define-extern *curve-explo-dust-scale-x* curve2d-fast)
(define-extern *curve-explo-dust-scale-y* curve2d-fast)
(define-extern *part-gun-red3-explosion-dust-in-curve-settings* particle-curve-settings)
(define-extern *range-explo-color* curve-color-fast)
(define-extern *range-explo-alpha* curve2d-fast)
(define-extern *range-explo-scale-x* curve2d-fast)
(define-extern *range-explo-scale-y* curve2d-fast)
(define-extern *curve-explo-alpha* curve2d-fast)
(define-extern *curve-explo-scale-x* curve2d-fast)
(define-extern *curve-explo-scale-y* curve2d-fast)
(define-extern *part-gun-red3-explosion-texture-curve-settings* particle-curve-settings)
(define-extern *curve-linear-up-red* curve2d-piecewise)
(define-extern *red-shot-3-trail* light-trail-composition)
;; (define-extern *curve-yellow2-shot-alpha* object)
;; (define-extern *curve-yellow2-shot-color* curve-color-fast)
;; (define-extern *curve-linear-down-long* curve2d-fast)
(define-extern *curve-yellow2-shot-alpha* curve2d-piecewise)
(define-extern *curve-yellow2-shot-color* curve-color-fast)
(define-extern *curve-linear-down-long* curve2d-fast)
(define-extern *yellow-shot-2-trail* light-trail-composition)
;; (define-extern check-shell-level1 function) ;; (function sparticle-system sparticle-cpuinfo vector none)
;; (define-extern check-shell-level2 function) ;; (function sparticle-system sparticle-cpuinfo vector none)
@ -35401,20 +35415,20 @@
;; (define-extern birth-func-converge function)
;; (define-extern sparticle-red-2-converge function)
;; (define-extern sparticle-red-2-glow-trail-halt function)
;; (define-extern *gun-dark-3-nuke-fade-time* object)
;; (define-extern *gun-dark-3-nuke-fade-curve* object)
;; (define-extern *gun-dark-3-nuke-blur-segs* object)
;; (define-extern *gun-dark-3-nuke-blur-time* object)
;; (define-extern *gun-dark-3-nuke-blur-curve* object)
;; (define-extern *gun-dark-3-mushroom-speed* object)
;; (define-extern *gun-dark-3-mushroom-size-time* object)
;; (define-extern *gun-dark-3-nuke-mushroom-size-curve-x* object)
;; (define-extern *gun-dark-3-nuke-mushroom-size-curve-y* object)
;; (define-extern *gun-dark-3-nuke-fade-time-small* object)
;; (define-extern *gun-dark-3-nuke-fade-curve-small* object)
;; (define-extern *gun-dark-3-nuke-blur-segs-small* object)
;; (define-extern *gun-dark-3-nuke-blur-time-small* object)
;; (define-extern *gun-dark-3-nuke-blur-curve-small* object)
(define-extern *gun-dark-3-nuke-fade-time* time-frame)
(define-extern *gun-dark-3-nuke-fade-curve* curve-color-piecewise)
(define-extern *gun-dark-3-nuke-blur-segs* uint)
(define-extern *gun-dark-3-nuke-blur-time* time-frame)
(define-extern *gun-dark-3-nuke-blur-curve* curve2d-piecewise)
(define-extern *gun-dark-3-mushroom-speed* float)
(define-extern *gun-dark-3-mushroom-size-time* time-frame)
(define-extern *gun-dark-3-nuke-mushroom-size-curve-x* curve2d-piecewise)
(define-extern *gun-dark-3-nuke-mushroom-size-curve-y* curve2d-piecewise)
(define-extern *gun-dark-3-nuke-fade-time-small* time-frame)
(define-extern *gun-dark-3-nuke-fade-curve-small* curve-color-piecewise)
(define-extern *gun-dark-3-nuke-blur-segs-small* uint)
(define-extern *gun-dark-3-nuke-blur-time-small* time-frame)
(define-extern *gun-dark-3-nuke-blur-curve-small* curve2d-piecewise)
;; (define-extern spt-func-part-gun-dark-1-upgrade-shot-edges function)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@ -36068,9 +36082,8 @@
;; gun-blue-shot ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#|
(deftype gun-blue-shot-3 (projectile)
((hit-actor? basic :offset-assert 512)
((hit-actor? symbol :offset-assert 512)
(start-pos vector :inline :offset-assert 528)
(track-mode uint64 :offset-assert 544)
(random-travel-distance float :offset-assert 552)
@ -36083,9 +36096,7 @@
dissipate ;; 21
)
)
|#
#|
(deftype dist-dot-val (structure)
((dot float :offset-assert 0)
(dist float :offset-assert 4)
@ -36096,54 +36107,44 @@
:size-assert #x30
:flag-assert #x900000030
)
|#
#|
(deftype light-trail-tracker-blue-3 (light-trail-tracker-projectile)
()
:method-count-assert 22
:size-assert #xb8
:flag-assert #x16004000b8
)
|#
#|
(deftype target-quality-info (structure)
((targ uint64 :offset-assert 0)
((targ handle :offset-assert 0)
(value float :offset-assert 8)
)
:method-count-assert 9
:size-assert #xc
:flag-assert #x90000000c
)
|#
#|
(deftype timeframe-wrapper (structure)
((time uint64 :offset-assert 0)
((time time-frame :offset-assert 0)
)
:method-count-assert 9
:size-assert #x8
:flag-assert #x900000008
)
|#
#|
(deftype gun-blue-2-lightning-info (structure)
((pts UNKNOWN 32 :offset-assert 0)
((pts vector 32 :inline :offset-assert 0)
(num-pts int8 :offset-assert 512)
(should-draw-terminal-sparks? basic :offset-assert 516)
(should-draw-terminal-sparks? symbol :offset-assert 516)
(terminal-spark-pos vector :inline :offset-assert 528)
(should-draw-extension? basic :offset-assert 544)
(should-draw-extension? symbol :offset-assert 544)
(extension-end-point vector :inline :offset-assert 560)
)
:method-count-assert 9
:size-assert #x240
:flag-assert #x900000240
)
|#
#|
(deftype gun-blue-lightning-command (structure)
((msg uint64 :offset-assert 0)
(lightning-info gun-blue-2-lightning-info :inline :offset-assert 16)
@ -36152,20 +36153,18 @@
:size-assert #x250
:flag-assert #x900000250
)
|#
#|
(deftype gun-blue-2-lightning-tracker (process-drawable)
((lt-array basic :offset-assert 200)
(should-draw-this-frame? basic :offset-assert 204)
(last-spark-time uint64 :offset-assert 216)
(spark-time-interval uint64 :offset-assert 224)
(last-deduct-ammo-time uint64 :offset-assert 232)
(snd-lightning uint32 :offset-assert 240)
(active-enter-time uint64 :offset-assert 248)
((lt-array (array gun-blue-2-lightning-info) :offset-assert 200)
(should-draw-this-frame? symbol :offset-assert 204)
(last-spark-time time-frame :offset 216)
(spark-time-interval time-frame :offset-assert 224)
(last-deduct-ammo-time time-frame :offset-assert 232)
(snd-lightning sound-id :offset-assert 240)
(active-enter-time time-frame :offset-assert 248)
(revolve-angle float :offset-assert 256)
(sway-angle float :offset-assert 260)
(snd-spin uint32 :offset-assert 264)
(snd-spin sound-id :offset-assert 264)
(spin-intensity float :offset-assert 268)
(prev-targ-pos vector :inline :offset-assert 272)
(last-probe-index int16 :offset-assert 288)
@ -36173,32 +36172,28 @@
:method-count-assert 27
:size-assert #x122
:flag-assert #x1b00b00122
(:state-methods
active ;; 20
inactive ;; 21
die ;; 22
test ;; 23
)
(:methods
(gun-blue-2-lightning-tracker-method-24 () none) ;; 24
(gun-blue-2-lightning-tracker-method-25 () none) ;; 25
(gun-blue-2-lightning-tracker-method-26 () none) ;; 26
)
(:state-methods
test ;; 23
active ;; 20
inactive ;; 21
die ;; 22
)
)
|#
#|
(deftype gun-blue-2-target-info (structure)
((target uint64 :offset-assert 0)
(start-time uint64 :offset-assert 8)
((target handle :offset-assert 0)
(start-time time-frame :offset-assert 8)
)
:method-count-assert 9
:size-assert #x10
:flag-assert #x900000010
)
|#
#|
(deftype constraint-knot (structure)
((pt vector :inline :offset-assert 0)
(dir vector :inline :offset-assert 16)
@ -36208,11 +36203,9 @@
:size-assert #x24
:flag-assert #x900000024
)
|#
#|
(deftype rope-constraint (structure)
((constraints UNKNOWN 12 :offset-assert 0)
((constraints constraint-knot 12 :inline :offset-assert 0)
(num-knots uint8 :offset-assert 576)
)
:method-count-assert 10
@ -36222,9 +36215,7 @@
(rope-constraint-method-9 () none) ;; 9
)
)
|#
#|
(deftype gun-blue-2-lightning-init-params (structure)
((num-beams int8 :offset-assert 0)
)
@ -36232,9 +36223,7 @@
:size-assert #x1
:flag-assert #x900000001
)
|#
#|
(deftype gun-blue-shot (projectile)
((init-pos vector :inline :offset-assert 512)
(init-dir vector :inline :offset-assert 528)
@ -36244,23 +36233,20 @@
:size-assert #x230
:flag-assert #x2901b00230
)
|#
#|
(deftype gun-blue-shot-2 (gun-blue-shot)
()
:method-count-assert 41
:size-assert #x230
:flag-assert #x2901b00230
)
|#
;; (define-extern sparticle-fade-alpha-dist function)
;; (define-extern gun-fire-blue-1 function)
;; (define-extern fmod-2 function)
;; (define-extern get-dist-and-dot function)
;; (define-extern gun-blue-shot-3-move function)
;; (define-extern *blue-shot-trail* object)
(define-extern *blue-shot-trail* light-trail-composition)
;; (define-extern gun-fire-blue-3 function)
;; (define-extern draw-beam-segment function)
;; (define-extern *found-objects* object)
@ -36269,7 +36255,7 @@
;; (define-extern fire-projectile-if-necessary function)
;; (define-extern *gun-blue-2-targets* object)
;; (define-extern *blue-2-lightning-shape* object)
;; (define-extern *uv-loop-curve* object)
(define-extern *uv-loop-curve* curve2d-piecewise)
;; (define-extern *blue-light-test* object)
;; (define-extern *blue-light-test-end* object)
;; (define-extern *blue-light-test-big* object)
@ -36281,13 +36267,13 @@
;; (define-extern find-gun-blue-2-target function)
;; (define-extern find-gun-blue-2-target-old function)
;; (define-extern *lightning-pts-cache* object)
;; (define-extern gun-fire-blue-2 function)
;; (define-extern gun-fire-blue-2-old function)
(define-extern gun-fire-blue-2 (function object :behavior target))
(define-extern gun-fire-blue-2-old (function object :behavior target))
(define-extern target-gun-can-fire-blue? (function pickup-type symbol :behavior target))
;; (define-extern *last-fire-blue-time* object)
(define-extern *last-fire-blue-time* time-frame)
(define-extern target-gun-fire-blue (function pickup-type (pointer process) :behavior target))
;; (define-extern gun-blue-shot-move function) ;; (function gun-blue-shot none)
;; (define-extern cshape-reaction-blue-shot function) ;; (function control-info collide-query vector vector collide-status)
(define-extern gun-blue-shot-move (function gun-blue-shot none))
(define-extern cshape-reaction-blue-shot (function control-info collide-query vector vector collide-status))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; gun-yellow-shot ;;
@ -36460,12 +36446,12 @@
)
(:methods
(init-probes! (_type_ collide-shape) none) ;; 23
(gun-red-shot-method-24 (_type_) none) ;; 24 ;; (gun-red-shot-method-24 (_type_) symbol)
(check-blocked? (_type_) symbol) ;; 24
(stub (_type_) none) ;; 25
(do-collision (_type_) none) ;; 26 ;; (gun-red-shot-method-26 (_type_) none)
(gun-red-shot-method-27 (_type_) none) ;; 27 ;; (gun-red-shot-method-27 (_type_) none)
(gun-red-shot-method-28 (_type_ vector) none) ;; 28 ;; (gun-red-shot-method-28 (_type_ vector) sound-id)
(gun-red-shot-method-29 (_type_ process-drawable touching-shapes-entry) none) ;; 29 ;; (fire! (_type_ process-drawable int) object)
(find-targets (_type_) none) ;; 26
(setup-probes (_type_) none) ;; 27
(do-collision (_type_ vector) none) ;; 28
(send-attack! (_type_ process-drawable touching-shapes-entry) none) ;; 29
)
)
@ -36554,17 +36540,16 @@
die ;; 16
)
(:methods
(gun-red-2-shockwave-method-17 (_type_) none) ;; 17
(find-targets-and-attack! (_type_) none) ;; 17
(send-attack! (_type_ process-focusable symbol) none) ;; 18
;; adding _type_ here causes decompiler hang
(gun-red-2-shockwave-method-19 () none) ;; 19
(gun-red-2-shockwave-method-20 (_type_) none) ;; 20
(gun-red-2-shockwave-method-21 (_type_) none) ;; 21
(find-collision-point! (_type_) int) ;; 19
(generate-collision-points! (_type_) none) ;; 20
(adjust-height-and-radius (_type_) none) ;; 21
(gun-red-2-shockwave-method-22 (_type_ int int int int) none) ;; 22
(generate-shockwave-particles (_type_) none) ;; 23
(adjust-warp-radius-and-alpha (_type_) object) ;; 24
(adjust-ring-radius-and-alpha (_type_) none) ;; 25
(generate-collision-points (_type_) none) ;; 26
(generate-order-array (_type_) none) ;; 26
(spawn-ring (_type_) none) ;; 27
)
)
@ -36648,7 +36633,7 @@
(define-extern gun-fire-red-2 (function object :behavior target))
(define-extern red-3-sphere-init-by-other (function red-3-sphere-init-params object :behavior red-3-sphere))
(define-extern gun-fire-red-3 (function gun-red-3-grenade :behavior target))
(define-extern gun-fire-red-1 (function gun-red-shot :behavior target))
(define-extern gun-fire-red-1 (function object :behavior target))
(define-extern target-gun-can-fire-red? (function pickup-type symbol :behavior target))
(define-extern target-gun-fire-red (function pickup-type (pointer process) :behavior target))
(define-extern gun-red-shot-event-handler (function process int symbol event-message-block object :behavior gun-red-shot))
@ -36658,36 +36643,33 @@
;; gun-dark-shot ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#|
(deftype gun-dark-shot (projectile)
((blast-radius float :offset-assert 512)
(core-position vector :inline :offset-assert 528)
(core-velocity vector :inline :offset-assert 544)
(spin-vector vector :inline :offset-assert 560)
(track-target uint64 :offset-assert 576) ;; handle
(track-target handle :offset-assert 576)
(size-t float :offset-assert 584)
(result-array handle 16 :offset-assert 592) ;; guessed by decompiler
(result-array handle 16 :offset-assert 592)
(result-count int8 :offset-assert 720)
(charge-sound sound-id :offset-assert 724) ;; guessed by decompiler
(fire-sound sound-id :offset-assert 728) ;; guessed by decompiler
(trail-sound sound-id :offset-assert 732) ;; guessed by decompiler
(explode-sound sound-id :offset-assert 736) ;; guessed by decompiler
(start-pilot? basic :offset-assert 740)
(spread-timer uint64 :offset-assert 744)
(charge-sound sound-id :offset-assert 724)
(fire-sound sound-id :offset-assert 728)
(trail-sound sound-id :offset-assert 732)
(explode-sound sound-id :offset-assert 736)
(start-pilot? symbol :offset-assert 740)
(spread-timer time-frame :offset-assert 744)
)
:method-count-assert 43
:size-assert #x2f0
:flag-assert #x2b027002f0
(:state-methods
impact ;; 22
fizzle ;; 42
moving ;; 23
startup ;; 41, old: (fizzle () _type_ :state)
startup ;; 41
fizzle ;; 42
)
)
|#
#|
(deftype gun-dark-3-sphere (process-drawable)
((alpha-val float :offset-assert 200)
)
@ -36698,9 +36680,7 @@
active ;; 20
)
)
|#
#|
(deftype gun-dark-3-sphere-init-params (structure)
((pos vector :inline :offset-assert 0)
(size-x float :offset-assert 16)
@ -36711,122 +36691,114 @@
:size-assert #x1c
:flag-assert #x90000001c
)
|#
#|
(deftype last-active-nuke-info (structure)
((last-active-nuke uint64 :offset-assert 0)
((last-active-nuke handle :offset-assert 0)
)
:method-count-assert 9
:size-assert #x8
:flag-assert #x900000008
)
|#
#|
(deftype gun-dark-3-nuke (projectile)
((flash-time uint64 :offset-assert 512)
(blur-time uint64 :offset-assert 520)
(spawned-mushroom-cloud? basic :offset-assert 528)
(strip basic :offset-assert 532)
((flash-time time-frame :offset-assert 512)
(blur-time time-frame :offset-assert 520)
(spawned-mushroom-cloud? symbol :offset-assert 528)
(strip prim-strip :offset-assert 532)
(mushroom-top-pos vector :inline :offset-assert 544)
(warp uint64 :offset-assert 560)
(warp handle :offset-assert 560)
(initial-velocity vector :inline :offset-assert 576)
(start-y float :offset-assert 592)
(y-vel-adjust float :offset-assert 596)
(launch-speed float :offset-assert 600)
(launch-sin-region-start float :offset-assert 604)
(launch-sin-region-end float :offset-assert 608)
(launch-stay-state-time uint64 :offset-assert 616)
(launch-next-state basic :offset-assert 624)
(launch-impact-state basic :offset-assert 628)
(launch-stay-state-time time-frame :offset-assert 616)
(launch-next-state (state gun-dark-3-nuke) :offset-assert 624)
(launch-impact-state (state gun-dark-3-nuke) :offset-assert 628)
(launch-y-scale float :offset-assert 632)
(launch-height-t float :offset-assert 636)
(expected-height float :offset-assert 640)
(total-fly-time uint64 :offset-assert 648)
(total-fly-time time-frame :offset-assert 648)
(num-dying-vehicles uint8 :offset-assert 656)
(num-dying-guards uint8 :offset-assert 657)
(num-dying-civilians uint8 :offset-assert 658)
(last-death-sound-play-time uint64 :offset-assert 664)
(blur-curve basic :offset-assert 672)
(fade-curve basic :offset-assert 676)
(last-death-sound-play-time time-frame :offset-assert 664)
(blur-curve curve2d-piecewise :offset-assert 672)
(fade-curve curve-color-piecewise :offset-assert 676)
(num-blur-segments uint8 :offset-assert 680)
(shook-camera? basic :offset-assert 684)
(hit-wall? basic :offset-assert 688)
(killed-everything? basic :offset-assert 696)
(explode-sound uint32 :offset-assert 700)
(explode-wall-sound uint32 :offset-assert 704)
(played-trail? basic :offset-assert 708)
(smoke-trail basic :offset-assert 712)
(killed-objects UNKNOWN 64 :offset-assert 720)
(shook-camera? symbol :offset-assert 684)
(hit-wall? symbol :offset-assert 688)
(killed-everything? symbol :offset 696)
(explode-sound sound-id :offset-assert 700)
(explode-wall-sound sound-id :offset-assert 704)
(played-trail? symbol :offset-assert 708)
(smoke-trail sparticle-subsampler :offset-assert 712)
(killed-objects handle 64 :offset-assert 720)
(num-killed-objects int32 :offset-assert 1232)
(last-kill-time uint64 :offset-assert 1240)
(last-kill-time time-frame :offset-assert 1240)
)
:method-count-assert 60
:size-assert #x4e0
:flag-assert #x3c046004e0
(:methods
(gun-dark-3-nuke-method-41 () none) ;; 41
(gun-dark-3-nuke-method-51 () none) ;; 51
(gun-dark-3-nuke-method-52 () none) ;; 52
(gun-dark-3-nuke-method-53 () none) ;; 53
(gun-dark-3-nuke-method-54 () none) ;; 54
(gun-dark-3-nuke-method-55 () none) ;; 55
(gun-dark-3-nuke-method-56 () none) ;; 56
(gun-dark-3-nuke-method-57 () none) ;; 57
(gun-dark-3-nuke-method-58 () none) ;; 58
(gun-dark-3-nuke-method-59 () none) ;; 59
)
(:state-methods
wait-for-alive ;; 50
impact-small ;; 47
impact-embedded ;; 49
impact ;; 22
impact-dud ;; 48
launch-3 ;; 46
launch-2 ;; 45
launch-1 ;; 44
launch-0 ;; 43
undefined ;; 41, not defined
launching-base-state ;; 42
launch-0 ;; 43
launch-1 ;; 44
launch-2 ;; 45
launch-3 ;; 46
impact-small ;; 47
impact-dud ;; 48
impact-embedded ;; 49
wait-for-alive ;; 50
)
(:methods
(set-launch-height! (_type_) none) ;; 51
(do-blur-effect (_type_) none) ;; 52
(do-white-screen-effect (_type_) none) ;; 53
(count-casualties (_type_) none) ;; 54
(send-attack! (_type_ process-focusable) none) ;; 55
(play-death-sounds (_type_) none) ;; 56
(do-camera-shake (_type_) none) ;; 57
(do-vibration (_type_) none) ;; 58
(check-for-impact (_type_) none) ;; 59
)
)
|#
#|
(deftype gravity-spinner (process)
((cached-damage float :offset-assert 128)
(end-time uint64 :offset-assert 136)
(time-subtract uint64 :offset-assert 144)
(parent-hand uint64 :offset-assert 152)
(end-time time-frame :offset-assert 136)
(time-subtract time-frame :offset-assert 144)
(parent-hand handle :offset-assert 152)
(rotation-accel vector :inline :offset-assert 160)
(original-sphere-offset sphere :inline :offset-assert 176)
(obj-radius float :offset-assert 192)
(was-hit-previously? basic :offset-assert 196)
(was-hit-previously? symbol :offset-assert 196)
(ground-height float :offset-assert 200)
(next-ground-probe-time uint64 :offset-assert 208)
(next-ground-probe-time time-frame :offset-assert 208)
)
:method-count-assert 25
:size-assert #xd8
:flag-assert #x19006000d8
(:methods
(gravity-spinner-method-16 () none) ;; 16
(gravity-spinner-method-17 () none) ;; 17
(gravity-spinner-method-18 () none) ;; 18
(gravity-spinner-method-19 () none) ;; 19
(gravity-spinner-method-20 () none) ;; 20
(gravity-spinner-method-21 () none) ;; 21
(gravity-spinner-method-22 () none) ;; 22
(gravity-spinner-method-23 () none) ;; 23
(gravity-spinner-method-24 () none) ;; 24
)
(:state-methods
zero-g ;; 14
zero-g-vehicle ;; 15
)
(:methods
(gravity-spinner-method-16 (_type_ vector vector) none) ;; 16
(update-rotation (_type_ symbol) none) ;; 17
(gravity-spinner-method-18 (_type_ process) float) ;; 18
(handle-impact (_type_ symbol) vector) ;; 19
(probe-ground (_type_) none) ;; 20
(get-float-speed (_type_) float) ;; 21
(gravity-spinner-method-22 (_type_) none) ;; 22
(spawn-part (_type_) none) ;; 23
(rotate! (_type_ quaternion) none) ;; 24
)
)
|#
#|
(deftype gravity-ring (process-drawable)
((start-pos vector :inline :offset-assert 208)
(jmod-outer joint-mod-add-local :inline :offset-assert 224)
@ -36834,67 +36806,68 @@
(ring-scale-t float :offset-assert 352)
(current-radius float :offset-assert 356)
(max-radius float :offset-assert 360)
(reverse? basic :offset-assert 364)
(reverse? symbol :offset-assert 364)
(total-time float :offset-assert 368)
(ring-width float :offset-assert 372)
(stop-time uint64 :offset-assert 376)
(stop-time time-frame :offset-assert 376)
)
:method-count-assert 22
:size-assert #x180
:flag-assert #x1601000180
(:methods
(gravity-ring-method-21 () none) ;; 21
)
(:state-methods
expand ;; 20
)
(:methods
(gravity-ring-method-21 (_type_) none) ;; 21
)
)
|#
#|
(deftype gun-gravity (process-drawable)
((current-radius float :offset-assert 200)
(max-radius float :offset-assert 204)
(lowest-y float :offset-assert 208)
(start-pos vector :inline :offset-assert 224)
(total-time float :offset-assert 240)
(ring-closest uint64 :offset-assert 248)
(ring-furthest uint64 :offset-assert 256)
(gravity-sound uint32 :offset-assert 264)
(ring-closest handle :offset-assert 248)
(ring-furthest handle :offset-assert 256)
(gravity-sound sound-id :offset-assert 264)
)
:method-count-assert 25
:size-assert #x10c
:flag-assert #x190090010c
(:methods
(gun-gravity-method-21 () none) ;; 21
(gun-gravity-method-22 () none) ;; 22
(gun-gravity-method-23 () none) ;; 23
(gun-gravity-method-24 () none) ;; 24
)
(:state-methods
expand ;; 20
)
(:methods
(gun-gravity-method-21 (_type_) none) ;; 21
(gun-gravity-method-22 (_type_ symbol) none) ;; 22
(spawn-gravity-spinner (_type_ process) (pointer gravity-spinner)) ;; 23
(gun-gravity-method-24 (_type_) none) ;; 24
)
)
|#
;; (define-extern sparticle-lightning-2d-spline-align-plus-rotz function)
;; (define-extern gun-fire-dark-1 function)
;; (define-extern gun-dark-3-sphere-init-by-other function)
;; (define-extern *last-active-nuke* object)
;; (define-extern gun-dark-reaction function)
;; (define-extern nuke-move function)
(define-extern market-object type)
(define-extern fruit-stand type)
(define-extern missile-bot type)
(define-extern sparticle-lightning-2d-spline-align-plus-rotz (function object sparticle-cpuinfo sprite-vec-data-2d object none))
(define-extern gun-fire-dark-1 (function (pointer process) :behavior target))
(define-extern gun-dark-3-sphere-init-by-other (function gun-dark-3-sphere-init-params object :behavior gun-dark-3-sphere))
(define-extern *last-active-nuke* last-active-nuke-info)
(define-extern gun-dark-reaction (function control-info collide-query vector vector collide-status))
(define-extern nuke-move (function object :behavior gun-dark-3-nuke))
(define-extern target-gun-can-fire-dark? (function pickup-type symbol :behavior target))
;; (define-extern gun-fire-dark-3 function)
;; (define-extern process-drawable-shock-effect-bullseye function) ;; (function process-focusable process-focusable matrix int sparticle-launcher sparticle-launcher sparticle-launcher none)
;; (define-extern gun-dark-shot-init-fizzle function) ;; (function vector none :behavior gun-dark-shot)
;; (define-extern *gravity-origin-pos* object)
;; (define-extern gravity-spinner-init-by-other function)
;; (define-extern zero-g-wait-for-land function)
;; (define-extern *zero-g-fake-attack-vec* object)
;; (define-extern *gun-gravity-shadow-control* shadow-control)
;; (define-extern gravity-ring-init-by-other function)
;; (define-extern gun-gravity-init-by-other function)
;; (define-extern gun-fire-dark-2 function)
(define-extern gun-fire-dark-3 (function (pointer process) :behavior target))
(define-extern process-drawable-shock-effect-bullseye (function process-focusable process-focusable lightning-spec (function lightning-tracker none) sparticle-launcher sparticle-launcher sparticle-launcher none))
(define-extern gun-dark-shot-init-fizzle (function vector none :behavior gun-dark-shot))
(define-extern *gravity-origin-pos* vector)
(define-extern gravity-spinner-init-by-other (function handle object time-frame object :behavior gravity-spinner))
(define-extern zero-g-wait-for-land (function object :behavior gravity-spinner))
(define-extern *zero-g-fake-attack-vec* vector)
(define-extern *gun-gravity-shadow-control* shadow-control)
(define-extern gravity-ring-init-by-other (function vector symbol float float float time-frame object :behavior gravity-ring))
(define-extern gun-gravity-init-by-other (function vector vector object :behavior gun-gravity))
(define-extern gun-fire-dark-2 (function (pointer process) :behavior target))
(define-extern target-gun-fire-dark (function pickup-type (pointer process) :behavior target))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@ -37443,45 +37416,45 @@
)
(define-extern *spawn-actors* symbol)
;; (define-extern *compact-actors* object) ;; symbol
;; (define-extern *vis-actors* object) ;; symbol
(define-extern *compact-actors* symbol)
(define-extern *vis-actors* symbol)
(define-extern entity-by-name (function string entity))
(define-extern entity-by-type (function type entity-actor))
(define-extern entity-by-aid (function uint entity))
(define-extern entity-actor-from-level-name (function symbol entity-actor))
;; (define-extern entity-nav-mesh-by-aid function) ;; (function actor-id entity-nav-mesh)
;; (define-extern nav-mesh-from-res-tag function) ;; (function entity symbol int nav-mesh)
;; (define-extern entity-by-meters function) ;; (function float float float entity-actor)
;; (define-extern process-by-ename function) ;; (function string process)
;; (define-extern entity-process-count function) ;; (function symbol int)
;; (define-extern entity-count function) ;; (function int)
;; (define-extern entity-remap-names function) ;; (function pair none)
;; (define-extern process-status-bits function) ;; (function process symbol none)
(define-extern entity-nav-mesh-by-aid (function actor-id entity-nav-mesh))
(define-extern nav-mesh-from-res-tag (function entity symbol int nav-mesh))
(define-extern entity-by-meters (function float float float entity-actor))
(define-extern process-by-ename (function string process))
(define-extern entity-process-count (function symbol int))
(define-extern entity-count (function int))
(define-extern entity-remap-names (function pair none))
(define-extern process-status-bits (function process symbol none))
(define-extern process-entity-set! (function process entity entity))
(define-extern process-task-mask (function process task-mask))
;; (define-extern update-actor-vis-box function) ;; (function process-drawable vector vector none)
;; (define-extern expand-bounding-box function) ;; (function vector vector vector vector none)
;; (define-extern expand-bounding-box-from-nav-meshes function)
;; (define-extern expand-vis-box-with-point function) ;; (function entity vector none)
;; (define-extern *debug-actor-info* debug-actor-info) ;; debug-actor-info
;; (define-extern *pid-string* object) ;; string
;; (define-extern debug-actor function) ;; (function string none)
;; (define-extern debug-actor-process function)
;; (define-extern draw-actor-marks function) ;; (function process none)
(define-extern update-actor-vis-box (function process-drawable vector vector none))
(define-extern expand-bounding-box (function vector vector vector vector none))
(define-extern expand-bounding-box-from-nav-meshes (function entity vector vector object))
(define-extern expand-vis-box-with-point (function entity vector none))
(define-extern *debug-actor-info* debug-actor-info)
(define-extern *pid-string* string)
(define-extern debug-actor (function string none))
(define-extern debug-actor-process (function process none))
(define-extern draw-actor-marks (function process none))
(define-extern init-entity (function process entity-actor type none))
;; (define-extern entity-deactivate-handler function) ;; (function process entity-actor none)
;; (define-extern check-for-rougue-process function) ;; (function process int int level none)
;; (define-extern process-drawable-scale-from-entity! function) ;; (function process-drawable entity none)
(define-extern entity-deactivate-handler (function process entity-actor none))
(define-extern check-for-rougue-process (function process int int level none))
(define-extern process-drawable-scale-from-entity! (function process-drawable entity none))
(define-extern process-drawable-from-entity! (function process-drawable entity-actor none))
(define-extern reset-actors (function symbol none))
(define-extern reset-cameras (function none))
(define-extern entity-birth-no-kill (function entity process))
;; (define-extern entity-task-complete-on function) ;; (function entity none)
;; (define-extern entity-task-complete-off function) ;; (function entity none)
(define-extern entity-task-complete-on (function entity none))
(define-extern entity-task-complete-off (function entity none))
(define-extern process-entity-status! (function process entity-perm-status symbol entity-perm-status))
(define-extern find-nearest-entity (function vector type entity))
;; (define-extern entity-speed-test function) ;; (function string entity)
;; (define-extern dump-entity-remap function) ;; (function object object none)
(define-extern entity-speed-test (function string entity))
(define-extern dump-entity-remap (function object object none))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; path ;;

View file

@ -166,5 +166,15 @@
[8, "(function string object :behavior process)"],
[12, "(function object :behavior target)"]
],
"gun-yellow-shot": [[59, "(function handle object :behavior process)"]]
"gun-yellow-shot": [[59, "(function handle object :behavior process)"]],
"gun-dark-shot": [
[25, "(function collide-shape-prim none :behavior gravity-spinner)"],
[34, "(function handle float object :behavior process)"]
],
"entity": [
[11, "(function process object)"],
[16, "(function process object)"],
[57, "(function process object)"],
[61, "(function process object)"]
]
}

View file

@ -14,7 +14,8 @@
"wings": "jakb-ag",
"lightjak-shield": "jakb-ag",
"freeze-screen": "collectables-ag",
"red-3-sphere": "gun-ag"
"red-3-sphere": "gun-ag",
"gun-dark-3-sphere": "gun-ag"
},
// remap names for types in an entire file (higher priority)

View file

@ -114,7 +114,6 @@
"(method 33 rub-tower)",
"(method 261 crimson-guard)",
"(anon-function 25 volcanox-obs)",
"find-nearest-entity",
"foreground-draw-hud"
],
@ -354,7 +353,9 @@
"(method 11 rigid-body-queue)": [0, 6, 7, 9],
"(method 10 rigid-body-queue)": [10, 34, 37],
"(method 9 los-control)": [0, 43],
"load-game-text-info": [19, 20, 21]
"load-game-text-info": [19, 20, 21],
"draw-actor-marks": [8],
"find-nearest-entity": [7, 9]
},
// Sometimes the game might use format strings that are fetched dynamically,

View file

@ -457,5 +457,38 @@
["L443", "uint64", true],
["L405", "attack-info"],
["L450", "uint64", true]
]
],
"gun-dark-shot": [
["L824", "uint64", true],
["L827", "uint64", true],
["L823", "uint64", true],
["L826", "uint64", true],
["L828", "uint64", true],
["L829", "uint64", true],
["L825", "uint64", true],
["L830", "uint64", true],
["L707", "uint64", true],
["L704", "uint64", true],
["L702", "uint64", true],
["L701", "uint64", true],
["L700", "uint64", true],
["L710", "uint64", true],
["L648", "attack-info"],
["L647", "attack-info"],
["L638", "attack-info"],
["L637", "attack-info"],
["L639", "attack-info"],
["L708", "uint64", true],
["L643", "attack-info"],
["L644", "attack-info"],
["L712", "uint64", true],
["L711", "uint64", true],
["L709", "uint64", true],
["L664", "attack-info"],
["L703", "uint64", true],
["L699", "uint64", true],
["L705", "uint64", true],
["L706", "uint64", true]
],
"gun-part": [["L537", "(pointer rgba)", 36]]
}

View file

@ -487,7 +487,12 @@
[16, "vector"],
[1584, "collide-query"]
],
"(method 19 gun-red-2-shockwave)": [[16, "collide-query"]],
"(method 19 gun-red-2-shockwave)": [
[16, "collide-query"],
[576, "vector"],
[624, "vector"],
[592, "vector"]
],
"(method 23 gun-red-2-shockwave)": [[32, "vector"]],
"(method 24 gun-red-2-shockwave)": [[16, "vector"]],
"gun-fire-red-2": [[16, "gun-red-2-shockwave-init-params"]],
@ -497,5 +502,48 @@
[128, "vector"],
[1696, "vector"]
],
"(method 26 gun-red-shot)": [[16, "bounding-box"]]
"(method 26 gun-red-shot)": [[16, "bounding-box"]],
"gun-dark-reaction": [[112, "vector"]],
"gun-fire-red-1": [
[16, "vector"],
[32, "event-message-block"],
[112, "vector"]
],
"(trans expand gun-gravity)": [
[16, "vector"],
[32, "vector"],
[48, "vector"],
[80, "collide-query"],
[624, "matrix"]
],
"gun-fire-dark-3": [[16, "projectile-init-by-other-params"]],
"(trans moving gun-dark-shot)": [[16, "vector"]],
"(enter impact gun-dark-shot)": [
[192, ["array", "collide-shape", 384]],
[96, "vector"]
],
"gravity-spinner-init-by-other": [[32, "vector"]],
"(code zero-g gravity-spinner)": [[112, "vector"]],
"(method 25 gun-dark-3-nuke)": [[16, "matrix"]],
"(code impact-dud gun-dark-3-nuke)": [[16, "explosion-init-params"]],
"(method 54 gun-dark-3-nuke)": [
[32, ["array", "collide-shape", 384]],
[16, "vector"]
],
"(trans impact gun-dark-3-nuke)": [
[96, "gun-dark-3-sphere-init-params"],
[128, "gun-dark-3-sphere-init-params"]
],
"(method 19 gravity-spinner)": [
[176, ["array", "collide-shape", 384]],
[128, "vector"],
[112, "vector"],
[1712, "vector"],
[2288, "vector"]
],
"(method 16 gravity-spinner)": [[32, "vector"]],
"(method 22 gun-gravity)": [
[112, ["array", "collide-shape", 384]],
[16, "vector"]
]
}

View file

@ -3090,7 +3090,10 @@
[707, "v0", "sound-rpc-set-param"],
[586, "v0", "sound-rpc-set-param"]
],
"(trans play-anim scene-player)": [[66, "a0", "process-drawable"]],
"(trans play-anim scene-player)": [
[71, "v1", "process-drawable"],
[78, "v1", "process-drawable"]
],
"(event play-anim scene-player)": [
[11, "t9", "(function scene-player none)"]
],
@ -3379,8 +3382,8 @@
[20, "a0", "process-focusable"]
],
"scene-player-init": [
[44, "a0", "(array scene)"],
[37, "s5", "(array scene)"]
[[37, 44], "s5", "(array scene)"],
[83, "v0", "(array scene)"]
],
"(method 34 process-taskable)": [
[58, "v0", "joint"],
@ -3486,12 +3489,15 @@
[52, "v1", "collide-shape-prim"],
[62, "s2", "gun-yellow-shot-2"],
[58, "v1", "gun-yellow-shot-2"],
[68, "s2", "gun-yellow-shot-2"]
[68, "s2", "gun-yellow-shot-2"],
[[9, 66], "s3", "handle"]
],
"gun-yellow-shot-do-deflect": [
[134, "s1", "process-focusable"],
[178, "s1", "process-focusable"],
["_stack_", 136, "handle"]
["_stack_", 136, "handle"],
["_stack_", 1716, "float"],
["_stack_", 1748, "float"]
],
"gun-fire-yellow-1": [[33, "v0", "process"]],
"gun-fire-yellow-2": [[33, "v0", "process"]],
@ -3523,7 +3529,11 @@
[59, "a0", "process-focusable"],
[63, "a0", "process-focusable"],
[82, "a0", "process-focusable"],
[85, "a0", "process-focusable"]
[85, "a0", "process-focusable"],
["_stack_", 1688, "float"],
["_stack_", 1692, "float"],
["_stack_", 1752, "float"],
["_stack_", 1756, "float"]
],
"(method 47 gun-red-3-grenade)": [
[53, "s1", "process-focusable"],
@ -3541,18 +3551,15 @@
[246, "s1", "process-focusable"],
[436, "gp", "process-focusable"],
[440, "a0", "process-focusable"],
["_stack_", 28, "float"]
["_stack_", 28, "float"],
[168, "gp", "process-focusable"],
[314, "s1", "process-focusable"]
],
"gun-fire-red-1": [
[147, "v1", "manipy"],
[191, "v1", "manipy"],
[194, "v1", "manipy"]
// decompiler hang
// [
// 197,
// "v1",
// "manipy"
// ]
[194, "v1", "manipy"],
[197, "v1", "manipy"]
],
"(method 23 gun-red-shot)": [[10, "s4", "process-focusable"]],
"(method 26 gun-red-shot)": [
@ -3561,5 +3568,250 @@
[92, "a0", "connection"],
[93, "a0", "collide-shape"]
],
"(trans charging gun-red-2-shockwave)": [[6, "a1", "process-drawable"]]
"(trans charging gun-red-2-shockwave)": [[6, "a1", "process-drawable"]],
"gun-fire-dark-1": [[38, "v0", "process"]],
"(event active gun-dark-3-sphere)": [
[[3, 35], "v1", "gun-dark-3-sphere-init-params"]
],
"gun-fire-dark-3": [[64, "v0", "process"]],
"(exit startup gun-dark-shot)": [[20, "v0", "sound-rpc-set-param"]],
"(code startup gun-dark-shot)": [[88, "a1", "process-focusable"]],
"(enter moving gun-dark-shot)": [[22, "a1", "process-focusable"]],
"(trans moving gun-dark-shot)": [
[27, "s2", "process-focusable"],
[39, "a0", "process-focusable"],
[42, "a0", "process-focusable"]
],
"(enter impact gun-dark-shot)": [
[245, "s1", "process-focusable"],
[256, "s1", "process-focusable"],
[262, "s1", "process-focusable"],
[201, "v0", "(array float)"]
],
"(method 20 gravity-spinner)": [
[19, "s5", "process-focusable"],
[63, "s5", "process-focusable"]
],
"(method 21 gravity-spinner)": [
[19, "s5", "process-focusable"],
[26, "s5", "process-focusable"]
],
"(anon-function 34 gun-dark-shot)": [
[134, "s5", "process-focusable"],
[137, "s5", "process-focusable"],
[141, "s5", "process-focusable"],
[144, "s5", "process-focusable"],
[162, "s5", "process-focusable"],
[167, "s5", "process-focusable"],
[170, "s5", "process-focusable"]
],
"gravity-spinner-init-by-other": [
[33, "gp", "process-focusable"],
[39, "gp", "process-focusable"],
[47, "gp", "process-focusable"],
[54, "gp", "process-focusable"],
[69, "gp", "process-focusable"],
[73, "gp", "process-focusable"],
[77, "gp", "process-focusable"],
[94, "gp", "process-focusable"],
[100, "gp", "process-focusable"],
[113, "gp", "process-focusable"],
[144, "v1", "float"],
[182, "v1", "float"]
],
"(code zero-g gravity-spinner)": [
[71, "gp", "process-focusable"],
[100, "gp", "process-focusable"],
[104, "gp", "process-focusable"],
[137, "gp", "process-focusable"],
[144, "gp", "process-focusable"],
[165, "gp", "process-focusable"],
[174, "v1", "collide-shape-moving"],
[262, "gp", "process-focusable"],
[270, "gp", "process-focusable"],
[285, "gp", "process-focusable"],
[176, "v1", "collide-shape-moving"]
],
"(enter zero-g gravity-spinner)": [[17, "v1", "float"]],
"(event zero-g gravity-spinner)": [
[105, "a0", "attack-info"],
[109, "v1", "attack-info"],
[168, "s4", "process-drawable"],
[170, "s4", "process-drawable"],
[182, "s4", "process-drawable"],
[184, "s4", "process-drawable"],
[177, "s4", "process-drawable"],
["_stack_", 36, "float"]
],
"zero-g-wait-for-land": [
[22, "s5", "process-focusable"],
[26, "s5", "process-focusable"],
[33, "s5", "process-focusable"],
[42, "s5", "process-focusable"],
[52, "s5", "process-focusable"],
[53, "a0", "collide-shape-moving"],
[61, "s5", "process-focusable"],
[72, "s5", "process-focusable"],
[84, "s5", "process-focusable"],
[99, "s5", "process-focusable"],
[108, "s5", "process-focusable"]
],
"(enter zero-g-vehicle gravity-spinner)": [[17, "v1", "float"]],
"(enter launch-0 gun-dark-3-nuke)": [[15, "t9", "(function none)"]],
"(enter launch-1 gun-dark-3-nuke)": [[12, "t9", "(function none)"]],
"(enter launch-2 gun-dark-3-nuke)": [[18, "t9", "(function none)"]],
"(code impact-dud gun-dark-3-nuke)": [[39, "a0", "process"]],
"(method 54 gun-dark-3-nuke)": [[47, "s1", "process-focusable"]],
"(method 22 gravity-spinner)": [
[18, "s3", "process-focusable"],
[24, "s3", "process-focusable"],
[29, "s3", "process-focusable"]
],
"(method 23 gravity-spinner)": [
[25, "gp", "process-focusable"],
[29, "gp", "process-focusable"],
[35, "gp", "process-focusable"],
[44, "gp", "process-focusable"]
],
"(method 19 gravity-spinner)": [
[40, "s5", "process-focusable"],
[68, "s5", "process-focusable"],
[377, "s5", "process-focusable"],
[435, "s5", "process-focusable"],
[113, "a0", "process-focusable"],
[124, "a0", "process-focusable"],
[131, "a0", "process-focusable"],
[134, "a0", "process-focusable"],
[200, "s5", "process-focusable"],
["_stack_", 148, "process"],
["_stack_", 156, "float"],
["_stack_", 160, "float"],
["_stack_", 172, "float"],
["_stack_", 1736, "float"],
["_stack_", 2312, "float"]
],
"(method 16 gravity-spinner)": [
[22, "s4", "process-focusable"],
[43, "s4", "process-focusable"]
],
"(method 17 gravity-spinner)": [
[101, "s4", "process-focusable"],
[127, "s4", "process-focusable"],
[149, "s4", "process-focusable"]
],
"(method 24 gravity-spinner)": [
[19, "s5", "process-focusable"],
[26, "s5", "process-focusable"],
[42, "s5", "process-focusable"],
[47, "s5", "process-focusable"],
[52, "s5", "process-focusable"],
[55, "s5", "process-focusable"],
[66, "s5", "process-focusable"],
[59, "s5", "process-focusable"],
[61, "s5", "process-focusable"]
],
"(trans expand gun-gravity)": [
[116, "v1", "float"],
[149, "v1", "float"]
],
"(method 22 gun-gravity)": [
[14, "v0", "process"],
[35, "v1", "gravity-ring"],
[36, "v1", "gravity-ring"],
[[51, 53], "v1", "gravity-ring"],
[101, "s1", "process-focusable"],
[113, "s1", "process-focusable"]
],
"process-drawable-shock-effect-bullseye": [[85, "a0", "lightning-tracker"]],
"(method 14 level-group)": [
[62, "a0", "entity-actor"],
[66, "a0", "entity-actor"]
],
"(method 23 level-group)": [[28, "v0", "(inline-array vector)"]],
"expand-bounding-box-from-nav-meshes": [["_stack_", 16, "res-tag"]],
"expand-vis-box-with-point": [[10, "v0", "(inline-array vector)"]],
"(method 25 level-group)": [
[24, "s3", "entity-actor"],
[112, "s3", "entity-actor"],
[120, "s3", "entity-actor"],
[143, "v0", "string"],
[56, "v0", "string"],
[99, "v0", "(inline-array vector)"]
],
"process-drawable-scale-from-entity!": [[11, "v0", "vector"]],
"reset-actors": [
[174, "t9", "(function level none)"],
[162, "v0", "(function level none)"]
],
"process-status-bits": [[8, "s5", "process-drawable"]],
"(method 24 level-group)": [
[127, "v0", "(pointer actor-group)"],
[28, "v0", "(inline-array vector)"],
["_stack_", 28, "float"],
["_stack_", 32, "float"]
],
"(method 15 level-group)": [
[262, "s0", "process-drawable"],
[268, "s0", "process-drawable"],
[275, "s0", "process-drawable"],
[277, "s0", "process-drawable"],
[308, "s4", "process-drawable"],
[663, "a0", "drawable-region-prim"],
[666, "a0", "drawable-region-prim"],
[726, "a0", "drawable-region-prim"],
[729, "a0", "drawable-region-prim"]
],
"check-for-rougue-process": [
[133, "gp", "part-tracker"],
[157, "gp", "part-spawner"],
[184, "v1", "process-drawable"],
[187, "v1", "process-drawable"],
[192, "v1", "process-drawable"],
[199, "v1", "process-drawable"],
[209, "v1", "process-drawable"],
[212, "v1", "process-drawable"],
[217, "v1", "process-drawable"],
[224, "v1", "process-drawable"]
],
"draw-actor-marks": [
[20, "gp", "process-drawable"],
[29, "gp", "process-drawable"],
[33, "gp", "process-drawable"],
[40, "gp", "process-drawable"],
[45, "gp", "process-drawable"],
[47, "gp", "process-drawable"],
[52, "gp", "process-drawable"],
[54, "gp", "process-drawable"],
[59, "gp", "process-drawable"],
[67, "gp", "process-drawable"],
[69, "gp", "process-drawable"],
[78, "gp", "process-drawable"],
[106, "gp", "process-drawable"],
[105, "v0", "string"],
[131, "v0", "(pointer int32)"],
[155, "gp", "process-drawable"],
[174, "v0", "string"],
[187, "gp", "process-drawable"],
[271, "gp", "process-drawable"],
[250, "gp", "process-drawable"],
[208, "v0", "(inline-array vector)"],
[120, "a2", "string"]
],
"(anon-function 57 entity)": [
[6, "gp", "process-drawable"],
[8, "gp", "process-drawable"],
[13, "gp", "process-drawable"],
[15, "gp", "process-drawable"]
],
"draw-subtitle-image": [
[[163, 194], "v1", "(pointer uint128)"],
[[195, 199], "t0", "vector4w"],
[[199, 206], "t0", "vector4w"],
[[206, 213], "a2", "vector4w"],
[[214, 220], "v1", "vector4w"],
[[223, 254], "v1", "(pointer uint128)"],
[[255, 266], "t0", "vector4w"],
[[266, 273], "a1", "vector4w"],
[[274, 280], "v1", "vector4w"]
]
}

View file

@ -1968,5 +1968,20 @@
"s4-0": "i",
"v1-7": "debris"
}
},
"(enter burnt-husk gun-yellow-3-saucer)": {
"vars": {
"s5-0": ["name", "sound-name"]
}
},
"reset-actors": {
"vars": {
"s5-0": ["perm", "entity-perm-status"]
}
},
"(method 24 level-group)": {
"vars": {
"a0-9": ["enemy-option", "enemy-option"]
}
}
}

View file

@ -5,5 +5,7 @@
;; name in dgo: cam-debug
;; dgos: GAME
(define-extern camera-plot-float-func (function float float float float (function float float) vector4w none))
;; DECOMP BEGINS

View file

@ -341,7 +341,7 @@ Most [[process-drawable]]s have a [[collide-shape]] that represents their root t
(send-shoves (_type_ process touching-shapes-entry float float float) symbol)
(above-ground? (_type_ collide-query vector collide-spec float float float) symbol)
(water-info-init! (_type_ water-info collide-action) water-info)
(collide-shape-method-53 () none)
(iterate-prims (_type_ (function collide-shape-prim none)) none)
(collide-shape-method-54 () none)
)
)

View file

@ -60,7 +60,7 @@
(default-loop-behavior uint64)
)
(:methods
(curve2d-piecewise-method-10 (_type_ int symbol uint) none)
(curve2d-piecewise-method-10 (_type_ int symbol int) none)
(curve2d-piecewise-method-11 (_type_) none)
)
)
@ -115,7 +115,7 @@
)
(defmethod curve2d-piecewise-method-10 ((this curve2d-piecewise) (arg0 int) (arg1 symbol) (arg2 uint))
(defmethod curve2d-piecewise-method-10 ((this curve2d-piecewise) (arg0 int) (arg1 symbol) (arg2 int))
(set! (-> this pts) ((method-of-type float-pair-array new) arg1 float-pair-array arg0))
(set! (-> this default-loop-behavior) (the-as uint (if arg2
0
@ -456,7 +456,7 @@
(when (or (zero? *curve-linear-up-hold*) (!= loading-level global))
(set! *curve-linear-up-hold* (new 'loading-level 'curve2d-piecewise))
(curve2d-piecewise-method-10 *curve-linear-up-hold* 2 'loading-level (the-as uint #f))
(curve2d-piecewise-method-10 *curve-linear-up-hold* 2 'loading-level (the-as int #f))
)
(set! (-> *curve-linear-up-hold* pts data 0 first) 0.0)

View file

@ -1696,7 +1696,7 @@
)
)
)
(set! (-> self sound) (sound-play-by-spec (the-as sound-spec gp-1) (new-sound-id) s5-1))
(set! (-> self sound) (sound-play-by-spec gp-1 (new-sound-id) s5-1))
)
)
)

View file

@ -67,7 +67,7 @@
(when (or (zero? *water-simple-alpha-curve-in*) (!= loading-level global))
(set! *water-simple-alpha-curve-in* (new 'loading-level 'curve2d-piecewise))
(curve2d-piecewise-method-10 *water-simple-alpha-curve-in* 2 'loading-level (the-as uint #f))
(curve2d-piecewise-method-10 *water-simple-alpha-curve-in* 2 'loading-level (the-as int #f))
)
(set! (-> *water-simple-alpha-curve-in* pts data 0 first) 0.0)
@ -80,7 +80,7 @@
(when (or (zero? *growing-curve*) (!= loading-level global))
(set! *growing-curve* (new 'loading-level 'curve2d-piecewise))
(curve2d-piecewise-method-10 *growing-curve* 2 'loading-level (the-as uint #f))
(curve2d-piecewise-method-10 *growing-curve* 2 'loading-level (the-as int #f))
)
(set! (-> *growing-curve* pts data 0 first) 0.0)
@ -93,7 +93,7 @@
(when (or (zero? *water-simple-alpha-curve-fade-out*) (!= loading-level global))
(set! *water-simple-alpha-curve-fade-out* (new 'loading-level 'curve2d-piecewise))
(curve2d-piecewise-method-10 *water-simple-alpha-curve-fade-out* 2 'loading-level (the-as uint #f))
(curve2d-piecewise-method-10 *water-simple-alpha-curve-fade-out* 2 'loading-level (the-as int #f))
)
(set! (-> *water-simple-alpha-curve-fade-out* pts data 0 first) 0.0)

View file

@ -40,6 +40,7 @@
(define-extern init-entity (function process entity-actor type none))
(define-extern entity-by-type (function type entity-actor))
(define-extern entity-actor-from-level-name (function symbol entity-actor))
(define-extern birth-viewer (function process entity-actor object))
(define-extern *spawn-actors* symbol)
@ -91,7 +92,7 @@
(task game-task :overlay-at (-> perm task))
)
(:methods
(entity-links-method-9 () none)
(birth? (_type_ vector) symbol)
)
)

View file

@ -7,3 +7,308 @@
;; DECOMP BEGINS
;; TODO stub
(define *entity-info* (new 'static 'boxed-array :type entity-info
(new 'static 'entity-info
:ptype (type-ref factory-boss :method-count 31)
:pool '*16k-dead-pool*
:heap-size #x8000
)
(new 'static 'entity-info
:ptype (type-ref flitter-spawner :method-count 22)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref bubbles-path :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x8000
)
(new 'static 'entity-info
:ptype (type-ref desert-chase-ring :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref bt-grunt :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref bt-roboguard :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref w-parking-spot :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref min-elevator :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref tpl-bouncer :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref veger-npc :method-count 40)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref seem-npc :method-count 40)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref krimson-wall :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref kleever-catch-lizards :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref kleever-npc :method-count 40)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref damus-npc :method-count 40)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref nav-graph :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref tizard :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref ladder :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref mh-centipede :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref dark-tower :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref curve-bubbles-Shape :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref mhcity-tower-door :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref mhcity-grunt-egg-d :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref mhcity-grunt-egg-c :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref a :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref mhcity-grunt-egg-b :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref mhcity-grund-egg-a :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref mhcity-de-tower-undervines :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref mhcity-vine-wriggler-big :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref mhcity-vine-wriggler :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref mhcity-twitch-blade :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref mhcity-claw-finger-small :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref mhcity-vein-writhing-small :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref mhcity-vein-writhing-large :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref mhcity-dark-eco-nodule :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref mhcity-dark-eco-door :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref mhcity-puffer-large :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref mhcity-puffer :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref a :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref searchlight :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref ctyn-lamp :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref burning-bush :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref sail-boat-a :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref barge :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref boat-manager :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref propa :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref city-window-a :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref cty-window-a :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref parking-spot :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref security-wall :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref cty-guard-turret :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref cty-fruit-stand :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref fruit-stand :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref torn :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
(new 'static 'entity-info
:ptype (type-ref neon-baron :method-count 0)
:pool '*16k-dead-pool*
:heap-size #x4000
)
)
)
(defun entity-info-lookup ((arg0 type))
(the-as entity-info (cond
((nonzero? (-> arg0 method-table 13))
(-> arg0 method-table 13)
)
(else
(let ((v1-1 *entity-info*))
(dotimes (a1-0 (-> v1-1 length))
(let ((a2-3 (-> v1-1 a1-0 ptype)))
(when (if (logtest? (the-as int a2-3) 1)
(= (-> arg0 symbol) a2-3)
(= arg0 a2-3)
)
(set! (-> arg0 method-table 13) (the-as function (-> v1-1 a1-0)))
(return (the-as entity-info (-> v1-1 a1-0)))
)
)
)
)
(set! (-> arg0 method-table 13) #f)
(the-as basic #f)
)
)
)
)

File diff suppressed because it is too large Load diff

View file

@ -68,7 +68,7 @@
(radius float)
(duration float)
(duration-rand float)
(sound symbol)
(sound sound-spec)
(delay float)
(delay-rand float)
)

View file

@ -33,6 +33,9 @@
)
)
(define-extern sparticle-2d-spline-align-instant (function object sparticle-cpuinfo sprite-vec-data-2d object none))
(define-extern rot-to-particle (function degrees sprite-vec-data-2d matrix none))
;; DECOMP BEGINS
;; TODO: stub

View file

@ -9,6 +9,7 @@
(declare-type bsp-node structure)
(declare-type entity-camera entity)
(declare-type entity-nav-mesh structure)
(declare-type entity-race-mesh entity)
(declare-type city-level-info structure)
(define-extern inspect-bsp-tree (function bsp-header bsp-node none))
@ -67,9 +68,11 @@ This probably started as a very simple structure, but now it is extremely compli
(cam-box-idx uint16)
(subdivide-close float :offset 160)
(subdivide-far float)
(race-meshes (array entity-race-mesh))
(actor-birth-order (pointer uint32) :offset 172)
(light-hash light-hash)
(nav-meshes (array entity-nav-mesh))
(actor-groups (array actor-group))
(region-trees (array drawable-tree-region-prim) :offset 188)
(collide-hash collide-hash :offset 196)
(wind-array uint32 :offset 200)

View file

@ -114,6 +114,19 @@
(movie0 16)
(movie1 17)
(movie2 18)
(tm19 19)
(tm20 20)
(tm21 21)
(tm22 22)
(tm23 23)
(tm24 24)
(tm25 25)
(tm26 26)
(tm27 27)
(tm28 28)
(tm29 29)
(tm30 30)
(tm31 31)
)
;; ---task-mask
@ -475,7 +488,7 @@
(get-level-by-heap-ptr-and-status (_type_ pointer symbol) level)
(level-get-for-use (_type_ symbol symbol) level)
(activate-levels! (_type_) int)
(level-group-method-14 () none)
(debug-print-entities (_type_ symbol type string) none)
(debug-draw-actors (_type_ symbol) none)
(assign-draw-indices (_type_) none)
(actors-update (_type_) none)
@ -484,9 +497,9 @@
(level-get-target-inside (_type_) level)
(init-level-system (_type_ symbol) none)
(art-group-get-by-name (_type_ string (pointer level)) art-group)
(level-group-method-23 () none)
(level-group-method-24 () none)
(level-group-method-25 () none)
(update-vis-volumes (_type_) none)
(level-group-method-24 (_type_) none)
(print-volume-sizes (_type_) none)
(status-of-level-and-borrows (_type_ symbol symbol) symbol)
(do-nothing (_type_) none)
(load-in-progress? (_type_) symbol)

View file

@ -14,7 +14,7 @@
arg0
)
(defun matrix-fu-compose ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 vector))
(defun matrix-fu-compose ((arg0 matrix) (arg1 vector) (arg2 vector))
(set! (-> arg0 fvec quad) (-> arg1 quad))
(set! (-> arg0 uvec quad) (-> arg2 quad))
(vector-cross! (-> arg0 rvec) arg2 arg1)
@ -35,7 +35,7 @@
arg0
)
(defun matrix-f-u-compose ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 vector))
(defun matrix-f-u-compose ((arg0 matrix) (arg1 vector) (arg2 vector))
(set! (-> arg0 fvec quad) (-> arg1 quad))
(vector-cross! (-> arg0 rvec) arg2 arg1)
(vector-normalize! (-> arg0 rvec) 1.0)
@ -83,10 +83,10 @@
arg0
)
(defun matrix-f-compose ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 vector))
(defun matrix-f-compose ((arg0 matrix) (arg1 vector) (arg2 float))
(set! (-> arg0 fvec quad) (-> arg1 quad))
(let ((a2-1 (vector-get-unique! (new 'stack-no-clear 'vector) arg1)))
(matrix-f-u-compose arg0 arg1 a2-1 arg3)
(matrix-f-u-compose arg0 arg1 a2-1)
)
arg0
)

View file

@ -177,7 +177,7 @@
(mesh basic :overlay-at (-> state mesh))
)
(:methods
(nav-control-method-9 () none)
(debug-draw (_type_) none)
(nav-control-method-10 () none)
(find-poly-containing-point-1 (_type_ vector) nav-poly)
(cloest-point-on-mesh (_type_ vector vector nav-poly) nav-poly)

View file

@ -210,7 +210,7 @@ Based on the implementation of point-poly-intersection?, these should likely be
(nav-mesh-method-21 () none)
(nav-mesh-method-22 () none)
(nav-mesh-method-23 () none)
(nav-mesh-method-24 () none)
(compute-bounding-box-from-vertices (_type_ vector vector) none)
(nav-mesh-method-25 () none)
(nav-mesh-method-26 () none)
(nav-mesh-method-27 () none)

View file

@ -71,6 +71,8 @@
;; ---rigid-body-h:rigid-body-object-flag
(declare-type rigid-body-object basic)
(declare-type rigid-body-queue-manager process)
(define-extern *rigid-body-queue-manager* rigid-body-queue-manager)
;; DECOMP BEGINS

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -5,5 +5,23 @@
;; name in dgo: gun-part
;; dgos: GAME
(define-extern *yellow-shot-2-trail* light-trail-composition)
(define-extern *red-shot-3-trail* light-trail-composition)
(define-extern *last-player-pos* vector)
(define-extern *gun-dark-3-nuke-fade-time-small* time-frame)
(define-extern *gun-dark-3-nuke-blur-time-small* time-frame)
(define-extern *gun-dark-3-nuke-blur-curve-small* curve2d-piecewise)
(define-extern *gun-dark-3-nuke-fade-curve-small* curve-color-piecewise)
(define-extern *gun-dark-3-nuke-blur-segs-small* uint)
(define-extern *gun-dark-3-mushroom-speed* float)
(define-extern *gun-dark-3-mushroom-size-time* time-frame)
(define-extern *gun-dark-3-nuke-mushroom-size-curve-x* curve2d-piecewise)
(define-extern *gun-dark-3-nuke-mushroom-size-curve-y* curve2d-piecewise)
(define-extern *gun-dark-3-nuke-fade-time* time-frame)
(define-extern *gun-dark-3-nuke-blur-time* time-frame)
(define-extern *gun-dark-3-nuke-blur-curve* curve2d-piecewise)
(define-extern *gun-dark-3-nuke-fade-curve* curve-color-piecewise)
(define-extern *gun-dark-3-nuke-blur-segs* uint)
;; DECOMP BEGINS

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -6,6 +6,7 @@
;; dgos: GAME
(define-extern process-drawable2-shock-effect (function process-drawable process-drawable lightning-spec (function lightning-tracker none) sparticle-launcher none))
(define-extern process-drawable-shock-effect-replace (function process-drawable lightning-spec (function lightning-tracker none) int int float none))
;; DECOMP BEGINS

View file

@ -187,9 +187,9 @@
,(cond
((and virtual parent)
`(begin
(inherit-state ,new-state (the state ,parent))
(set! (-> ,new-state parent) (the state ,parent))
`(define-virtual-state-hook ,state-name ,defstate-type ,new-state ,(eq? virtual 'override) :event ,event :enter ,enter :trans ,trans :exit ,exit :code ,code :post ,post)
(inherit-state ,new-state ,(if (pair? parent) `(method-of-type ,(car parent) ,(cadr parent)) `(the state ,parent)))
(set! (-> ,new-state parent) ,(if (pair? parent) `(method-of-type ,(car parent) ,(cadr parent)) `(the state ,parent)))
(define-virtual-state-hook ,state-name ,defstate-type ,new-state ,(eq? virtual 'override) :event ,event :enter ,enter :trans ,trans :exit ,exit :code ,code :post ,post)
)
)
(virtual

View file

@ -215,9 +215,9 @@
,(cond
((and virtual parent)
`(begin
(inherit-state ,new-state (the state ,parent))
(set! (-> ,new-state parent) (the state ,parent))
`(define-virtual-state-hook ,state-name ,defstate-type ,new-state ,(eq? virtual 'override) :event ,event :enter ,enter :trans ,trans :exit ,exit :code ,code :post ,post)
(inherit-state ,new-state ,(if (pair? parent) `(method-of-type ,(car parent) ,(cadr parent)) `(the state ,parent)))
(set! (-> ,new-state parent) ,(if (pair? parent) `(method-of-type ,(car parent) ,(cadr parent)) `(the state ,parent)))
(define-virtual-state-hook ,state-name ,defstate-type ,new-state ,(eq? virtual 'override) :event ,event :enter ,enter :trans ,trans :exit ,exit :code ,code :post ,post)
)
)
(virtual

View file

@ -1427,7 +1427,7 @@ Most [[process-drawable]]s have a [[collide-shape]] that represents their root t
(send-shoves (_type_ process touching-shapes-entry float float float) symbol)
(above-ground? (_type_ collide-query vector collide-spec float float float) symbol)
(water-info-init! (_type_ water-info collide-action) water-info)
(collide-shape-method-53 () none)
(iterate-prims (_type_ (function collide-shape-prim none)) none)
(collide-shape-method-54 () none)
)
)

View file

@ -92,7 +92,7 @@
(default-loop-behavior uint64)
)
(:methods
(curve2d-piecewise-method-10 (_type_ int symbol uint) none)
(curve2d-piecewise-method-10 (_type_ int symbol int) none)
(curve2d-piecewise-method-11 (_type_) none)
)
)
@ -233,7 +233,7 @@
;; definition for method 10 of type curve2d-piecewise
;; WARN: Return type mismatch int vs none.
(defmethod curve2d-piecewise-method-10 ((this curve2d-piecewise) (arg0 int) (arg1 symbol) (arg2 uint))
(defmethod curve2d-piecewise-method-10 ((this curve2d-piecewise) (arg0 int) (arg1 symbol) (arg2 int))
(set! (-> this pts) ((method-of-type float-pair-array new) arg1 float-pair-array arg0))
(set! (-> this default-loop-behavior) (the-as uint (if arg2
0
@ -588,7 +588,7 @@
;; failed to figure out what this is:
(when (or (zero? *curve-linear-up-hold*) (!= loading-level global))
(set! *curve-linear-up-hold* (new 'loading-level 'curve2d-piecewise))
(curve2d-piecewise-method-10 *curve-linear-up-hold* 2 'loading-level (the-as uint #f))
(curve2d-piecewise-method-10 *curve-linear-up-hold* 2 'loading-level (the-as int #f))
)
;; failed to figure out what this is:
@ -657,7 +657,3 @@
)
)
)

View file

@ -2096,7 +2096,7 @@
)
)
)
(set! (-> self sound) (sound-play-by-spec (the-as sound-spec gp-1) (new-sound-id) s5-1))
(set! (-> self sound) (sound-play-by-spec gp-1 (new-sound-id) s5-1))
)
)
)

View file

@ -64,7 +64,7 @@
;; failed to figure out what this is:
(when (or (zero? *water-simple-alpha-curve-in*) (!= loading-level global))
(set! *water-simple-alpha-curve-in* (new 'loading-level 'curve2d-piecewise))
(curve2d-piecewise-method-10 *water-simple-alpha-curve-in* 2 'loading-level (the-as uint #f))
(curve2d-piecewise-method-10 *water-simple-alpha-curve-in* 2 'loading-level (the-as int #f))
)
;; failed to figure out what this is:
@ -82,7 +82,7 @@
;; failed to figure out what this is:
(when (or (zero? *growing-curve*) (!= loading-level global))
(set! *growing-curve* (new 'loading-level 'curve2d-piecewise))
(curve2d-piecewise-method-10 *growing-curve* 2 'loading-level (the-as uint #f))
(curve2d-piecewise-method-10 *growing-curve* 2 'loading-level (the-as int #f))
)
;; failed to figure out what this is:
@ -100,7 +100,7 @@
;; failed to figure out what this is:
(when (or (zero? *water-simple-alpha-curve-fade-out*) (!= loading-level global))
(set! *water-simple-alpha-curve-fade-out* (new 'loading-level 'curve2d-piecewise))
(curve2d-piecewise-method-10 *water-simple-alpha-curve-fade-out* 2 'loading-level (the-as uint #f))
(curve2d-piecewise-method-10 *water-simple-alpha-curve-fade-out* 2 'loading-level (the-as int #f))
)
;; failed to figure out what this is:

View file

@ -77,7 +77,7 @@
(task game-task :overlay-at (-> perm task))
)
(:methods
(entity-links-method-9 () none)
(birth? (_type_ vector) symbol)
)
)

File diff suppressed because it is too large Load diff

View file

@ -21,7 +21,7 @@
(radius float)
(duration float)
(duration-rand float)
(sound symbol)
(sound sound-spec)
(delay float)
(delay-rand float)
)
@ -315,7 +315,3 @@
)
)
)

View file

@ -221,7 +221,7 @@
(.mul.vf vf10 vf1 vf8)
(.div.vf Q vf0 vf10 :fsf #b11 :ftf #b11)
(TODO.VCLIP vf10 vf10)
(b! (zero? (-> sv-16 flag-rot-sy x)) cfg-22 :delay (nop!))
(b! (zero? (-> sv-16 flag)) cfg-22 :delay (nop!))
(.wait.vf)
(.mul.vf vf1 vf1 Q :mask #b111)
(.mul.vf vf2 vf2 Q :mask #b111)
@ -235,11 +235,11 @@
(set! (-> sv-32 y) (+ 0.0009765625 (* 0.001953125 (+ -1840.0 (-> (the-as vector a0-3) y)))))
)
(set! (-> sv-32 z) 1.0)
(when (or (< (the-as int (-> sv-16 flag-rot-sy x)) 3) (< 11 (the-as int (-> sv-16 flag-rot-sy x))))
(format 0 "Turns = ~D!!!~%" (-> sv-16 flag-rot-sy x))
(set! (-> sv-16 flag-rot-sy x) (the-as float #xb))
(when (or (< (-> sv-16 flag) 3) (< 11 (-> sv-16 flag)))
(format 0 "Turns = ~D!!!~%" (-> sv-16 flag))
(set! (-> sv-16 flag) 11)
)
(set! (-> sv-32 w) (-> sv-16 flag-rot-sy x))
(set! (-> sv-32 w) (the-as float (-> sv-16 flag)))
(let* ((f1-4 (- (-> *math-camera* perspective uvec y)))
(f2-4 (-> sv-32 y))
(f4-0 (+ f2-4 (* (-> sv-48 x) f1-4)))
@ -372,7 +372,3 @@
(none)
)
)

View file

@ -35,7 +35,7 @@
)
(format #t "[~8x] ~A~%" this 'sprite-vec-data-2d)
(format #t "~1Tx-y-z-sx: #<vector @ #x~X>~%" (-> this x-y-z-sx))
(format #t "~1Tflag-rot-sy: #<vector @ #x~X>~%" (-> this flag-rot-sy))
(format #t "~1Tflag-rot-sy: #<vector @ #x~X>~%" (&-> this flag))
(format #t "~1Tr-g-b-a: #<vector @ #x~X>~%" (-> this r-g-b-a))
(format #t "~1Tx: ~f~%" (-> this x-y-z-sx x))
(format #t "~1Ty: ~f~%" (-> this x-y-z-sx y))
@ -43,9 +43,9 @@
(format #t "~1Tsx: ~f~%" (-> this x-y-z-sx w))
(format #t "~1Tsy: ~f~%" (-> this flag-rot-sy w))
(format #t "~1Trot: ~f~%" (-> this flag-rot-sy z))
(format #t "~1Tflag: ~D~%" (-> this flag-rot-sy x))
(format #t "~1Tflag: ~D~%" (-> this flag))
(format #t "~1Tmatrix: ~D~%" (-> this flag-rot-sy y))
(format #t "~1Twarp-turns: ~D~%" (-> this flag-rot-sy x))
(format #t "~1Twarp-turns: ~D~%" (-> this flag))
(format #t "~1Tr: ~f~%" (-> this r-g-b-a x))
(format #t "~1Tg: ~f~%" (-> this r-g-b-a y))
(format #t "~1Tb: ~f~%" (-> this r-g-b-a z))

View file

@ -62,9 +62,11 @@ This probably started as a very simple structure, but now it is extremely compli
(cam-box-idx uint16)
(subdivide-close float :offset 160)
(subdivide-far float)
(race-meshes (array entity-race-mesh))
(actor-birth-order (pointer uint32) :offset 172)
(light-hash light-hash)
(nav-meshes (array entity-nav-mesh))
(actor-groups (array actor-group))
(region-trees (array drawable-tree-region-prim) :offset 188)
(collide-hash collide-hash :offset 196)
(wind-array uint32 :offset 200)

View file

@ -666,7 +666,7 @@
(get-level-by-heap-ptr-and-status (_type_ pointer symbol) level)
(level-get-for-use (_type_ symbol symbol) level)
(activate-levels! (_type_) int)
(level-group-method-14 () none)
(debug-print-entities (_type_ symbol type string) none)
(debug-draw-actors (_type_ symbol) none)
(assign-draw-indices (_type_) none)
(actors-update (_type_) none)
@ -675,9 +675,9 @@
(level-get-target-inside (_type_) level)
(init-level-system (_type_ symbol) none)
(art-group-get-by-name (_type_ string (pointer level)) art-group)
(level-group-method-23 () none)
(level-group-method-24 () none)
(level-group-method-25 () none)
(update-vis-volumes (_type_) none)
(level-group-method-24 (_type_) none)
(print-volume-sizes (_type_) none)
(status-of-level-and-borrows (_type_ symbol symbol) symbol)
(do-nothing (_type_) none)
(load-in-progress? (_type_) symbol)

View file

@ -12,7 +12,7 @@
;; definition for function matrix-fu-compose
;; INFO: Used lq/sq
(defun matrix-fu-compose ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 vector))
(defun matrix-fu-compose ((arg0 matrix) (arg1 vector) (arg2 vector))
(set! (-> arg0 fvec quad) (-> arg1 quad))
(set! (-> arg0 uvec quad) (-> arg2 quad))
(vector-cross! (-> arg0 rvec) arg2 arg1)
@ -39,7 +39,7 @@
;; definition for function matrix-f-u-compose
;; INFO: Used lq/sq
(defun matrix-f-u-compose ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 vector))
(defun matrix-f-u-compose ((arg0 matrix) (arg1 vector) (arg2 vector))
(set! (-> arg0 fvec quad) (-> arg1 quad))
(vector-cross! (-> arg0 rvec) arg2 arg1)
(vector-normalize! (-> arg0 rvec) 1.0)
@ -99,10 +99,10 @@
;; definition for function matrix-f-compose
;; INFO: Used lq/sq
(defun matrix-f-compose ((arg0 matrix) (arg1 vector) (arg2 vector) (arg3 vector))
(defun matrix-f-compose ((arg0 matrix) (arg1 vector) (arg2 float))
(set! (-> arg0 fvec quad) (-> arg1 quad))
(let ((a2-1 (vector-get-unique! (new 'stack-no-clear 'vector) arg1)))
(matrix-f-u-compose arg0 arg1 a2-1 arg3)
(matrix-f-u-compose arg0 arg1 a2-1)
)
arg0
)

View file

@ -278,7 +278,7 @@
(mesh basic :overlay-at (-> state mesh))
)
(:methods
(nav-control-method-9 () none)
(debug-draw (_type_) none)
(nav-control-method-10 () none)
(find-poly-containing-point-1 (_type_ vector) nav-poly)
(cloest-point-on-mesh (_type_ vector vector nav-poly) nav-poly)

View file

@ -397,7 +397,7 @@ Based on the implementation of point-poly-intersection?, these should likely be
(nav-mesh-method-21 () none)
(nav-mesh-method-22 () none)
(nav-mesh-method-23 () none)
(nav-mesh-method-24 () none)
(compute-bounding-box-from-vertices (_type_ vector vector) none)
(nav-mesh-method-25 () none)
(nav-mesh-method-26 () none)
(nav-mesh-method-27 () none)
@ -799,7 +799,3 @@ Based on the implementation of point-poly-intersection?, these should likely be
0
(none)
)

2174
test/decompiler/reference/jak3/engine/scene/scene_REF.gc generated vendored Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -136,7 +136,9 @@
// idle-control
"(method 10 idle-control)", // changes pp
// aligner
"(method 9 align-control)"
"(method 9 align-control)",
// gun-red-shot
"gun-fire-red-3"
],
"skip_compile_states": {}