feat: build profile for The Lewdest House; panoramas as GPU hints, live2d-only init branches, drag/at syntax
CI / frontend (push) Failing after 15s
CI / backend (push) Failing after 33s

The build (fingerprint of its scripts) skips third-party code written against Ren'Py's render API
(colour picker demo, Kinetic Text Tags, cps_preview) and waives its one missing test screen. Converter:
xpan/ypan/matrixtransform/matrixanchor are skipped like other GPU hints, `if renpy.has_live2d()` in an
init block keeps only its else branch, `crop(...)xpos` and `crop (1, 2, 3, 4)` parse, `drag` is a screen
container, `at icon["at"]` becomes a dynamic entry, and the whitelist gains Matrix, Move, absolute and
the no-op helpers. The game now passes the strict check and converts fully (3272 files, 288 MB).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
mrleo1nidandClaude Sonnet 5.5 committed 2026-10-26 04:29:20 +03:00
1 parent 353cd5e49e
commit 6d78b8b847
9 files changed
+94 -10

No files matched your search

+11
View File
@@ -235,3 +235,14 @@ def test_atl_pause_with_brackets():
steps = data.atl["t"]["steps"] if "t" in data.atl else data.transforms["t"]
assert not data.blockers
assert [(s["op"], s["t"]) for s in steps] == [("move", 1.0), ("pause", 1.5), ("move", 1.0)]
def test_dynamic_at_value_and_draggable_box():
data = parse('transform spin:\n rotate 5\nscreen s(icon):\n imagebutton:\n idle "a" at icon["at"]\n'
' drag:\n drag_name "box"\n draggable True\n text "x"\n'
'label start:\n call screen s({"at": spin})\n')
audit_ir(data)
require_supported_scripts(data)
body = data.screens["s"]["body"]
assert body[0]["props"]["at"][0]["dyn"]["k"] == "sub"
assert body[1]["w"] == "drag" and "draggable" in body[1]["props"]