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

;; name: wasdef-hud.gc
;; name in dgo: wasdef-hud
;; dgos: WCB

;; DECOMP BEGINS

(defmethod draw ((this hud-wasdef-damage))
  (set-hud-piece-position! (-> this sprites 0) 256 40)
  (set! (-> this sprites 0 pos z) #xfffff0)
  (set-as-offset-from! (-> this sprites 1) (-> this sprites 0 pos) -59 -5)
  (set! (-> this sprites 1 pos z) #xfffff0)
  (let ((f0-1 (fmax 0.0 (fmin 1.0 (-> *game-info* health-bar-vehicle)))))
    (set! (-> this sprites 1 color x) (the int (* 255.0 (- 1.0 f0-1))))
    (set! (-> this sprites 1 color y) (the int (* 255.0 f0-1)))
    (set! (-> this sprites 1 color z) 0)
    (set! (-> this sprites 1 scale-y) 2.7)
    (set! (-> this sprites 1 scale-x) (* 29.3 f0-1))
    )
  ((method-of-type hud draw) this)
  0
  (none)
  )

(defmethod update-values! ((this hud-wasdef-damage))
  (logclear! (-> this flags) (hud-flags disable))
  ((method-of-type hud update-values!) this)
  0
  (none)
  )

(defmethod init-callback ((this hud-wasdef-damage))
  (set! (-> this gui-id)
        (add-process *gui-control* this (gui-channel hud-lower-left-1) (gui-action hidden) (-> this name) 81920.0 0)
        )
  (logior! (-> this flags) (hud-flags show))
  (set! (-> this sprites 0 tid)
        (the-as texture-id (lookup-texture-by-id (new 'static 'texture-id :page #x8b0)))
        )
  (set! (-> this sprites 0 flags) (hud-sprite-flags hsf3))
  (set! (-> this sprites 0 scale-x) 1.0)
  (set! (-> this sprites 0 scale-y) 1.0)
  (set! (-> this sprites 1 tid) (the-as texture-id (get-texture common-white common)))
  (set! (-> this sprites 1 flags) (hud-sprite-flags))
  (set! (-> this sprites 1 scale-x) 0.0)
  (set! (-> this sprites 1 scale-y) 2.0)
  (set! (-> this sprites 1 color w) 127)
  0
  (none)
  )
