feat: eval/exec of strings, gallery Replay, callable actions; iNSight and SomethingBetter now pass
- pyparse.ts: parser for expressions and simple statements built at run time, producing
the sandbox's own IR; backs eval() and exec() (e.g. exec("persistent." + var + " = 0"))
- Replay/EndReplay and renpy.end_replay: the engine stashes the full game state, runs the
label with the given scope and restores everything when it ends; locked replays are
insensitive. Save loading shared as applySave()
- Screen actions are callable (MainMenu(confirm=False)())
- jump main_menu_screen is Ren'Py's own label: it opens the player's main menu
- Screens: a closing quote ends the word before a letter ("text"size 15) but not before
an operator ("a"+b); Text(...) pictures in image blocks
- README: current capabilities and limits of the Ren'Py support
Strict compatibility check on the local collection: Tomie, Twisted-Thoughts, Hooked,
iNSight-of-you and SomethingBetter pass; TheFixer (custom AlphaMask wardrobe, missing
labels) and That_New_Teacher (custom statements, Render API) do not.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
3923ee72fb
commit
3ac4f0371f
11 files changed
+448
-36
No files matched your search
@@ -159,3 +159,13 @@ def test_computed_atl_values_make_a_transform_animated():
|
||||
assert block["params"][0]["n"] == "x"
|
||||
assert block["steps"][0]["props"]["xoffset"] == {"e": {"k": "name", "id": "x"}}
|
||||
assert data.transforms["shift"] == {}
|
||||
|
||||
|
||||
def test_a_closing_quote_ends_the_word_and_text_pictures_are_understood():
|
||||
data = parse(
|
||||
'screen hud():\n text "D [a] A [b]"size 15\n text "x" size 20\n'
|
||||
'image log_line:\n Text(log.message())\n alpha 0.0\n linear 0.5 alpha 1.0\n'
|
||||
'label start:\n call screen hud\n')
|
||||
first = data.screens["hud"]["body"][0]
|
||||
assert first["props"]["size"] == {"k": "const", "v": 15}
|
||||
assert data.images["log_line"]["textExpr"]["k"] == "call"
|
||||
Reference in new issue
Block a user