;;-*-Lisp-*- (in-package goal) ;; name: generic.gc ;; name in dgo: generic ;; dgos: GAME, ENGINE (define *generic-foreground-sinks* (new 'static 'boxed-array :type generic-dma-foreground-sink :length 0 :allocated-length 9)) (set! (-> *generic-foreground-sinks* 0) (-> *level* level0 foreground-sink-group 0 generic-sink)) (set! (-> *generic-foreground-sinks* 1) (-> *level* level0 foreground-sink-group 1 generic-sink)) (set! (-> *generic-foreground-sinks* 2) (-> *level* level1 foreground-sink-group 0 generic-sink)) (set! (-> *generic-foreground-sinks* 3) (-> *level* level1 foreground-sink-group 1 generic-sink)) (set! (-> *generic-foreground-sinks* 4) (-> *level* level-default foreground-sink-group 0 generic-sink)) (set! (-> *generic-foreground-sinks* 5) (-> *level* level-default foreground-sink-group 1 generic-sink)) (set! (-> *generic-foreground-sinks* 6) (new 'static 'generic-dma-foreground-sink :bucket (bucket-id generic-foreground))) (set! (-> *generic-foreground-sinks* 7) (-> *level* level0 foreground-sink-group 2 generic-sink)) (set! (-> *generic-foreground-sinks* 8) (-> *level* level1 foreground-sink-group 2 generic-sink)) (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) ) (defun generic-init-buffers () (vu-lights-default! *default-lights*) (let ((gp-0 (new 'static 'gs-zbuf :zbp #x1c0 :psm (gs-psm ct24))) (s5-0 (new 'static 'gs-zbuf :zbp #x1c0 :psm (gs-psm ct24) :zmsk #x1)) ) (dotimes (s4-0 9) (let ((s1-0 (-> *generic-foreground-sinks* s4-0))) (when s1-0 (let ((s3-0 (-> s1-0 bucket))) (with-dma-buffer-add-bucket ((s0-0 (-> (current-frame) global-buf)) s3-0) (if (>= s4-0 7) (generic-init-buf s0-0 1 s5-0) (generic-init-buf s0-0 1 gp-0) ) (generic-dma-foreground-sink-init s1-0) ) ) ) ) ) ) #f ) (defun generic-sink ((i int)) "Get the generic sink i" (-> *generic-foreground-sinks* i) )