mirror of
https://github.com/open-goal/jak-project
synced 2026-08-10 03:06:18 -04:00
bdee98323d
Adds the following files: - `amphibian` - `centurion` - `ginsu` - `grenadier` - `hopper` - `metalmonk` - `monster-frog` - `predator-graph` - `predator-h` - `predator` - `rapid-gunner` - `rhino` - `rhino-wall` - `tomb-baby-spider` Also adds the DGOs for the following levels: - Mar's Tomb - Mountain Temple - Drill Platform - Sacred Site (Sage Hut) Manual patches: - The decompiler emits `(b! #t cfg-17)` in `(trans hostile hopper)` without putting a `(label cfg-17)` anywhere - Added cast to `art-joint-anim` in `(code broken rhino-wall)` and `(code hit rhino-wall)` Other notes: - `amphibian` seems to occasionally crash when using its tongue attack. Haven't investigated this yet - `ginsu` crashes after being killed somewhere in the `deactivate` method, possibly because of its `part-spawner` - Predators aren't spawning in the forest hunt mission, not sure if `forest-obs` might be needed for that or if it's something else - The `rhino-wall` STR animation seems to load (albeit a bit broken due to missing VAG stream playback), but causes the viewport to shrink as soon as it's played - I added `pegasus::74` to the `event_handler_hack` bool in `variable_naming.cpp` because I got a `none` cast after changing the return value of `enemy::74`
141 lines
5.5 KiB
Common Lisp
141 lines
5.5 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; name: spatial-hash-h.gc
|
|
;; name in dgo: spatial-hash-h
|
|
;; dgos: ENGINE, GAME
|
|
|
|
(declare-type grid-hash-work basic)
|
|
|
|
;; DECOMP BEGINS
|
|
|
|
(deftype grid-hash-word (uint8)
|
|
()
|
|
:method-count-assert 9
|
|
:size-assert #x1
|
|
:flag-assert #x900000001
|
|
)
|
|
|
|
(deftype grid-hash-box (structure)
|
|
((min int8 3 :offset-assert 0)
|
|
(max int8 3 :offset-assert 3)
|
|
)
|
|
:pack-me
|
|
:method-count-assert 9
|
|
:size-assert #x6
|
|
:flag-assert #x900000006
|
|
)
|
|
|
|
|
|
(deftype grid-hash (basic)
|
|
((work grid-hash-work :offset-assert 4)
|
|
(search-box grid-hash-box :inline :offset-assert 8)
|
|
(bucket-size int16 :offset-assert 14)
|
|
(axis-scale float 3 :offset-assert 16)
|
|
(dimension-array int8 3 :offset-assert 28)
|
|
(vertical-cell-count int8 :offset-assert 31)
|
|
(bucket-array (pointer grid-hash-word) :offset-assert 32)
|
|
(box-min float 3 :offset-assert 36)
|
|
(box-max float 3 :offset-assert 48)
|
|
(object-count int16 :offset-assert 60)
|
|
(bucket-count int16 :offset-assert 62)
|
|
(min-cell-size float :offset-assert 64)
|
|
(bucket-memory-size int32 :offset-assert 68)
|
|
(mem-bucket-array (pointer grid-hash-word) :offset-assert 72)
|
|
(spr-bucket-array (pointer grid-hash-word) :offset-assert 76)
|
|
(debug-draw symbol :offset-assert 80)
|
|
(use-scratch-ram symbol :offset-assert 84)
|
|
)
|
|
:method-count-assert 25
|
|
:size-assert #x58
|
|
:flag-assert #x1900000058
|
|
(:methods
|
|
(new (symbol type int) _type_ 0)
|
|
(update-grid-for-objects-in-box (_type_ int vector vector) none 9)
|
|
(clear-bucket-array (_type_) none 10)
|
|
(setup-search-box (_type_ int vector vector vector) none 11)
|
|
(search-for-point (_type_ vector) (pointer uint8) 12)
|
|
(search-for-sphere (_type_ vector float) (pointer uint8) 13)
|
|
(draw (_type_ rgba) none 14)
|
|
(dump-grid-info (_type_) none 15)
|
|
(verify-bits-in-bucket (_type_ grid-hash-box grid-hash-box) none 16)
|
|
(box-of-everything (_type_ object grid-hash-box) none 17)
|
|
(grid-hash-method-18 (_type_ grid-hash-box int) none 18)
|
|
(grid-hash-method-19 (_type_ grid-hash-box int) none 19)
|
|
(do-search! (_type_ grid-hash-box (pointer uint8)) none 20)
|
|
(set-up-box (_type_ grid-hash-box vector vector) none 21)
|
|
(sphere-to-grid-box (_type_ grid-hash-box sphere) none 22)
|
|
(line-sphere-to-grid-box (_type_ grid-hash-box vector vector float) none 23)
|
|
(update-grid (_type_) none 24)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype find-nav-sphere-ids-params (structure)
|
|
((bsphere sphere :inline :offset-assert 0)
|
|
(y-threshold float :offset-assert 16)
|
|
(len int16 :offset-assert 20)
|
|
(max-len int16 :offset-assert 22)
|
|
(mask uint8 :offset-assert 24)
|
|
(array (pointer uint8) :offset-assert 28)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x20
|
|
:flag-assert #x900000020
|
|
)
|
|
|
|
|
|
(deftype sphere-hash (grid-hash)
|
|
((sphere-array (inline-array sphere) :offset-assert 88)
|
|
(max-object-count int16 :offset-assert 92)
|
|
(pad int16 :offset-assert 94)
|
|
(mem-sphere-array uint32 :offset-assert 96)
|
|
(spr-sphere-array uint32 :offset-assert 100)
|
|
)
|
|
:method-count-assert 34
|
|
:size-assert #x68
|
|
:flag-assert #x2200000068
|
|
(:methods
|
|
(new (symbol type int int) _type_ 0)
|
|
(clear-objects! (_type_) none 25)
|
|
(add-a-sphere (_type_ vector) int 26)
|
|
(add-a-sphere-with-flag (_type_ vector int) int 27)
|
|
(update-from-spheres (_type_) none 28)
|
|
(sphere-hash-method-29 (_type_ find-nav-sphere-ids-params int int int) none 29)
|
|
(find-nav-sphere-ids (_type_ find-nav-sphere-ids-params) none 30)
|
|
(add-sphere-with-mask-and-id (_type_ vector int int) symbol 31)
|
|
(sphere-hash-method-32 (_type_ vector vector float int) symbol 32)
|
|
(remove-by-id (_type_ sphere int) none 33)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype hash-object-info (structure)
|
|
((object basic :offset-assert 0)
|
|
)
|
|
:method-count-assert 9
|
|
:size-assert #x4
|
|
:flag-assert #x900000004
|
|
)
|
|
|
|
|
|
(deftype spatial-hash (sphere-hash)
|
|
((object-array (inline-array hash-object-info) :offset-assert 104)
|
|
(mem-object-array (inline-array hash-object-info) :offset-assert 108)
|
|
(spr-object-array (inline-array hash-object-info) :offset-assert 112)
|
|
)
|
|
:method-count-assert 41
|
|
:size-assert #x74
|
|
:flag-assert #x2900000074
|
|
(:methods
|
|
(new (symbol type int int) _type_ 0)
|
|
(add-an-object (_type_ vector hash-object-info) int 34)
|
|
(fill-actor-list-for-box (_type_ bounding-box (pointer collide-shape) int) int 35)
|
|
(fill-actor-list-for-sphere (_type_ sphere (pointer collide-shape) int) int 36)
|
|
(fill-actor-list-for-line-sphere (_type_ vector vector float (pointer collide-shape) int int) int 37)
|
|
(fill-actor-list-for-vec+r (_type_ vector (pointer collide-shape) int) int 38)
|
|
(spatial-hash-method-39 (_type_ object hash-object-info) int 39)
|
|
(validate-objects (_type_) none 40)
|
|
)
|
|
)
|