;;-*-Lisp-*-
(in-package goal)

;; definition for symbol *vu1-enable-user-menu*, type vu1-renderer-mask
(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
                                 )
        )

;; definition for symbol *vu1-enable-user*, type vu1-renderer-mask
(define *vu1-enable-user* (the-as vu1-renderer-mask 0))

;; definition of type dma-foreground-sink
(deftype dma-foreground-sink (basic)
  ((bucket                   bucket-id  :offset-assert   4)
   (foreground-texture-page  int8       :offset-assert   8)
   (foreground-texture-level int8       :offset-assert   9)
   (foreground-output-bucket int8       :offset-assert  10)
   )
  :method-count-assert 9
  :size-assert         #xb
  :flag-assert         #x90000000b
  )

;; definition for method 3 of type dma-foreground-sink
(defmethod inspect dma-foreground-sink ((obj dma-foreground-sink))
  (format #t "[~8x] ~A~%" obj (-> obj type))
  (format #t "~Tbucket: ~D~%" (-> obj bucket))
  (format #t "~Tforeground-texture-page: ~D~%" (-> obj foreground-texture-page))
  (format #t "~Tforeground-texture-level: ~D~%" (-> obj foreground-texture-level))
  (format #t "~Tforeground-output-bucket: ~D~%" (-> obj foreground-output-bucket))
  obj
  )

;; definition of type generic-bucket-state
(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
  )

;; definition for method 3 of type generic-bucket-state
(defmethod inspect generic-bucket-state ((obj generic-bucket-state))
  (format #t "[~8x] ~A~%" obj 'generic-bucket-state)
  (format #t "~Tgifbuf-adr: ~D~%" (-> obj gifbuf-adr))
  (format #t "~Tinbuf-adr: ~D~%" (-> obj inbuf-adr))
  obj
  )

;; definition of type generic-dma-foreground-sink
(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
  )

;; definition for method 3 of type generic-dma-foreground-sink
(defmethod inspect generic-dma-foreground-sink ((obj generic-dma-foreground-sink))
  (format #t "[~8x] ~A~%" obj (-> obj type))
  (format #t "~Tbucket: ~D~%" (-> obj bucket))
  (format #t "~Tforeground-texture-page: ~D~%" (-> obj foreground-texture-page))
  (format #t "~Tforeground-texture-level: ~D~%" (-> obj foreground-texture-level))
  (format #t "~Tforeground-output-bucket: ~D~%" (-> obj foreground-output-bucket))
  (format #t "~Tstate: #<generic-bucket-state @ #x~X>~%" (-> obj state))
  obj
  )

;; definition of type dma-foreground-sink-group
(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
  )

;; definition for method 3 of type dma-foreground-sink-group
(defmethod inspect dma-foreground-sink-group ((obj dma-foreground-sink-group))
  (format #t "[~8x] ~A~%" obj (-> obj type))
  (format #t "~Tsink[3] @ #x~X~%" (-> obj sink))
  (format #t "~Tmerc-sink: ~A~%" (-> obj merc-sink))
  (format #t "~Tgeneric-sink: ~A~%" (-> obj generic-sink))
  (format #t "~Tlevel: ~A~%" (-> obj level))
  obj
  )

;; failed to figure out what this is:
0
