GMLscripts.com

Discuss and collaborate on GML scripts
Invert

You are not logged in.

#1 2016-01-06 14:46:42

AnastasiaDunbar
Member
Registered: 2015-12-22
Posts: 12

ds_list_get_list()

Expand///ds_list_get_list(id)
var list = ds_list_create();
ds_list_copy(list,argument0);
return list;

The script is for avoiding a list being affected with a variable with its list.
For example, if my code looks like this:

Expand//Create event
list = ds_list_create();
array = 0;

//Step event
for (var i = 0; i < 4; i++) {
    ds_list_add(list,"foo");
    array[i] = list;
}

//Draw event
for (var i = 0; i < array_length_1d(array); i++) {
    var str = "";
    for (var k = 0; k < ds_list_size(array[i]); k++) {
        str += ds_list_find_value(array[i],k);
    }
    draw_text(0,i*20,str);
}

It displays:

Expandfoofoofoofoo
foofoofoofoo
foofoofoofoo
foofoofoofoo

Instead of:

Expandfoo
foofoo
foofoofoo
foofoofoofoo

Fix step event by:

Expandfor (var i = 0; i < 4; i++) {
    ds_list_add(list,"foo");
    array[i] = ds_list_get_list(list);
}

Don't forget to destroy the lists.

Last edited by AnastasiaDunbar (2016-01-06 15:20:06)

Offline

#2 2016-01-10 06:40:25

xot
Administrator
Registered: 2007-08-18
Posts: 1,240

Re: ds_list_get_list()

I think I would call this ds_list_duplicate(). Thanks.


Abusing forum power since 1986.

Offline

Board footer

Powered by FluxBB