function ds_map_clone(map) { var m = ds_map_create(); var k = ds_map_find_first(map); repeat(ds_map_size(map)) { m[? k] = map[? k]; k = ds_map_find_next(map, k); } return m; } function ds_map_try_get(map, key, def = 0) { if(ds_map_exists(map, key)) return map[? key]; return def; } function ds_map_override(original, newmap) { if(is_undefined(original)) return; if(!ds_exists(original, ds_type_map)) return; if(is_undefined(newmap)) return; if(!ds_exists(newmap, ds_type_map)) return; var k = ds_map_find_first(newmap); repeat(ds_map_size(newmap)) { original[? k] = newmap[? k] ?? 1; k = ds_map_find_next(newmap, k); } } function ds_map_print(map) { var txt = "{"; var k = ds_map_find_first(map); repeat(ds_map_size(map)) { txt += string(k) + " : " + string(map[? k]) + ", "; k = ds_map_find_next(map, k); } txt += "}"; return txt; }