;;-*-Lisp-*-
(in-package goal)
(bundles "ENGINE.CGO" "GAME.CGO")
(require "engine/math/matrix.gc")
(require "engine/util/smush-control-h.gc")
(defenum external-cam-option
  :bitfield #t
  (allow-z 0))

(define *external-cam-options* (external-cam-option))

(define *external-cam-mode* #f)

(define-perm *camera-look-through-other* int 0)

(define-perm *camera-other-fov* bfloat (new 'static 'bfloat :data 11650.845))

(define-perm *camera-other-trans* vector (vector-reset! (new 'global 'vector)))

(define-perm *camera-other-matrix* matrix (matrix-identity! (new 'global 'matrix)))

(define-perm *camera-smush-control* smush-control (set-zero! (new 'global 'smush-control)))

(define-perm *camera-other-root* vector (vector-reset! (new 'global 'vector)))

;; TODO - actually defined in cam-states-dbg
(define-extern cam-free-floating-move (function matrix vector vector int vector))

(define-extern cam-free-floating-input (function vector vector symbol int vector))
