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

;; name: ruf-h.gc
;; name in dgo: ruf-h
;; dgos: SEB, SWB, UNB

;; DECOMP BEGINS

(deftype ruffian-course (bot-course)
  ((ouch-speeches  bot-speech-list-shuffle)
   )
  )


(deftype ruffian (bot)
  ((ruf-course          ruffian-course  :overlay-at course)
   (travel-anim-interp  float)
   (fired-gun-count     uint32)
   (next-fire-time      time-frame)
   )
  (:state-methods
    kick
    blast
    alert-idle
    alert-turn
    traveling
    traveling-blocked
    waiting-idle
    waiting-turn
    scared-idle
    scared-turn
    plant-bomb
    bomb-recoil
    )
  (:methods
    (ruffian-method-237 (_type_) symbol)
    (ruffian-method-238 (_type_) symbol)
    (fire-gun (_type_ vector) none)
    (ruffian-method-240 (_type_) none)
    (ruffian-method-241 (_type_) none)
    (ruffian-method-242 (_type_) none)
    (ruffian-method-243 (_type_) symbol)
    (ruffian-method-244 (_type_) none)
    (ruffian-method-245 (_type_) none)
    )
  )


(deftype ruft-wait-spot (ai-task)
  ((check-done    (function ruft-wait-spot ruffian symbol)    :overlay-at (-> bytes 0))
   (which-spot    int8                                        :overlay-at (-> bytes 4))
   (num-spots     uint8                                       :overlay-at (-> bytes 5))
   (spot-indexes  uint8                                     6 :overlay-at (-> bytes 6))
   )
  )


(deftype ruft-choose-jump (ai-task)
  ((check-done         (function ruft-choose-jump ruffian symbol)    :overlay-at (-> bytes 0))
   (which-spot         int8                                          :overlay-at (-> bytes 4))
   (num-spots          uint8                                         :overlay-at (-> bytes 5))
   (src-spot-indexes   uint8                                       4 :overlay-at (-> bytes 6))
   (dest-spot-indexes  uint8                                       4 :overlay-at (-> bytes 10))
   )
  (:methods
    (ruft-choose-jump-method-12 (_type_ ruffian) symbol)
    (ruft-choose-jump-method-13 (_type_ ruffian) int)
    )
  )


(deftype ruft-fight-focus (ai-task)
  ()
  )


(deftype ruft-plant-bomb (ai-task)
  ((check-done          (function ruft-plant-bomb ruffian symbol)    :overlay-at (-> bytes 0))
   (which-spot          int8                                         :overlay-at (-> bytes 4))
   (num-spots           uint8                                        :overlay-at (-> bytes 5))
   (stand-spot-indexes  uint8                                      2 :overlay-at (-> bytes 6))
   (face-spot-indexes   uint8                                      2 :overlay-at (-> bytes 8))
   )
  )
