       button.events.unshift -new Date().getTime()
     return
 
-
   ###
   Registers every onmousemove event to the Mouse object.
 

  ###
  onTouchMove: (event) ->
    throw new Error("Missing argument: event") if event is undefined #dev
    i = undefined
    eventTouch = undefined
    pointerTouch = undefined
    roomPos = undefined
    i = 0
    while i < event.touches.length
      eventTouch = event.touches[i]
      if event.touches[i].identifier > 20
        pointerTouch = @touches.filter((t) ->
          t.identifier is eventTouch.identifier
        )[0]
      else
        pointerTouch = @touches[eventTouch.identifier]
      pointerTouch.set eventTouch.pageX - engine.arena.offsetLeft - engine.canvas.offsetLeft + document.body.scrollLeft, eventTouch.pageY - engine.arena.offsetTop - engine.canvas.offsetTop + document.body.scrollTop
      pointerTouch.x = pointerTouch.x / engine.arena.offsetWidth * engine.canvasResX
      pointerTouch.y = pointerTouch.y / engine.arena.offsetHeight * engine.canvasResY

          ret.push pointer if -pointer.events[0] > engine.last || -pointer.events[1] > engine.last
        when "down"
          ret.push pointer if pointer.events[0] > 0
    ret

  ###
  Converts a coordinate which is relative to the main canvas to a position in the room (based on the room's cameras)
