Transforms applied to displayable using At() get overwritten with sticky in-script ones

Bug #485631 reported by delta
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ren'Py
Fix Released
High
Tom Rothamel

Bug Description

So I've been converting some function-controlled Motions to function-controlled Transforms.

Now first off, this is a bit of a nuisance since Motion controller functions took a duration, and Transform controller functions take a displayed time. You can hack this (by computing min((float(displayed) / float(duration)), 1.0)), but it's a lot less comfortable since you basically have to set the duration inside the controller function or resort to curries and the like.

But the real issue is that once you bind such a Transform to a displayable with At() and show it, the attached Transform will be completely ignored/overwritten if the tag already has an associated Transform (like a position, which is hard to avoid as of 6.10). The Transforms are composited correctly if you use a verbatim "show sprite at Transform(function=controller)" in the script, so it's likely a bug in At().

Using "Transform(function=controller)" in an image definition ATL block does not work either (it crashes).

Revision history for this message
delta (deltakurshiva) wrote :

The more I think about this (and faced with an actual use case), the more I think that Transform(function=myfunc) constructors should be allowed in ATL somehow anyway, so you can use them in animation. The At() thing should probably be fixed too though, the only alternative is to fix the aforementioned and retire At() comepletely.

Tom Rothamel (renpytom)
Changed in renpy:
status: New → Confirmed
importance: Undecided → High
milestone: none → 6.10.1
assignee: nobody → renpytom (renpytom)
Revision history for this message
Tom Rothamel (renpytom) wrote :

The bug will be fixed in 6.10.1. (I'm also considering adding a function statement to ATL.)

Changed in renpy:
status: Confirmed → Fix Committed
Tom Rothamel (renpytom)
Changed in renpy:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.