From: Ian Jackson Date: Tue, 13 Apr 2021 20:05:50 +0000 (+0100) Subject: js: Provide ungrab_all_except (and PieceSet) X-Git-Tag: otter-0.5.0~94 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=0c9b650384b283370476903b08adabb5e1b20d51;p=otter.git js: Provide ungrab_all_except (and PieceSet) Nothing calls the new function yet. Signed-off-by: Ian Jackson --- diff --git a/templates/script.ts b/templates/script.ts index 26c8b35e..0ad65c1f 100644 --- a/templates/script.ts +++ b/templates/script.ts @@ -840,6 +840,8 @@ type MouseFindClicked = null | { pinned: boolean }; +type PieceSet = { [piece: string]: true }; + function grab_clicked(clicked: PieceId[]) { for (let piece of clicked) { let p = pieces[piece]!; @@ -1015,14 +1017,18 @@ function p_bbox_contains(p: PieceInfo, test: Pos) { return true; } -function ungrab_all() { +function ungrab_all_except(dont: PieceSet | null) { for (let tpiece of Object.keys(pieces)) { + if (dont && dont[tpiece]) continue; let tp = pieces[tpiece]!; if (tp.held == us) { do_ungrab(tpiece,tp); } } } +function ungrab_all() { + ungrab_all_except(null); +} function set_grab_us(piece: PieceId, p: PieceInfo) { p.held = us;