aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-10-06 00:12:59 +0200
committermetamuffin <metamuffin@disroot.org>2025-10-06 00:12:59 +0200
commitd9aa659010f8ffd443133657cca6c541097cc1aa (patch)
treeac716b8427bbd872bc944438e39efc7eb74a2a3c
parent6d7e8fda46be9d531551670cd66de2161e5dbeb5 (diff)
downloadhurrycurry-d9aa659010f8ffd443133657cca6c541097cc1aa.tar
hurrycurry-d9aa659010f8ffd443133657cca6c541097cc1aa.tar.bz2
hurrycurry-d9aa659010f8ffd443133657cca6c541097cc1aa.tar.zst
fix arrow tip; scrollable pages
-rw-r--r--server/tools/src/book_html.css1
-rw-r--r--server/tools/src/diagram_svg.rs18
2 files changed, 12 insertions, 7 deletions
diff --git a/server/tools/src/book_html.css b/server/tools/src/book_html.css
index fb60eb60..d64e9ef1 100644
--- a/server/tools/src/book_html.css
+++ b/server/tools/src/book_html.css
@@ -37,4 +37,5 @@ body {
aspect-ratio: 0.707;
width: 30em;
height: auto;
+ overflow-y: auto;
} \ No newline at end of file
diff --git a/server/tools/src/diagram_svg.rs b/server/tools/src/diagram_svg.rs
index a5d09316..0fc75668 100644
--- a/server/tools/src/diagram_svg.rs
+++ b/server/tools/src/diagram_svg.rs
@@ -72,21 +72,25 @@ pub fn diagram_svg(data: &Gamedata, diagram: &Diagram) -> Result<String> {
let src_node = &diagram.nodes[edge.src];
let dst_node = &diagram.nodes[edge.dst];
let src = node_edge_connect_pos(src_node, dst_node);
- let dst = node_edge_connect_pos(dst_node, src_node);
+ let mut dst = node_edge_connect_pos(dst_node, src_node);
+
+ let dir = (src - dst).normalize_or_zero();
+ let tip0 = dst;
+ let tip1 = dst + (dir + dir.perp() * 0.5) * 10.;
+ let tip2 = dst + (dir + dir.perp() * -0.5) * 10.;
+ dst += dir * 5.; // prevent miter line cap from peeking out
+
+ // line path
writeln!(
out,
r#"<path fill="none" stroke="black" stroke-width="2" d="M{} {} L{} {}" />"#,
src.x, src.y, dst.x, dst.y,
)?;
-
- // Array tip
- let dir = (src - dst).normalize_or_zero();
- let c1 = dst + (dir + dir.perp() * 0.5) * 10.;
- let c2 = dst + (dir + dir.perp() * -0.5) * 10.;
+ // tip path
writeln!(
out,
r#"<path fill="black" stroke="none" d="M{} {} L{} {} L{} {} Z" />"#,
- dst.x, dst.y, c1.x, c1.y, c2.x, c2.y
+ tip0.x, tip0.y, tip1.x, tip1.y, tip2.x, tip2.y
)?;
}