     ;(log/debug "current-state" current-state)
     (if (or (contains? table keyin) (contains? table :else))
       (let [[transition-fn new-state advance-time] (if (contains? table keyin) (get table keyin) (get table :else))
+            ;; some states conditionally advance time by calling (advance-time state)
+            ;; check to see if this has occurred if advance-time was not set in the state transition entry
+            advance-time (if-not advance-time
+                           (inc-time? state)
+                           advance-time)
+            ;; clear inc-time flag if set
+            state        (if (inc-time? state)
+                           (clear-inc-time state)
+                           state)
             ;; if the table contains keyin, then pass through transition-fn assuming arity-1 [state]
             ;; else the transition-fn takes [state keyin]. Bind keying so that it becomes arity-1 [state]
             _ (log/debug "current-state" (get-in state [:world :current-state]))

            state)
          (assoc-in state [:world :player :pos :x] target-x)
          (assoc-in state [:world :player :pos :y] target-y)
          ;; rafting = more hunger
          (update-in state [:world :player :hunger] (partial + 0.05 ))
          ;;

                           \c          [identity               :close           false]
                           \.          [do-rest                :normal          true]
                           :numpad5    [do-rest                :normal          true]
                           :left       [move-left              :normal          false]
                           :down       [move-down              :normal          false]
                           :up         [move-up                :normal          false]
                           :right      [move-right             :normal          false]
                           :up-left    [move-up-left           :normal          false]
                           :up-right   [move-up-right          :normal          false]
                           :down-left  [move-down-left         :normal          false]
                           :down-right [move-down-right        :normal          false]
                           :space      [action-select          :action-select   false]
                           \q          [quaff-select           identity         false]
                           \w          [identity               :wield           false]
