mirror of
https://github.com/open-goal/jak-project
synced 2026-05-29 16:45:10 -04:00
c12a5d777c
This should make all missions playable with the exception of the end of `precursor-destroy-ship` because `precurd` asserts on level extraction. - `trail` - `trail-graph` - `wastrail-graph` - `cty-protect` - `protect-gunship` - `protect-path` - `protect-script` - `assault-cams` - `assault-enemies` - `assault-path` - `assault-script` - `assault-shared` - `assault-task` - `hover-nav-precura` - `precura-mood` - `precura-obs` - `precura-obs2` - `precura-part` - `precurc-mood` - `precurc-obs` - `precurc-part` - `precurd-obs` - `precurd-part` - `precurd-scenes`
304 lines
14 KiB
Common Lisp
304 lines
14 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; name: entity-table.gc
|
|
;; name in dgo: entity-table
|
|
;; dgos: GAME
|
|
|
|
;; 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 22)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x8000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref desert-chase-ring :method-count 24)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref bt-grunt :method-count 55)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref bt-roboguard :method-count 47)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref w-parking-spot :method-count 27)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref min-elevator :method-count 52)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref tpl-bouncer :method-count 28)
|
|
: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 31)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref kleever-catch-lizards :method-count 21)
|
|
: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 45)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref tizard :method-count 36)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref ladder :method-count 27)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref mh-centipede :method-count 43)
|
|
: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 15)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref mhcity-tower-door :method-count 21)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref mhcity-grunt-egg-d :method-count 32)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref mhcity-grunt-egg-c :method-count 32)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref mhcity-grunt-egg-b :method-count 32)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref mhcity-grund-egg-a :method-count 32)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref mhcity-de-tower-undervines :method-count 32)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref mhcity-vine-wriggler-big :method-count 32)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref mhcity-vine-wriggler :method-count 32)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref mhcity-twitch-blade :method-count 21)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref mhcity-claw-finger-small :method-count 32)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref mhcity-vein-writhing-small :method-count 32)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref mhcity-vein-writhing-large :method-count 32)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref mhcity-dark-eco-nodule :method-count 22)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref mhcity-dark-eco-door :method-count 33)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref mhcity-puffer-large :method-count 35)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref mhcity-puffer :method-count 35)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref searchlight :method-count 21)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref ctyn-lamp :method-count 32)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref burning-bush :method-count 35)
|
|
: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 152)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref boat-manager :method-count 17)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref propa :method-count 33)
|
|
: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 27)
|
|
:pool '*16k-dead-pool*
|
|
:heap-size #x4000
|
|
)
|
|
(new 'static 'entity-info
|
|
:ptype (type-ref security-wall :method-count 25)
|
|
: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 31)
|
|
: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 17)
|
|
: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)
|
|
)
|
|
)
|
|
)
|
|
) |