mirror of
https://github.com/open-goal/jak-project
synced 2026-08-01 00:18:25 -04:00
2cb00f4a02
* blocked: `puffer` has state decomp issues * blocked: decomp crash when adding process-drawble cast in `helix-water` * blocked: `green-eco-lurker` no nice way to cast value out of EMB * decomp: started on `citadel-sages` * decomp: `seagull` blocked state decomp * blocked: `sunken-pipegame` runs into handle related issues * blocked: `snow-ram` and `snow-ram-boss` state decomp * decomp: `rolling-race-ring` blocked, handle casts * blocked: state decomp in `part-tester` * decomp: started `joint-exploder` * blocked: `anim-tester` has rare cmove-#f-zero usage * decomp: I lied! `anim-tester` finished * config: update banned list
56 lines
1.9 KiB
Common Lisp
56 lines
1.9 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; name: drawable-h.gc
|
|
;; name in dgo: drawable-h
|
|
;; dgos: GAME, ENGINE
|
|
|
|
(declare-type ambient-list structure)
|
|
(declare-type collide-list structure)
|
|
|
|
;; These is the base class for the scene graph node.
|
|
;; Note that it doesn't always make sense to call all of these methods on all types,
|
|
;; and that certain methods should only be called at certain times, and may require coordination
|
|
;; with having certain VU0 or scratchpad data present.
|
|
;; In many cases, "draw" simply adds data to a buffer that must later be converted to dma in finish-background
|
|
;; or similar.
|
|
|
|
(deftype drawable (basic)
|
|
((id int16 :offset-assert 4) ;; ID number (not always used)
|
|
(bsphere vector :inline :offset-assert 16) ;; bounding sphere
|
|
)
|
|
:method-count-assert 18
|
|
:size-assert #x20
|
|
:flag-assert #x1200000020
|
|
(:methods
|
|
(login (_type_) _type_ 9)
|
|
(draw (_type_ drawable display-frame) none 10)
|
|
(collide-with-box (_type_ int collide-list) none 11)
|
|
(collide-y-probe (_type_ int collide-list) none 12)
|
|
(collide-ray (_type_ int collide-list) none 13)
|
|
(dummy-14 (_type_) none 14)
|
|
(dummy-15 (_type_ object object) none 15)
|
|
(dummy-16 (_type_ object object) object 16)
|
|
(collect-ambients (_type_ sphere int ambient-list) none 17)
|
|
)
|
|
)
|
|
|
|
|
|
|
|
;; A drawable that simply draws a sphere and an error message at the origin of the bounding sphere.
|
|
(deftype drawable-error (drawable)
|
|
((name basic :offset-assert 32)
|
|
)
|
|
:method-count-assert 18
|
|
:size-assert #x24
|
|
:flag-assert #x1200000024
|
|
)
|
|
|
|
(declare-type process-drawable process)
|
|
(define-extern process-drawable-art-error (state string process-drawable))
|
|
(define-extern foreground-engine-execute (function engine display-frame int int none))
|
|
(define-extern sphere-in-view-frustum? (function sphere symbol))
|
|
|
|
;; for anim-tester
|
|
(define-extern dma-add-process-drawable function)
|