;;-*-Lisp-*- (in-package goal) ;; name: collide-cache-h.gc ;; name in dgo: collide-cache-h ;; dgos: ENGINE, GAME (declare-type collide-query structure) (declare-type instance-tie basic) ;; DECOMP BEGINS (deftype collide-puss-sphere (structure) ((bsphere sphere :inline) (bbox4w bounding-box4w :inline) ) ) (deftype collide-puss-work (structure) ((closest-pt vector :inline) (tri-normal vector :inline) (tri-bbox4w bounding-box4w :inline) (spheres-bbox4w bounding-box4w :inline) (spheres collide-puss-sphere 64 :inline) ) (:methods (collide-puss-work-method-9 () none) (collide-puss-work-method-10 () none) ) ) (deftype collide-cache-tri (structure) ((vertex vector 3 :inline) (extra-quad uint8 16) (pat pat-surface :overlay-at (-> extra-quad 0)) (collide-ptr basic :overlay-at (-> extra-quad 4)) (prim-index uint16 :overlay-at (-> extra-quad 8)) (user16 uint16 :overlay-at (-> extra-quad 10)) (user32 uint32 :overlay-at (-> extra-quad 12)) (clear-flags uint128 :overlay-at (-> extra-quad 0)) ) ) (deftype collide-cache-prim (structure) ((prim-core collide-prim-core :inline) (extra-quad uint8 16) (ccache collide-cache :overlay-at (-> extra-quad 0)) (prim collide-shape-prim :overlay-at (-> extra-quad 4)) (first-tri uint16 :overlay-at (-> extra-quad 8)) (num-tris uint16 :overlay-at (-> extra-quad 10)) (unused uint8 4 :overlay-at (-> extra-quad 12)) (world-sphere vector :inline :overlay-at (-> prim-core world-sphere)) (collide-as collide-spec :overlay-at (-> prim-core collide-as)) (action collide-action :overlay-at (-> prim-core action)) (prim-type prim-type :overlay-at (-> prim-core prim-type)) ) (:methods (resolve-moving-sphere-tri (_type_ collide-tri-result collide-prim-core vector float collide-action) float) (resolve-moving-sphere-sphere (_type_ collide-tri-result collide-prim-core vector float collide-action) float) ) ) (deftype collide-cache (basic) ((num-tris int32) (num-tris-u32 uint32 :overlay-at num-tris) (num-prims int32) (num-prims-u32 uint32 :overlay-at num-prims) (ignore-mask pat-surface) (ignore-processes process 2) (collide-box bounding-box :inline) (collide-box4w bounding-box4w :inline) (collide-with collide-spec) (unused uint32) (prims collide-cache-prim 100 :inline) (tris collide-cache-tri 461 :inline) ) (:methods (debug-draw (_type_) none) (fill-and-probe-using-line-sphere (_type_ collide-query) float) (fill-and-probe-using-spheres (_type_ collide-query) symbol) (fill-using-bounding-box (_type_ collide-query) none) (fill-using-line-sphere (_type_ collide-query) none) (fill-using-spheres (_type_ collide-query) none) (reset (_type_) none) (probe-using-line-sphere (_type_ collide-query) float) (probe-using-spheres (_type_ collide-query) symbol) (fill-from-bg (_type_ (function collide-hash int collide-list collide-query int) (function collide-cache collide-list collide-query none) collide-query) none) (fill-from-fg-boxes (_type_) none) (fill-from-fg-line-sphere (_type_ collide-query) none) (fill-from-water (_type_ water-control) none) (collide-cache-method-22 () none) (collide-cache-method-23 () none) (collide-cache-method-24 () none) (collide-cache-method-25 () none) ) ) (deftype collide-list-item (structure) ((mesh instance-tie) (inst basic) ) :pack-me ) (deftype collide-list (structure) ((num-items int32) (items collide-list-item 256 :inline :offset 16) ) ) (kmemopen global "collide-cache") (define-perm *collide-cache* collide-cache (new 'global 'collide-cache)) (define-perm *collide-list* collide-list (new 'global 'collide-list)) (kmemclose)