diff --git a/decompiler/config/jak1_pal.jsonc b/decompiler/config/jak1_pal.jsonc index 648befe55a..e007eadc3a 100644 --- a/decompiler/config/jak1_pal.jsonc +++ b/decompiler/config/jak1_pal.jsonc @@ -6,7 +6,7 @@ // if you want to filter to only some object names. // it will make the decompiler much faster. - "allowed_objects": ["target2", "eichar-ag"], + "allowed_objects": ["target-death", "eichar-ag", "deathcam-ag"], "banned_objects": [], //////////////////////////// diff --git a/decompiler/config/jak1_pal/label_types.jsonc b/decompiler/config/jak1_pal/label_types.jsonc index d137bac80c..e84976ffd2 100644 --- a/decompiler/config/jak1_pal/label_types.jsonc +++ b/decompiler/config/jak1_pal/label_types.jsonc @@ -1538,48 +1538,6 @@ ["L484", "uint64", true] ], - "target-death": [ - ["L308", "vector"], - ["L316", "float", true], - ["L317", "float", true], - ["L318", "float", true], - ["L319", "float", true], - ["L320", "float", true], - ["L321", "float", true], - ["L322", "float", true], - ["L323", "float", true], - ["L324", "float", true], - ["L325", "float", true], - ["L326", "float", true], - ["L327", "float", true], - ["L328", "float", true], - ["L329", "float", true], - ["L330", "float", true], - ["L331", "float", true], - ["L332", "float", true], - ["L333", "float", true], - ["L334", "float", true], - ["L335", "float", true], - ["L336", "float", true], - ["L337", "float", true], - ["L338", "float", true], - ["L339", "float", true], - ["L340", "float", true], - ["L341", "float", true], - ["L342", "float", true], - ["L343", "float", true], - ["L344", "uint64", true], - ["L345", "uint64", true], - ["L346", "uint64", true], - ["L347", "uint64", true], - ["L348", "uint64", true], - ["L349", "uint64", true], - ["L350", "uint64", true], - ["L351", "uint64", true], - ["L352", "uint64", true], - ["L355", "float", true] - ], - "collide-shape": [ ["L399", "attack-info"], ["L408", "vector"], @@ -2147,6 +2105,48 @@ ["L759", "uint64", true] ], + "target-death": [ + ["L314", "vector"], + ["L322", "float", true], + ["L323", "float", true], + ["L324", "float", true], + ["L325", "float", true], + ["L326", "float", true], + ["L327", "float", true], + ["L328", "float", true], + ["L329", "float", true], + ["L330", "float", true], + ["L331", "float", true], + ["L332", "float", true], + ["L333", "float", true], + ["L334", "float", true], + ["L335", "float", true], + ["L336", "float", true], + ["L337", "float", true], + ["L338", "float", true], + ["L339", "float", true], + ["L340", "float", true], + ["L341", "float", true], + ["L342", "float", true], + ["L343", "float", true], + ["L344", "float", true], + ["L345", "float", true], + ["L346", "float", true], + ["L347", "float", true], + ["L348", "float", true], + ["L349", "float", true], + ["L350", "uint64", true], + ["L351", "uint64", true], + ["L352", "uint64", true], + ["L353", "uint64", true], + ["L354", "uint64", true], + ["L355", "uint64", true], + ["L356", "uint64", true], + ["L357", "uint64", true], + ["L358", "uint64", true], + ["L361", "float", true] + ], + // please do not add things after this entry! git is dumb. "object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": [] } diff --git a/decompiler/config/jak1_pal/type_casts.jsonc b/decompiler/config/jak1_pal/type_casts.jsonc index f44da71697..6bb3595295 100644 --- a/decompiler/config/jak1_pal/type_casts.jsonc +++ b/decompiler/config/jak1_pal/type_casts.jsonc @@ -5600,15 +5600,6 @@ [164, "v1", "art-joint-anim"] ], - "(code target-death)": [ - [533, "v1", "art-joint-anim"], - [655, "v0", "int"], - [691, "v1", "process-drawable"], - [844, "gp", "spool-anim"], - [[957, 1035], "s5", "handle"], - [1010, "gp", "spool-anim"] - ], - "(anon-function 1 target-death)": [ [12, "gp", "process-drawable"], [16, "gp", "process-drawable"] @@ -7707,5 +7698,12 @@ [[15, 135], "s4", "target"] // confusing -- the parent of a target is a target? ], + "(code target-death)": [ + [561, "v1", "art-joint-anim"], + [683, "v0", "int"], + [719, "v1", "process-drawable"], + [[985, 1063], "s5", "handle"] + ], + "placeholder-do-not-add-below": [] } diff --git a/goal_src/engine/collide/collide-target-h.gc b/goal_src/engine/collide/collide-target-h.gc index 2421fa435f..41a699660e 100644 --- a/goal_src/engine/collide/collide-target-h.gc +++ b/goal_src/engine/collide/collide-target-h.gc @@ -30,168 +30,170 @@ ;; This is the collide shape for target (Jak). ;; It is complicated. (deftype control-info (collide-shape-moving) - ( - (unknown-vector00 vector :inline :offset 448) ;; from - logic-target::build-conversions - (unknown-vector01 vector :inline :offset 464) ;; from - logic-target::turn-to-vector - (unknown-vector02 vector :inline :offset 480) ;; from - logic-target::do-rotations2 - (unknown-quaternion00 quaternion :inline :offset 496) ;; from - target-util::(method 27 control-info) - (unknown-quaternion01 quaternion :inline :offset 512) ;; from - logic-target::do-rotations2 - (unknown-float00 float :offset 528) ;; from - logic-target::do-rotations2 - (unknown-float01 float :offset 532) - (unknown-float02 float :offset 536) ;; from - logic-target::add-thrust - (unknown-vector10 vector :inline :offset 544) ;; from - logic-target::flat-setup - (unknown-vector11 vector :inline :offset 560) ;; from - logic-target::target-no-move-post - (unknown-vector12 vector :inline :offset 576) - (unknown-vector13 vector :inline :offset 592) ;; from - collide-shape::method-37 | target::mod-var-jump - (unknown-vector14 vector :inline :offset 608) ;; from - logic-target::target-no-move-post - (unknown-vector15 vector :inline :offset 624) ;; from - collide-shape::method-37 | target-handler::target-exit - (unknown-vector16 vector :inline :offset 640) ;; from - collide-shape::method-37 - (unknown-dynamics00 dynamics :offset 656) ;; from - logic-target::bend-gravity - (unknown-surface00 surface :offset 660) - (unknown-surface01 surface :offset 664) ;; not a symbol - target-util::target-align-vel-z-adjust - (unknown-cpad-info00 cpad-info :offset 668) ;; not a symbol - target-util::move-legs? - (unknown-float10 float :offset 672) ;; from - logic-target::turn-to-vector - (unknown-float11 float :offset 676) ;; from - logic-target::turn-to-vector - (unknown-float12 float :offset 680) ;; from - logic-target::turn-to-vector - (unknown-float13 float :offset 684) ;; from - logic-target::turn-to-vector - (unknown-vector20 vector :inline :offset 688) ;; from - logic-target::turn-to-vector - (unknown-vector21 vector :inline :offset 704) ;; from - logic-target::turn-to-vector - (unknown-vector22 vector :inline :offset 720) ;; from - logic-target::turn-to-vector - (unknown-vector23 vector :inline :offset 736) ;; from - logic-target::turn-to-vector - ; (unknown-dword-temp-01 uint64 :offset 776) ;; from - logic-target::read-pad - (unknown-vector-array00 vector 7 :inline :offset 752) ;; from - logic-target::turn-to-vector - (unknown-vector30 vector :inline :offset 880) ;; from - logic-target::read-pad - (unknown-vector31 vector :inline :offset 896) ;; from - logic-target::read-pad - (unknown-float20 float :offset 912) ;; from - logic-target::read-pad - (unknown-float21 float :offset 916) ;; from - logic-target::read-pad - (unknown-dword00 uint64 :offset 920) ;; from - logic-target::read-pad - (unknown-matrix00 matrix :inline :offset 928) ;; from - target-util::(method 16 target) - (unknown-matrix01 matrix :inline :offset 992) ;; from - target-util::(method 16 target) - (unknown-matrix02 matrix :inline :offset 1056) ;; from - logic-target::joint-points - (unknown-qword00 uint128 :offset 1136) - (unknown-float30 float :offset 1140) ;; from - logic-target::target-calc-camera-pos - (unknown-vector40 vector :inline :offset 1152) ;; from - logic-target::target-real-post - (unknown-float40 float :offset 1172) ;; from - target-death::lambda-1 - (unknown-float41 float :offset 1176) ;; from - logic-target::do-rotations2 - (unknown-int00 int32 :offset 1180) ;; from - logic-target::joint-points - (unknown-float50 float :offset 1168) ;; from - logic-target::target-real-post - (unknown-vector50 vector :inline :offset 1184) ;; from - logic-target::build-conversions - (unknown-vector51 vector :inline :offset 1200) ;; from - logic-target::build-conversions - (unknown-vector52 vector :inline :offset 1216) - (unknown-vector53 vector :inline :offset 1232) - (last-known-safe-ground vector :inline :offset 1248) - (unknown-vector55 vector :inline :offset 1264) - (unknown-dword10 time-frame :offset 1280) ;; from - collide-reaction-target::target-collision-reaction - (unknown-dword11 time-frame :offset 1288) ;; from - target-util::can-jump? - (unknown-float60 float :offset 1300) ;; from - target-util::can-duck? - (unknown-float61 float :offset 1304) ;; from - target-util::target-align-vel-z-adjust - (unknown-float62 float :offset 1308) ;; from - target-util::target-print-stats - (unknown-float63 float :offset 1312) ;; from - logic-target::target-compute-slopes - (unknown-float64 float :offset 1316) ;; from - logic-target::target-compute-slopes - (unknown-dword20 time-frame :offset 1320) ;; from target-util::turn-around? - TODO - (unknown-dword21 time-frame :offset 1328) ;; from target-util::turn-around? - TODO - (unknown-dword-coverage int64 :offset 1336) - (unknown-float-coverage-0 float :offset 1344) - (unknown-float-coverage-1 float :offset 1348) - (unknown-float-coverage-2 float :offset 1352) - (unknown-u32-coverage-0 uint32 :offset 1356) - (unknown-vector-coverage-0 vector :inline :offset 1376) - (unknown-vector-coverage-1 vector :inline :offset 1392) - (unknown-vector-coverage-2 vector :inline :offset 1440) - (unknown-vector-coverage-3 vector :inline :offset 1472) - (unknown-vector60 vector :inline :offset 1456) ;; from - logic-target::add-thrust - (unknown-vector61 vector :inline :offset 1504) ;; from - logic-target::add-thrust - (unknown-float70 float :offset 1520) ;; from - logic-target::add-thrust - (unknown-float71 float :offset 1524) ;; from - collide-shape::method-37 - (unknown-vector70 vector :inline :offset 1536) ;; from - logic-target::add-thrust - (unknown-vector71 vector :inline :offset 1552) ;; from - target-tube::tube-thrust - (unknown-vector72 vector :inline :offset 1568) ;; from - collide-reaction-racer::racer-collision-reaction - (unknown-vector73 vector :inline :offset 1584) ;; from - collide-reaction-racer::racer-collision-reaction - (unknown-handle00 handle :offset 1600) ;; from logic-target::reset-target-state - (unknown-sphere-array00 collide-shape-prim-sphere 3 :offset 1608) ;; from target-util::target-collide-set! and from target-util::target-danger-set! - (unknown-sphere00 collide-shape-prim-sphere :offset 1632) ;; from target-util::target-danger-set! - (unknown-sphere01 collide-shape-prim-sphere :offset 1636) ;; from target-util::target-danger-set! - (unknown-sphere02 collide-shape-prim-sphere :offset 1640) ;; from target-util::target-danger-set! - (unknown-int50 int32 :offset 1656) ;; from target::(enter target-wheel) - (unknown-dword30 time-frame :offset 1664) ;; from target::(trans target-walk) - (unknown-dword31 time-frame :offset 1672) ;; from target-util::can-hands? - (unknown-dword32 time-frame :offset 1680) ;; from target-util::can-hands? - (unknown-dword33 time-frame :offset 1688) ;; from target-util::can-feet? - (unknown-dword34 time-frame :offset 1696) ;; from target-util::can-feet? - (unknown-dword35 time-frame :offset 1704) ;; from target::(exit target-slide-down) - (unknown-dword36 time-frame :offset 1712) ;; from target::(trans target-jump) - (unknown-float80 float :offset 1724) ;; from logic-target::bend-gravity - (unknown-float81 float :offset 1728) ;; from logic-target::bend-gravity - (unknown-float82 float :offset 1732) ;; from logic-target::bend-gravity - (unknown-vector80 vector :inline :offset 1744) ;; from logic-target::joint-points - (unknown-cspace00 cspace :inline :offset 1760) ;; from logic-target::joint-points - (unknown-vector90 vector :score 100 :inline :offset 1776) ;; from logic-target::target-compute-edge - (unknown-vector91 vector :inline :offset 1792) ;; from logic-target::target-compute-edge - (unknown-vector92 vector :inline :offset 1824) ;; from logic-target::joint-points - (unknown-cspace10 cspace :inline :offset 1808) ;; from logic-target::joint-points - (unknown-symbol00 symbol :offset 1840) ;; from target-util::target-danger-set! - (unknown-float90 float :offset 1844) ;; from target-util::target-danger-set! - (unknown-float91 float :offset 1848) ;; from target-util::target-collide-set! - (unknown-vector-array10 vector 16 :inline :offset 1856) ;; from target-util::turn-around? - (unknown-float100 float :offset 2112) ;; from target-util::turn-around? - (unknown-int10 int32 :offset 2116) ;; from target-util::turn-around? - (unknown-float110 float :offset 2120) ;; from logic-target::target-compute-edge - (unknown-vector100 vector :inline :offset 2128) ;; from logic-target::target-compute-edge - (unknown-vector101 vector :inline :offset 2144) ;; from logic-target::target-compute-edge - (unknown-dword40 time-frame :offset 2160) ;; from logic-target::target-compute-edge - (unknown-dword41 time-frame :offset 2168) ;; from logic-target::target-compute-edge - (unknown-handle10 handle :offset 2176) ;; from logic-target::target-compute-pole - probably a swingpole - (unknown-uint20 uint32 :offset 2184) ;; from target::(trans target-running-attack) - (unknown-spoolanim00 spool-anim :offset 2184) ;; from target2::(trans target-stance-ambient) - (unknown-int20 int32 :offset 2184) ;; from (anon-function 1 basebutton) - (unknown-symbol20 symbol :offset 2184) ;; from (anon-function 1 basebutton) - (unknown-float120 float :offset 2184) ;; from target::mod-var-jump - (unknown-int21 int32 :offset 2188) ;; from logic-target::target-compute-pole - (unknown-uint30 uint32 :offset 2188) ;; from target::(code target-running-attack) - (unknown-float121 float :offset 2188) ;; from target::mod-var-jump - (unknown-uint31 uint32 :offset 2192) ;; from target::(trans target-running-attack) - (unknown-float122 float :offset 2196) ;; from target::(trans target-jump) - (unknown-float123 float :offset 2200) ;; from target::mod-var-jump - (unknown-float124 float :offset 2204) ;; from target::init-var-jump - (unknown-vector102 vector :inline :offset 2224) ;; from (anon-function 3 basebutton) - (unknown-vector103 vector :inline :offset 2240) ;; from (anon-function 3 basebutton) - (unknown-quaternion02 quaternion :inline :offset 2256) ;; from racer-states::(code target-racing-get-on) - (unknown-quaternion03 quaternion :inline :offset 2272) ;; from racer-states::(code target-racing-get-on) - (unknown-smush00 smush-control :inline :offset 2288) ;; from (event target-fishing) - (unknown-vector110 vector :inline :offset 2320) ;; from logic-target::flag-setup - (unknown-vector111 vector :inline :offset 2336) ;; from logic-target::flag-setup - (unknown-symbol30 symbol :offset 2384) ;; from target-util::target-danger-set! - (unknown-int31 uint32 :offset 2384) ;; from target:: (event target-running-attack) - (unknown-dword50 int64 :offset 2392) ;; from target-util::target-start-attack - (unknown-dword51 int64 :offset 2400) ;; from target-util::target-start-attack - (unknown-pointer00 pointer :offset 2416) ;; from target-handler::target-standard-event-handler - (unknown-symbol40 symbol :offset 2428) ;; from logic-target::post-flag-setup - (unknown-dword60 int64 :offset 2432) ;; from target::(enter target-jump) - (unknown-dword61 int64 :offset 2440) ;; from target::(enter target-jump) - (unknown-dword62 int64 :offset 2448) ;; from target::(enter target-jump) - probably some sort of object64 that's used as a vector? - (unknown-dword63 int64 :offset 2456) ;; from target::(enter target-jump) - (unknown-halfword00 int16 :offset 2488) ;; from logic-target::target-move-dist - ;; these were determined from racer-collision-reaction. - (history-length int16 :offset 2490) - (history-data collide-history 128 :inline :offset-assert 2496) - (unknown-float140 float :offset 18944) - (unknown-dword70 time-frame :offset 18952) ;; from logic-target::add-thrust - (unknown-int40 int32 :offset 18880) ;; from logic-target::flag-setup - (unknown-dword80 time-frame :offset 18888) ;; from logic-target::post-flag-setup - (unknown-dword81 time-frame :offset 18896) ;; from logic-target::post-flag-setup - (unknown-float130 float :offset 18904) ;; from target2::target-swim-tilt - (unknown-float131 float :offset 18908) ;; from target2::target-swim-tilt - (unknown-dword82 time-frame :offset 18912) ;; from logic-target::reset-target-state - (unknown-vector120 vector :inline :offset 18928) ;; from target::(code target-running-attack) - (unknown-float150 float :offset 18944) ;; from target::(code target-wheel-flip) - (unknown-vector121 vector :inline :offset 18960) ;; from target collide response - (wall-pat pat-surface :offset 18976) ;; pat information for wall-check collision - (unknown-soundid00 sound-id :offset 18980) ;; from powerups::target-powerup-process - (unknown-float141 float :offset 18984) ;; from powerups::target-powerup-process + ((unknown-vector00 vector :inline :offset 448) + (unknown-vector01 vector :inline :offset 464) + (unknown-vector02 vector :inline :offset 480) + (unknown-quaternion00 quaternion :inline :offset 496) + (unknown-quaternion01 quaternion :inline :offset 512) + (unknown-float00 float :offset 528) + (unknown-float01 float :offset 532) + (unknown-float02 float :offset 536) + (unknown-vector10 vector :inline :offset 544) + (unknown-vector11 vector :inline :offset 560) + (unknown-vector12 vector :inline :offset 576) + (unknown-vector13 vector :inline :offset 592) + (unknown-vector14 vector :inline :offset 608) + (unknown-vector15 vector :inline :offset 624) + (unknown-vector16 vector :inline :offset 640) + (unknown-dynamics00 dynamics :offset 656) + (unknown-surface00 surface :offset 660) + (unknown-surface01 surface :offset 664) + (unknown-cpad-info00 cpad-info :offset 668) + (unknown-float10 float :offset 672) + (unknown-float11 float :offset 676) + (unknown-float12 float :offset 680) + (unknown-float13 float :offset 684) + (unknown-vector20 vector :inline :offset 688) + (unknown-vector21 vector :inline :offset 704) + (unknown-vector22 vector :inline :offset 720) + (unknown-vector23 vector :inline :offset 736) + (unknown-vector-array00 vector 7 :inline :offset 752) + (unknown-vector30 vector :inline :offset 880) + (unknown-vector31 vector :inline :offset 896) + (unknown-float20 float :offset 912) + (unknown-float21 float :offset 916) + (unknown-dword00 uint64 :offset 920) + (unknown-matrix00 matrix :inline :offset 928) + (unknown-matrix01 matrix :inline :offset 992) + (unknown-matrix02 matrix :inline :offset 1056) + (unknown-qword00 uint128 :offset 1136) + (unknown-float30 float :offset 1140) + (unknown-vector40 vector :inline :offset 1152) + (unknown-float40 float :offset 1172) + (unknown-float41 float :offset 1176) + (unknown-int00 int32 :offset 1180) + (unknown-float50 float :offset 1168) + (unknown-vector50 vector :inline :offset 1184) + (unknown-vector51 vector :inline :offset 1200) + (unknown-vector52 vector :inline :offset 1216) + (unknown-vector53 vector :inline :offset 1232) + (last-known-safe-ground vector :inline :offset 1248) + (unknown-vector55 vector :inline :offset 1264) + (unknown-dword10 time-frame :offset 1280) + (unknown-dword11 time-frame :offset 1288) + (unknown-float60 float :offset 1300) + (unknown-float61 float :offset 1304) + (unknown-float62 float :offset 1308) + (unknown-float63 float :offset 1312) + (unknown-float64 float :offset 1316) + (unknown-dword20 time-frame :offset 1320) + (unknown-dword21 time-frame :offset 1328) + (unknown-dword-coverage int64 :offset 1336) + (unknown-float-coverage-0 float :offset 1344) + (unknown-float-coverage-1 float :offset 1348) + (unknown-float-coverage-2 float :offset 1352) + (unknown-u32-coverage-0 uint32 :offset 1356) + (unknown-vector-coverage-0 vector :inline :offset 1376) + (unknown-vector-coverage-1 vector :inline :offset 1392) + (unknown-vector-coverage-2 vector :inline :offset 1440) + (unknown-vector-coverage-3 vector :inline :offset 1472) + (unknown-vector60 vector :inline :offset 1456) + (unknown-vector61 vector :inline :offset 1504) + (unknown-float70 float :offset 1520) + (unknown-float71 float :offset 1524) + (unknown-vector70 vector :inline :offset 1536) + (unknown-vector71 vector :inline :offset 1552) + (unknown-vector72 vector :inline :offset 1568) + (unknown-vector73 vector :inline :offset 1584) + (unknown-handle00 handle :offset 1600) + (unknown-sphere-array00 collide-shape-prim-sphere 3 :offset 1608) + (unknown-sphere00 collide-shape-prim-sphere :offset 1632) + (unknown-sphere01 collide-shape-prim-sphere :offset 1636) + (unknown-sphere02 collide-shape-prim-sphere :offset 1640) + (unknown-int50 int32 :offset 1656) + (unknown-dword30 time-frame :offset 1664) + (unknown-dword31 time-frame :offset 1672) + (unknown-dword32 time-frame :offset 1680) + (unknown-dword33 time-frame :offset 1688) + (unknown-dword34 time-frame :offset 1696) + (unknown-dword35 time-frame :offset 1704) + (unknown-dword36 time-frame :offset 1712) + (unknown-float80 float :offset 1724) + (unknown-float81 float :offset 1728) + (unknown-float82 float :offset 1732) + (unknown-vector80 vector :inline :offset 1744) + (unknown-cspace00 cspace :inline :offset 1760) + (unknown-vector90 vector :inline :offset 1776) + (unknown-vector91 vector :inline :offset 1792) + (unknown-vector92 vector :inline :offset 1824) + (unknown-cspace10 cspace :inline :offset 1808) + (unknown-symbol00 symbol :offset 1840) + (unknown-float90 float :offset 1844) + (unknown-float91 float :offset 1848) + (unknown-vector-array10 vector 16 :inline :offset 1856) + (unknown-float100 float :offset 2112) + (unknown-int10 int32 :offset 2116) + (unknown-float110 float :offset 2120) + (unknown-vector100 vector :inline :offset 2128) + (unknown-vector101 vector :inline :offset 2144) + (unknown-dword40 time-frame :offset 2160) + (unknown-dword41 time-frame :offset 2168) + (unknown-handle10 handle :offset 2176) + (unknown-uint20 uint32 :offset 2184) + (unknown-spoolanim00 spool-anim :offset 2184) + (unknown-int20 int32 :offset 2184) + (unknown-symbol20 symbol :offset 2184) + (unknown-float120 float :offset 2184) + (unknown-int21 int32 :offset 2188) + (unknown-uint30 uint32 :offset 2188) + (unknown-float121 float :offset 2188) + (unknown-uint31 uint32 :offset 2192) + (unknown-int37 int32 :offset 2192) + (unknown-float122 float :offset 2196) + (unknown-float123 float :offset 2200) + (unknown-float124 float :offset 2204) + (unknown-vector102 vector :inline :offset 2224) + (unknown-vector103 vector :inline :offset 2240) + (unknown-quaternion02 quaternion :inline :offset 2256) + (unknown-quaternion03 quaternion :inline :offset 2272) + (unknown-smush00 smush-control :inline :offset 2288) + (unknown-vector110 vector :inline :offset 2320) + (unknown-vector111 vector :inline :offset 2336) + (unknown-symbol30 symbol :offset 2384) + (unknown-int31 uint32 :offset 2384) + (unknown-dword50 int64 :offset 2392) + (unknown-dword51 int64 :offset 2400) + (unknown-pointer00 pointer :offset 2416) + (unknown-symbol40 symbol :offset 2428) + (unknown-dword60 int64 :offset 2432) + (unknown-dword61 int64 :offset 2440) + (unknown-dword62 int64 :offset 2448) + (unknown-dword63 int64 :offset 2456) + (unknown-halfword00 int16 :offset 2488) + (history-length int16 :offset 2490) + (history-data collide-history 128 :inline :offset-assert 2496) + (unknown-float140 float :offset 18944) + (unknown-dword70 time-frame :offset 18952) + (unknown-int40 int32 :offset 18880) + (unknown-dword80 time-frame :offset 18888) + (unknown-dword81 time-frame :offset 18896) + (unknown-float130 float :offset 18904) + (unknown-float131 float :offset 18908) + (unknown-dword82 time-frame :offset 18912) + (unknown-vector120 vector :inline :offset 18928) + (unknown-float150 float :offset 18944) + (unknown-vector121 vector :inline :offset 18960) + (wall-pat pat-surface :offset 18976) + (unknown-soundid00 sound-id :offset 18980) + (unknown-float141 float :offset 18984) + (unknown-soundid01 sound-id :offset 18988) + (unknown-int34 int32 :offset 18992) + (unknown-int35 int32 :offset 18996) + (unknown-int36 int32 :offset 19000) ) - :size-assert #x4a2c :method-count-assert 65 - :flag-assert #x4100004a2c + :size-assert #x4a3c + :flag-assert #x4100004a3c ) (defmethod update! collide-history ((obj collide-history) (cshape collide-shape-moving) (xs vector) (transv vector) (transv-out vector)) diff --git a/goal_src/engine/target/target-death.gc b/goal_src/engine/target/target-death.gc index 110ce8b206..e96242225c 100644 --- a/goal_src/engine/target/target-death.gc +++ b/goal_src/engine/target/target-death.gc @@ -889,78 +889,87 @@ ) ) ) - (when (= arg0 'attack) - (logior! (-> self state-flags) (state-flags being-attacked)) - (set! (-> self game hit-time) (-> *display* base-frame-counter)) - (case (-> gp-0 mode) - (('endlessfall) - (cond - ((= (-> self game mode) 'debug) - (let ((s4-1 (new-stack-vector0))) - (set! (-> s4-1 quad) (-> self control last-known-safe-ground quad)) - (ja-channel-set! 0) - (let ((s3-1 (-> *display* base-frame-counter))) - (until (>= (- (-> *display* base-frame-counter) s3-1) (seconds 1)) - (suspend) - ) - ) - (move-to-point! (-> self control) s4-1) - ) - (set! (-> (&-> (-> self control) unknown-qword00) 0) (-> self control trans quad)) - (send-event *camera* 'teleport) - (go target-stance) - ) - (else - (pickup-collectable! - (-> self fact-info-target) - (pickup-type eco-green) - (the-as float -1000.0) - (the-as handle #f) + (cond + ((= arg0 'attack) + (logior! (-> self state-flags) (state-flags being-attacked)) + (set! (-> self game hit-time) (-> *display* base-frame-counter)) + (case (-> gp-0 mode) + (('endlessfall) + (cond + ((= (-> self game mode) 'debug) + (let ((s4-1 (new-stack-vector0))) + (set! (-> s4-1 quad) (-> self control last-known-safe-ground quad)) + (ja-channel-set! 0) + (let ((s3-1 (-> *display* base-frame-counter))) + (until (>= (- (-> *display* base-frame-counter) s3-1) (seconds 1)) + (suspend) + ) + ) + (move-to-point! (-> self control) s4-1) ) - (go target-death (-> gp-0 mode)) + (set! (-> (&-> (-> self control) unknown-qword00) 0) (-> self control trans quad)) + (send-event *camera* 'teleport) + (go target-stance) ) - ) - ) - (('drown-death 'sharkey 'lava 'dark-eco-pool 'ogreboss-super-boulder 'melt 'instant-death) - (pickup-collectable! - (-> self fact-info-target) - (pickup-type eco-green) - (the-as float -1000.0) - (the-as handle #f) - ) - (if (= (-> self game mode) 'play) - (go target-death (-> gp-0 mode)) - ) - ) - (('death) - (pickup-collectable! - (-> self fact-info-target) - (pickup-type eco-green) - (the-as float -1000.0) - (the-as handle #f) - ) - ) - (('plant-boss) - (pickup-collectable! - (-> self fact-info-target) - (pickup-type eco-green) - (- (-> *FACT-bank* health-single-inc)) - (the-as handle #f) - ) - (if (and (= (-> self game mode) 'play) (>= 0.0 (-> self fact-info-target health))) - (go target-death (-> gp-0 mode)) - ) - ) - (else + (else + (pickup-collectable! + (-> self fact-info-target) + (pickup-type eco-green) + (the-as float -1000.0) + (the-as handle #f) + ) + (go target-death (-> gp-0 mode)) + ) + ) + ) + (('drown-death 'sharkey 'lava 'dark-eco-pool 'ogreboss-super-boulder 'melt 'instant-death) + (pickup-collectable! + (-> self fact-info-target) + (pickup-type eco-green) + (the-as float -1000.0) + (the-as handle #f) + ) + (if (= (-> self game mode) 'play) + (go target-death (-> gp-0 mode)) + ) + ) + (('death) + (pickup-collectable! + (-> self fact-info-target) + (pickup-type eco-green) + (the-as float -1000.0) + (the-as handle #f) + ) + ) + (('plant-boss) (pickup-collectable! (-> self fact-info-target) (pickup-type eco-green) (- (-> *FACT-bank* health-single-inc)) (the-as handle #f) ) + (if (and (= (-> self game mode) 'play) (>= 0.0 (-> self fact-info-target health))) + (go target-death (-> gp-0 mode)) + ) + ) + (else + (pickup-collectable! + (-> self fact-info-target) + (pickup-type eco-green) + (- (-> *FACT-bank* health-single-inc)) + (the-as handle #f) + ) + ) + ) + (target-hit-effect gp-0) + ) + (else + (case (-> gp-0 mode) + (('burn 'burnup) + (sound-play "get-burned") + ) ) ) - (target-hit-effect gp-0) ) (set! (-> self control unknown-surface00) *smack-mods*) (target-hit-setup-anim gp-0) @@ -1097,6 +1106,18 @@ (('none 'instant-death) ) (('ogreboss-super-boulder) + ;; PAL patch here + (process-spawn + part-tracker + :init part-tracker-init + (-> *part-group-id-table* 32) + -1 + #f + #f + #f + (-> self control trans) + :to *entity-pool* + ) (set! (-> self post-hook) target-no-ja-move-post) (-> self attack-info attacker) (ja-channel-set! 0) diff --git a/goal_src/engine/target/target-h.gc b/goal_src/engine/target/target-h.gc index 0987db9cb9..ef1e15c231 100644 --- a/goal_src/engine/target/target-h.gc +++ b/goal_src/engine/target/target-h.gc @@ -40,11 +40,12 @@ (fp-hud handle :offset-assert 560) (no-load-wait time-frame :offset-assert 568) (no-look-around-wait time-frame :offset-assert 576) + (burn-proc handle :offset-assert 584) ) :heap-base #x1e0 :method-count-assert 21 - :size-assert #x248 - :flag-assert #x1501e00248 + :size-assert #x250 + :flag-assert #x1501e00250 (:methods (find-edge-grabs! (_type_ collide-cache) object 20) )