anchor.diff:  (defun ccwait(void (seconds f64))
     (let ((start (timestamp)))
       (let ((end (+ start (cast (* 1000000 seconds) i64))))
  -      (while (< (timestamp) end)
  +      (while (<= (timestamp) end)
   	(ccyield)))))
   
   (defvar offsets (cast (alloc (* (size-of (type vec2)) 16)) (ptr vec2)))
  
positive.code: 	  (let ((tile (get-tile x y)))
  	    
  	    (unless (eq (deref tile) 0)
  	      (setf player-pos new-pos)))))
        (setf new-pos player-pos))
      (ccyield)))
  
  
negative.code:     (let ((col 0) (row 0)
  	  (offset (deref (ptr+ offsets (cast arg i64)))))
        (while true
  	(for ri 0 (< ri 25) (+ ri 1)
  	     (for ci 0 (< ci 25) (+ ci 1)
  		  (setf col (+ ci (cast (member offset x) i64)))
  		  (setf row (+ ri (cast (member offset y) i64)))
  		  (update-cell col row)
  		  (ccwait 0.01))))
  	)))
  
  (ccthread cc  (deref tileupdater) null)
  (ccthread cc  (deref tileupdater) (cast 1 (ptr void)))
  (ccthread cc  (deref tileupdater) (cast 2 (ptr void)))
  (ccthread cc  (deref tileupdater) (cast 3 (ptr void)))
  (ccthread cc  (deref tileupdater) (cast 4 (ptr void)))
  (ccthread cc  (deref tileupdater) (cast 5 (ptr void)))
  (ccthread cc  (deref tileupdater) (cast 6 (ptr void)))
  
  (while (< iteration 40000)
  
    (gl:uniform cam-size-loc cam-size)
    (gl:uniform cam-loc cam-pos)
  