       @engine.removeListener 'mousedown', @onMouseDown
       @engine.removeListener 'update', @update
 
-    onMouseDown: (x, y, button, modifiers) =>
-      click_pos = new Vec2d(x, y)
-      if click_pos.get_distance(@start_pos) < @click_radius
+    onMouseDown: (click_pos) =>
+      if click_pos.distanceTo(@start_pos) < @click_radius
         @gw.play(server_on=false)
         return
-      else if click_pos.get_distance(@credits_pos) < @click_radius
+      else if click_pos.distanceTo(@credits_pos) < @click_radius
         @gw.credits()
         return
-      else if click_pos.get_distance(@controls_pos) < @click_radius
+      else if click_pos.distanceTo(@controls_pos) < @click_radius
         @gw.controls()
         return
 

      @batch = new Engine.Batch()
      @img = new Engine.Sprite("title", batch: @batch)

      @start_pos = new Vec2d(409, 305)
      @credits_pos = new Vec2d(360, 229)
      @controls_pos = new Vec2d(525, 242)
      @click_radius = 50

      @lobby_pos = new Vec2d(746, 203)
      @lobby_size = new Vec2d(993.0 - @lobby_pos.x, 522.0 - @lobby_pos.y)

      if @server?

      @nick_label = {}
      @nick_user = {}
      h = 18
      next_pos = @lobby_pos.offset(0, @lobby_size.y - h)
      for user in @users
        nick = user['nick']
        if nick is @nick
