;;-*-Lisp-*-
(in-package goal)
(bundles "ENGINE.CGO" "GAME.CGO")
(require "engine/gfx/hw/display-h.gc")
(require "engine/draw/drawable-tree-h.gc")
(require "engine/draw/drawable-inline-array-h.gc")

;; the actors are also stored in a drawable-tree, but they use almost none of the features of drawable.
;; it's just a way to iterate over all actor data.

(declare-type entity-actor basic)

;; DECOMP BEGINS

;; the actual drawable is just a reference to the actor itself.
(deftype drawable-actor (drawable)
  ((actor entity-actor :offset 8)))

;; the tree of drawable-actors
(deftype drawable-tree-actor (drawable-tree) ())

(deftype drawable-inline-array-actor (drawable-inline-array)
  ((data drawable-actor 1 :inline)
   (pad  uint8 4)))

(defmethod draw ((this drawable-tree-actor) (arg0 drawable-tree-actor) (arg1 display-frame))
  "Do nothing, actor data is not drawn."
  0
  (none))
