From d3cbcb6616d1e8d3cf44ef6f712e0351bbf5dc95 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 19 Jun 2022 20:54:57 +0100 Subject: [PATCH] script: Break out mouseclick_core Signed-off-by: Ian Jackson --- templates/script.ts | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/templates/script.ts b/templates/script.ts index 4b928bdc..d01ff8e0 100644 --- a/templates/script.ts +++ b/templates/script.ts @@ -1029,7 +1029,8 @@ function some_mousedown(e : MouseEvent) { } } -type MouseFindClicked = null | { +type MouseFindClicked = null | MouseFoundClicked; +type MouseFoundClicked = { clicked: PieceId[], held: PlayerId | null, pinned: boolean, @@ -1210,14 +1211,25 @@ function drag_mousedown(e : MouseEvent, shifted: boolean) { let c = mouse_find_clicked(e, target, piece, false, note_already); if (c == null) return; - let clicked = c.clicked; - let held = c.held; - let multigrab = c.multigrab; special_count = null; mousecursor_etc_reupdate(); drag_cancel(); + mouseclick_core(c, shifted, note_already); + dcx = e.clientX; + dcy = e.clientY; + + window.addEventListener('mousemove', drag_mousemove, true); + window.addEventListener('mouseup', drag_mouseup, true); +} + +function mouseclick_core(c: MouseFoundClicked, shifted: boolean, + note_already: PieceSet | null) { + let held = c.held; + let clicked = c.clicked; + let multigrab = c.multigrab; + drag_pieces = []; if (held == us) { if (shifted) { @@ -1239,11 +1251,7 @@ function drag_mousedown(e : MouseEvent, shifted: boolean) { add_log_message('That piece is held by another player.'); return; } - dcx = e.clientX; - dcy = e.clientY; - window.addEventListener('mousemove', drag_mousemove, true); - window.addEventListener('mouseup', drag_mouseup, true); } function mouseevent_pos(e: MouseEvent): Pos { -- 2.30.2