/// array_copy_2d(array) = array_copy;
var arr = argument0;
var temp = arr[0, 0];
arr[0, 0] = 0; // Without being able to trst, this line might not be needed
arr[0, 0] = temp;
return (arr);
var my_array, arr_copy;
may_array[0, 0] = 0;
my_array[0, 1] = 1;
// etc...
my_array[4, 7] = 678;
arr_copy = array_copy_2d(my_array);
new_array = old_array;
new_array[i, j] = 10; // <-- OK
new_array[@ i, j] = 10; // <-- not OK, you're editing old_array
Easiest way is probably to take advantage of Studio's "copy-on-write" array implementation. To be breif, create a script as follows:
array_copy_2d
... Then use it like thus:Code:/// array_copy_2d(array) = array_copy; var arr = argument0; var temp = arr[0, 0]; arr[0, 0] = 0; // Without being able to trst, this line might not be needed arr[0, 0] = temp; return (arr);
Code:var my_array, arr_copy; may_array[0, 0] = 0; my_array[0, 1] = 1; // etc... my_array[4, 7] = 678; arr_copy = array_copy_2d(my_array);
Easiest way is probably to take advantage of Studio's "copy-on-write" array implementation. To be breif, create a script as follows:
array_copy_2d
... Then use it like thus:Code:/// array_copy_2d(array) = array_copy; var arr = argument0; var temp = arr[0, 0]; arr[0, 0] = 0; // Without being able to trst, this line might not be needed arr[0, 0] = temp; return (arr);
Code:var my_array, arr_copy; may_array[0, 0] = 0; my_array[0, 1] = 1; // etc... my_array[4, 7] = 678; arr_copy = array_copy_2d(my_array);
function array_copy_2d(array)
{
var copy = []
for(var a = 0; a < array_length(array);a++){
copy[a] = []
array_copy(copy[a],0,array[a],0,array_length(array[a]))
}
return copy
}
function sReplaceArrayByCopy(dst, src){
array_delete(dst, 0, array_length(dst))
for (var i = 0; i < array_length(src); i++)
{
if is_array(src[i])
{ dst[i] = []
sReplaceArrayByCopy(dst[i], src[i])}
else
{dst[i] = src[i]}
}
}