The really important arrays here are arrays of unamanaged types. arrays of int for general use, arrays of String for dictionaries, arrays of float for coordinates, etc. Those are indeed always passed by-copy.
Anyway, you get my point. I was just suggesting another "relatively easy" way of unlocking some difficulties in AGS scripting.
Spoiler
Just to avoid a misunderstanding in "programmers talk" -- yes, the pointer's array is passed by reference, but then if you change values inside the function it does not reflect back when the array is returned from it. So in the end you may say it's passed by copy.
[close]
EDIT I'm so confused right now. I recal running tests some time ago to check if arrays of unmanaged types were passed by copy or by ref, and I came to the conclusion that they were passed by copy.
I even wrote it here (and I got conforted in my result by the fact that nobody contradicted me)
I just ran this test :
void dummyFunc(int ar2[])
{
ar2[0]=88; ar2[1]=99;
}
void Test2()
{
int ar[] = new int[2]; ar[0]=66; ar[1]=77;
dummyFunc(ar);
Console.W("values after call: %d, %d", ar[0], ar[1]);
}
...And indeed the console shows : "values after call: 88, 99"
Maybe it's because I ran my tests on Strings back then, and made a mistake. I'll never know.
It's still not possible to reference an array from another array,
EDIT: passing arrays by reference does not solve every problem (I'll update with a new post)