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

;; name: process-taskable-h.gc
;; name in dgo: process-taskable-h
;; dgos: GAME

;; +++process-taskable-flags
(defenum process-taskable-flags
  :type uint32
  :bitfield #t
  (ptf0 0)
  (ptf1 1)
  (ptf2 2)
  (ptf3 3)
  (ptf4 4)
  (ptf5 5)
  (ptf6 6)
  (ptf7 7)
  (ptf8 8)
  )
;; ---process-taskable-flags


;; DECOMP BEGINS

(deftype process-taskable (process-focusable)
  "The parent class for NPCs that can be talked to."
  ((flags             process-taskable-flags)
   (task              game-task-control)
   (ambient           ambient-control  :inline :offset 216)
   (neck-joint-index  int32)
   (talk-message      text-id)
   (talk-distance     meters)
   (talk-height       meters)
   (last-talk         time-frame)
   (want-to-say       time-frame)
   (birth-time        time-frame)
   (slave             handle)
   )
  (:state-methods
    hide
    idle
    (active game-task-event)
    die
    (play-game game-task-event)
    )
  (:methods
    (init-collision! (_type_) none)
    (init-defaults! (_type_) none)
    (init-skeleton! (_type_) none)
    (process-taskable-method-36 (_type_) symbol)
    (get-art-element (_type_) art-element)
    (process-taskable-method-38 (_type_) none)
    (update-cloth-and-shadow (_type_) none)
    )
  )
