;;-*-Lisp-*- (in-package goal) ;; name: vu1-user-h.gc ;; name in dgo: vu1-user-h ;; dgos: GAME, ENGINE ;; VU1 renderers are enabled/disabled with a bitmask. ;; I believe this is renderers which can be enabled/disabled in the debug menu? (defenum vu1-renderer-mask :bitfield #t (sky 3) (ocean 4) (ocean-wave 5) (tfrag 6) (tie-near 7) (tie 8) (generic 9) (merc 10) (shrubbery 11) (shrub-near 12) (billboard 13) (trans-shrubbery 14) (trans-tfrag 15) (sprite 16) (shadow 17) (depth-cue 18) (nineteen 19) (twenty 20) ) (define *vu1-enable-user-menu* (vu1-renderer-mask sky ocean ocean-wave tfrag tie-near tie generic merc shrubbery shrub-near billboard trans-shrubbery trans-tfrag sprite shadow depth-cue nineteen twenty ) ) ;; disable depth-cue by default for the PC port (#when PC_PORT (logclear! *vu1-enable-user-menu* (vu1-renderer-mask depth-cue)) ) ;; by default, all off. ;; the menu renderers get copied to this on each frame (define *vu1-enable-user* (the-as vu1-renderer-mask 0)) ;; a dma "sink" is somewhere where a renderer can put stuff. (deftype dma-foreground-sink (basic) ((bucket bucket-id :offset-assert 4) ;; the DMA bucket (foreground-texture-page int8 :offset-assert 8) ;; the tpage we need (in the level) (foreground-texture-level int8 :offset-assert 9) ;; the level we belong to (foreground-output-bucket int8 :offset-assert 10) ;; ? ) :method-count-assert 9 :size-assert #xb :flag-assert #x90000000b ) ;; additional info for the generic renderer (deftype generic-bucket-state (structure) ((gifbuf-adr uint32 :offset-assert 0) (inbuf-adr uint32 :offset-assert 4) ) :pack-me :method-count-assert 9 :size-assert #x8 :flag-assert #x900000008 ) ;; sink for the generic renderer, a normal sink + extra data. (deftype generic-dma-foreground-sink (dma-foreground-sink) ((state generic-bucket-state :inline :offset-assert 12) ) :method-count-assert 9 :size-assert #x14 :flag-assert #x900000014 ) ;; group of sinks used for the foreground renderers. (declare-type level basic) (deftype dma-foreground-sink-group (basic) ((sink dma-foreground-sink 3 :offset-assert 4) (merc-sink dma-foreground-sink :offset 4) (generic-sink generic-dma-foreground-sink :offset 8) (level level :offset-assert 16) ) :method-count-assert 9 :size-assert #x14 :flag-assert #x900000014 )