2011-07-27 15:43:17 +00:00
|
|
|
(in-package #:flight-sim)
|
|
|
|
|
|
|
|
(defmacro restartable (&body body)
|
|
|
|
"Helper macro since we use continue restarts a lot
|
|
|
|
(remember to hit C in slime or pick the restart so errors don't kill the app"
|
|
|
|
`(restart-case
|
|
|
|
(progn ,@body)
|
|
|
|
(continue () :report "Continue")))
|
|
|
|
|
|
|
|
(defun make-2d-array (h w contents)
|
|
|
|
(let ((arr (make-array h)))
|
|
|
|
(do ((i 0 (incf i))
|
|
|
|
(rest-list contents (rest rest-list)))
|
|
|
|
((eql i h))
|
|
|
|
(setf (aref arr i) (make-array w :initial-contents (car rest-list))))
|
|
|
|
arr))
|
2011-07-29 05:02:32 +00:00
|
|
|
|
|
|
|
(let ((time-units (/ 1.0 internal-time-units-per-second)))
|
|
|
|
(defun wall-time (&key (offset 0))
|
|
|
|
(+ (* (get-internal-real-time) time-units)
|
|
|
|
offset)))
|