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

;; name: hover-enemy-h.gc
;; name in dgo: hover-enemy-h
;; dgos: TEMA, SEA, FACC, LFORM, FACD, LPATK, TOWERA, PRECA, VOCA

;; DECOMP BEGINS

(deftype hover-enemy-info (structure)
  ((fly-forward-anim     int32)
   (fly-backward-anim    int32)
   (fly-left-anim        int32)
   (fly-right-anim       int32)
   (shoot-anim           int32)
   (main-joint           int32)
   (gun-base             int32)
   (engine-left          int32)
   (engine-right         int32)
   (thrust-rotate-left   float)
   (thrust-rotate-right  float)
   (hover-y-offset       float)
   (hover-xz-offset      float)
   (use-flying-death     symbol)
   (fly-x-anim-seek      float)
   (fly-z-anim-seek      float)
   )
  )


(deftype hover-enemy (enemy)
  ((los                         los-control  :inline)
   (main-joint-movement         vector       3 :inline)
   (rotation-vec                vector       :inline)
   (dest-pos                    vector       :inline)
   (offset                      vector       :inline)
   (surface-normal              vector       :inline)
   (local-dir                   vector       :inline)
   (hover                       hover-nav-control)
   (hover-info                  hover-enemy-info)
   (formation-entity            entity)
   (fly-anim-speed              float)
   (restart-fly-anims           symbol)
   (thrust                      float        2)
   (scale                       float)
   (scale-timer                 time-frame)
   (hover-id                    int32)
   (hit-surface?                symbol)
   (knocked-start-level         float)
   (knocked-fall-dist           float)
   (flying-death-anim           int32)
   (flying-death-transv         vector       :inline)
   (flying-death-engine         int32)
   (flying-death-thrust-rotate  float)
   (flying-death-spin           float)
   (flying-death-spin-dest      float)
   (flying-death-spin-axis      vector       :inline)
   )
  (:state-methods
    land-approach
    land
    flying-death
    flying-death-explode
    )
  (:methods
    (hover-enemy-method-159 (_type_ symbol) none)
    (hover-enemy-method-160 (_type_) object)
    (hover-enemy-method-161 (_type_) none)
    (hover-enemy-method-162 (_type_ float) vector)
    (hover-enemy-method-163 (_type_) none)
    (hover-enemy-method-164 (_type_ int float) none)
    (hover-enemy-method-165 (_type_) none)
    (play-fly-anim (_type_ int float int int) none)
    (hover-enemy-method-167 (_type_) none)
    (hover-enemy-method-168 (_type_) none)
    (hover-enemy-method-169 (_type_) none)
    (hover-enemy-method-170 (_type_) none)
    (get-enemy-info (_type_) enemy-info)
    (get-hover-info (_type_) hover-enemy-info)
    (get-hover-params (_type_) hover-nav-params)
    (hover-enemy-method-174 (_type_) none)
    (hover-enemy-method-175 (_type_) none)
    (hover-enemy-method-176 (_type_) none)
    )
  )
