              (make-state
                :falling-right
                {:x speed :y (- fall-speed)}
-               (bumping-transitions id :left :top :left walls others)
-               (bumping-transitions id :left :falling-left walls others)
-               (bumping-transitions id :top :right walls others))
+               (bumping-transitions id :left :top :left nil walls others)
+               (bumping-transitions id :left :falling-left (unsupported-guard 16 16 walls others) walls others)
+               (bumping-transitions id :top :right nil walls others))
              (make-state
                :falling-left
                {:x (- speed) :y (- fall-speed)}
-               (bumping-transitions id :right :top :right walls others)
-               (bumping-transitions id :right :falling-right walls others)
-               (bumping-transitions id :top :left walls others)))))
+               (bumping-transitions id :right :top :right nil walls others)
+               (bumping-transitions id :right :falling-right (unsupported-guard 16 16 walls others) walls others)
+               (bumping-transitions id :top :left nil walls others)))))
 
 (defn make-scene-a [x] (let [ids #{:ga :gb :gc :gd :ge}
                              walls #{[0 0 164 8]

  (let [rel (first simple-guard)
        c (constant-from-expr has ha (last simple-guard))
        ;_ (println "Constant" (last simple-guard) "is" c)
        ;_ (println ":d :x is" (constant-from-expr has ha [:d :x]))
        v1k (second simple-guard)
        v2k (if (= (count simple-guard) 4) (third simple-guard) nil)
        [v10 v1f] (get-var-and-flow has ha v1k)

    ; catch guards
    (and (vector? guard-term)
         (#{:gt :geq :leq :lt :and :or} (first guard-term))) (mapcat term-dependencies (rest guard-term))
    ; catch [ID v]
    (and (vector? guard-term)
         (= 2 (count guard-term))) [(first guard-term)]
    ; must be (+-*/ ...)
    (and (not (vector? guard-term))
