I don't know how feasible this is, I've not looked into how ATL is implemented, but I've been trying to use it a lot recently, and mostly finding that it's no good for what I want... because it seems an ATL transform overrides every single positional property of the thing it's applied to.
For example I was trying to get a [small] thing that I had displayed at an arbitrary Position() on-screen to bob slightly; I tried something along the lines of:
and it bobbed fine... except it also moved immediately to the top-left corner of the screen along with everything else I've tried to apply ATL transforms without specifying both xalign and yalign explicitly. Since I wanted a generic transform that could bob a thing wherever it was on the screen, ATL didn't seem to be able to do what I wanted at all. Since it went into Ren'Py I've had many occasions to think it was what I wanted, but I'm only really using it for trivial character-sprite-positioning. Is it potentially possible to have something like ATL that doesn't change the values of any properties it doesn't explicitly set, so it's actually more generically useful? As it is, it seems it's only really useful for one-off transforms where you have a thing at a very specific point on the screen and you know exactly in screen coords where you want to move it to...
The problem comes in in mixing ATL with other transforms. If you define the position using ATL to begin with, it should work fine. It seems to be necessary to explicitly declare the position of a displayable *in ATL* or it defaults to the top left.
Mental weather report: Cloudy with a possibility of brain storms.
number473 wrote:The problem comes in in mixing ATL with other transforms. If you define the position using ATL to begin with, it should work fine. It seems to be necessary to explicitly declare the position of a displayable *in ATL* or it defaults to the top left.
If this is the case, then the "[t]here is no way to create ATL code programatically" is my problem.
(I also suspect that this is a lie, since I expect the ATL statements most likely have some internal representation and it's just a case of finding out what that is and replicating it, but I'm not going to go to such lengths.)
Actually, there explicitly isn't a way to create ATL programatically. If you're going to create a transform in Python, you should just use Transform, which has the same capabilities as ATL.
(Thinking about the original problem, I do think that there's something of a problem here. I'm not yet sure how to fix it, which is why I've been quiet about it.)
Supporting creators since 2004 (When was the last time you backed up your game?)