mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-21 17:47:44 -04:00
87961bdb3b
* decomp: Fix casting issue with uint64's from static data * decomp: `generic` * add forward declaration Co-authored-by: water111 <48171810+water111@users.noreply.github.com>
155 lines
3.8 KiB
Common Lisp
155 lines
3.8 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; name: generic.gc
|
|
;; name in dgo: generic
|
|
;; dgos: GAME, ENGINE
|
|
|
|
; This is actually defined in generic-vu1.gc but this file builds first
|
|
(define-extern generic-init-buf (function dma-buffer int uint none))
|
|
|
|
;; definition for symbol *generic-foreground-sinks*, type (array generic-dma-foreground-sink)
|
|
(define
|
|
*generic-foreground-sinks*
|
|
(the-as (array generic-dma-foreground-sink)
|
|
(new
|
|
'static
|
|
'boxed-array
|
|
:type generic-dma-foreground-sink :length 0 :allocated-length 9
|
|
)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *generic-foreground-sinks* 0)
|
|
(the-as
|
|
generic-dma-foreground-sink
|
|
(-> *level* level0 foreground-sink-group 0 merc-sink)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *generic-foreground-sinks* 1)
|
|
(the-as
|
|
generic-dma-foreground-sink
|
|
(-> *level* level0 foreground-sink-group 1 merc-sink)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *generic-foreground-sinks* 2)
|
|
(the-as
|
|
generic-dma-foreground-sink
|
|
(-> *level* level1 foreground-sink-group 0 merc-sink)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *generic-foreground-sinks* 3)
|
|
(the-as
|
|
generic-dma-foreground-sink
|
|
(-> *level* level1 foreground-sink-group 1 merc-sink)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *generic-foreground-sinks* 4)
|
|
(the-as
|
|
generic-dma-foreground-sink
|
|
(-> *level* level-default foreground-sink-group 0 merc-sink)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *generic-foreground-sinks* 5)
|
|
(the-as
|
|
generic-dma-foreground-sink
|
|
(-> *level* level-default foreground-sink-group 1 merc-sink)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *generic-foreground-sinks* 6)
|
|
(new 'static 'generic-dma-foreground-sink :bucket 30)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *generic-foreground-sinks* 7)
|
|
(the-as
|
|
generic-dma-foreground-sink
|
|
(-> *level* level0 foreground-sink-group 2 merc-sink)
|
|
)
|
|
)
|
|
|
|
;; failed to figure out what this is:
|
|
(set!
|
|
(-> *generic-foreground-sinks* 8)
|
|
(the-as
|
|
generic-dma-foreground-sink
|
|
(-> *level* level1 foreground-sink-group 2 merc-sink)
|
|
)
|
|
)
|
|
|
|
;; definition for function generic-dma-foreground-sink-init
|
|
;; INFO: Return type mismatch int vs none.
|
|
(defun generic-dma-foreground-sink-init ((arg0 generic-dma-foreground-sink))
|
|
(set! (-> arg0 state gifbuf-adr) (the-as uint 837))
|
|
(set! (-> arg0 state inbuf-adr) (the-as uint 9))
|
|
(none)
|
|
)
|
|
|
|
;; definition for function generic-init-buffers
|
|
(defun generic-init-buffers ()
|
|
(vu-lights-default! *default-lights*)
|
|
(let ((gp-0 #x10001c0)
|
|
(s5-0 (the-as uint #x1010001c0))
|
|
)
|
|
(dotimes (s4-0 9)
|
|
(let ((s1-0 (-> *generic-foreground-sinks* s4-0)))
|
|
(when s1-0
|
|
(let* ((s3-0 (-> s1-0 bucket))
|
|
(s0-0
|
|
(-> *display* frames (-> *display* on-screen) frame global-buf)
|
|
)
|
|
(s2-0 (-> s0-0 base))
|
|
)
|
|
(if (>= s4-0 7)
|
|
(generic-init-buf s0-0 1 s5-0)
|
|
(generic-init-buf s0-0 1 (the-as uint gp-0))
|
|
)
|
|
(generic-dma-foreground-sink-init s1-0)
|
|
(let ((a3-0 (-> s0-0 base)))
|
|
(let ((packet (the-as dma-packet (-> s0-0 base))))
|
|
(set! (-> packet dma) (new 'static 'dma-tag :id (dma-tag-id next)))
|
|
(set! (-> packet vif0) (new 'static 'vif-tag))
|
|
(set! (-> packet vif1) (new 'static 'vif-tag))
|
|
(set! (-> s0-0 base) (&+ (the-as pointer packet) 16))
|
|
)
|
|
(dma-bucket-insert-tag
|
|
(-> *display* frames (-> *display* on-screen) frame bucket-group)
|
|
s3-0
|
|
s2-0
|
|
(the-as (pointer dma-tag) a3-0)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
#f
|
|
)
|
|
|
|
;; definition for function generic-sink
|
|
(defun generic-sink ((arg0 int))
|
|
(-> *generic-foreground-sinks* arg0)
|
|
)
|