From: Ian Jackson Date: Sun, 19 Jun 2022 19:54:57 +0000 (+0100) Subject: script: Break out mouseclick_core X-Git-Tag: otter-1.2.0~12 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=d3cbcb6616d1e8d3cf44ef6f712e0351bbf5dc95;p=otter.git script: Break out mouseclick_core Signed-off-by: Ian Jackson --- 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 {