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

;; definition for method 9 of type drawable-tree-collide-fragment
(defmethod login drawable-tree-collide-fragment ((obj drawable-tree-collide-fragment))
  obj
  )

;; definition for method 10 of type drawable-tree-collide-fragment
;; INFO: Return type mismatch int vs none.
(defmethod draw drawable-tree-collide-fragment ((obj drawable-tree-collide-fragment) (arg0 drawable-tree-collide-fragment) (arg1 display-frame))
  (when *display-render-collision*
    (dotimes (s4-0 (-> obj length))
      (draw (-> obj data s4-0) (-> obj data s4-0) arg1)
      )
    )
  0
  (none)
  )

;; definition for method 16 of type drawable-tree-collide-fragment
(defmethod unpack-vis drawable-tree-collide-fragment ((obj drawable-tree-collide-fragment) (arg0 (pointer int8)) (arg1 (pointer int8)))
  arg1
  )

;; definition for method 11 of type drawable-tree-collide-fragment
;; INFO: Return type mismatch int vs none.
(defmethod collide-with-box drawable-tree-collide-fragment ((obj drawable-tree-collide-fragment) (arg0 int) (arg1 collide-list))
  (collide-with-box (-> obj data-override) (-> obj length) arg1)
  0
  (none)
  )

;; definition for method 12 of type drawable-tree-collide-fragment
;; INFO: Return type mismatch int vs none.
(defmethod collide-y-probe drawable-tree-collide-fragment ((obj drawable-tree-collide-fragment) (arg0 int) (arg1 collide-list))
  (collide-y-probe (-> obj data-override) (-> obj length) arg1)
  0
  (none)
  )

;; definition for method 13 of type drawable-tree-collide-fragment
;; INFO: Return type mismatch int vs none.
(defmethod collide-ray drawable-tree-collide-fragment ((obj drawable-tree-collide-fragment) (arg0 int) (arg1 collide-list))
  (collide-ray (-> obj data-override) (-> obj length) arg1)
  0
  (none)
  )

;; definition for method 8 of type collide-fragment
;; INFO: Return type mismatch int vs collide-fragment.
(defmethod mem-usage collide-fragment ((obj collide-fragment) (arg0 memory-usage-block) (arg1 int))
  (let ((s5-0 (if (logtest? arg1 1)
                  53
                  50
                  )
              )
        (s4-0 (-> obj mesh))
        )
    (set! (-> arg0 data s5-0 name) (symbol->string 'collide-fragment))
    (+! (-> arg0 data s5-0 count) 1)
    (let ((v1-11 (+ (asize-of obj) (asize-of s4-0))))
      (+! (-> arg0 data s5-0 used) v1-11)
      (+! (-> arg0 data s5-0 total) (logand -16 (+ v1-11 15)))
      )
    (set! (-> arg0 data (+ s5-0 1) name) "collision-poly")
    (+! (-> arg0 data (+ s5-0 1) count) (-> s4-0 poly-count))
    (let ((v1-22 (+ (-> s4-0 strip-data-len) (-> s4-0 poly-count))))
      (+! (-> arg0 data (+ s5-0 1) used) v1-22)
      (+! (-> arg0 data (+ s5-0 1) total) v1-22)
      )
    (set! (-> arg0 data (+ s5-0 2) name) "collision-vertex")
    (+! (-> arg0 data (+ s5-0 2) count) (-> s4-0 vertex-count))
    (let ((v1-31 (* (-> s4-0 vertex-data-qwc) 16)))
      (+! (-> arg0 data (+ s5-0 2) used) v1-31)
      (let ((v0-2 (+ (-> arg0 data (+ s5-0 2) total) v1-31)))
        (set! (-> arg0 data (+ s5-0 2) total) v0-2)
        (the-as collide-fragment v0-2)
        )
      )
    )
  )

;; definition for method 9 of type drawable-inline-array-collide-fragment
(defmethod login drawable-inline-array-collide-fragment ((obj drawable-inline-array-collide-fragment))
  obj
  )

;; definition for method 10 of type collide-fragment
;; INFO: Return type mismatch int vs none.
(defmethod draw collide-fragment ((obj collide-fragment) (arg0 collide-fragment) (arg1 display-frame))
  0
  (none)
  )

;; definition for method 10 of type drawable-inline-array-collide-fragment
;; INFO: Return type mismatch int vs none.
(defmethod draw drawable-inline-array-collide-fragment ((obj drawable-inline-array-collide-fragment)
                                                      (arg0 drawable-inline-array-collide-fragment)
                                                      (arg1 display-frame)
                                                      )
  (dotimes (s4-0 (-> obj length))
    (let ((s3-0 (-> obj data s4-0)))
      (if (sphere-cull (-> s3-0 bsphere))
          (draw s3-0 s3-0 arg1)
          )
      )
    )
  0
  (none)
  )

;; definition for method 11 of type drawable-inline-array-collide-fragment
;; INFO: Return type mismatch int vs none.
(defmethod collide-with-box drawable-inline-array-collide-fragment ((obj drawable-inline-array-collide-fragment) (arg0 int) (arg1 collide-list))
  (collide-with-box (the-as collide-fragment (-> obj data)) (-> obj length) arg1)
  0
  (none)
  )

;; definition for method 12 of type drawable-inline-array-collide-fragment
;; INFO: Return type mismatch int vs none.
(defmethod collide-y-probe drawable-inline-array-collide-fragment ((obj drawable-inline-array-collide-fragment) (arg0 int) (arg1 collide-list))
  (collide-y-probe (the-as collide-fragment (-> obj data)) (-> obj length) arg1)
  0
  (none)
  )

;; definition for method 13 of type drawable-inline-array-collide-fragment
;; INFO: Return type mismatch int vs none.
(defmethod collide-ray drawable-inline-array-collide-fragment ((obj drawable-inline-array-collide-fragment) (arg0 int) (arg1 collide-list))
  (collide-ray (the-as collide-fragment (-> obj data)) (-> obj length) arg1)
  0
  (none)
  )

;; definition for method 8 of type drawable-inline-array-collide-fragment
(defmethod mem-usage drawable-inline-array-collide-fragment ((obj drawable-inline-array-collide-fragment) (arg0 memory-usage-block) (arg1 int))
  (set! (-> arg0 length) (max 1 (-> arg0 length)))
  (set! (-> arg0 data 0 name) (symbol->string 'drawable-group))
  (+! (-> arg0 data 0 count) 1)
  (let ((v1-7 32))
    (+! (-> arg0 data 0 used) v1-7)
    (+! (-> arg0 data 0 total) (logand -16 (+ v1-7 15)))
    )
  (dotimes (s3-0 (-> obj length))
    (mem-usage (-> obj data s3-0) arg0 arg1)
    )
  obj
  )
