This morning was definitely lacking in the planned book database recovery (sigh). However, there is now "lives", the UI loop terminates as the number of lives spare hit -1, there's a compass rose that seems to behave as it should and there is a visible warning when an enemy tank fires a missile. Still no REAL handling of enemy tank collision (this should I feel, cause s loss-of-life). There is also a handy utility macro or two (hiding in globals.lisp):
(defmacro decf-if-positive (form &optional (step 1))
(let ((cur (gensym "CUR")))
`(let ((,cur ,form))
(if (> ,cur 0)
(setf ,form (- ,cur ,step))
,cur))))
(defmacro decf-if-not-negative (form &optional (step 1))
(let ((cur (gensym "CUR")))
`(let ((,cur ,form))
(if (> ,cur 0)
(setf ,form (- ,cur ,step))
,cur))))
