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

;; definition of type drawable
(deftype drawable (basic)
  ((id      int16          :offset-assert   4)
   (bsphere vector :inline :offset-assert  16)
   )
  :method-count-assert 18
  :size-assert         #x20
  :flag-assert         #x1200000020
  (:methods
    (login (_type_) _type_ 9)
    (draw (_type_ _type_ 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)
    (collect-stats (_type_) none 14)
    (debug-draw (_type_ drawable display-frame) none 15)
    (unpack-vis (_type_ (pointer int8) (pointer int8)) (pointer int8) 16)
    (collect-ambients (_type_ sphere int ambient-list) none 17)
    )
  )

;; definition for method 3 of type drawable
(defmethod inspect drawable ((obj drawable))
  (format #t "[~8x] ~A~%" obj (-> obj type))
  (format #t "~Tid: ~D~%" (-> obj id))
  (format #t "~Tbsphere: ~`vector`P~%" (-> obj bsphere))
  obj
  )

;; definition of type drawable-error
(deftype drawable-error (drawable)
  ((name string  :offset-assert  32)
   )
  :method-count-assert 18
  :size-assert         #x24
  :flag-assert         #x1200000024
  )

;; definition for method 3 of type drawable-error
(defmethod inspect drawable-error ((obj drawable-error))
  (format #t "[~8x] ~A~%" obj (-> obj type))
  (format #t "~Tid: ~D~%" (-> obj id))
  (format #t "~Tbsphere: ~`vector`P~%" (-> obj bsphere))
  (format #t "~Tname: ~A~%" (-> obj name))
  obj
  )

;; failed to figure out what this is:
0
