In that function "a" is replaced with whatever object type you call the function with. So if you called it like this:
Call indist (sprite, 100,100,50)
"a" would be Sprite. It's basically another way to make things more generic.
Yeah, that part I get it and would be very useful. My main doubt is how to make this viable.
From my perspective, in order to make it work the "a" would need to be a sol variable previously defined and limited to only one object type, in this case "Sprite".
Otherwise you could call "indist(sprite, 100,100,50)" or "indist(tiledBG, 100,100,50)", two different object types with different specific conditions. So when placing the condition you would need to select the condition inside a list of an object "a", of the type "sprite", that would temporarily appear into the object list (like local variables do). If not, how would you deal with different object types that have specific conditions not present in other object types? Like you could call both a sprite or a tiledBG, but they don't have the exact same condition set (like "animation is playing" for instance).
Unless all the object types have a common subset of conditions (like position, size, opacity...) and you can only use these when picking an object through a variable (like "a"), and select them through the system object.
*Actually I have some ideas for families with multiple object types that probably could help with this. When I get more time I'll post them.
How about inline vectors?
OK yeah, I know...
Well remembered. It's something that would be great if could be incorporated.