Mapas

En algunas ocasiones necesitas guardar pares de valores consistentes de una llave (key) y un valor. Por ejemplo, un personaje puede llevar varios ítems diferentes y puede tener un número diferente de cada uno. En este caso, el ítem será la llave y la cantidad será el valor. Los mapas manejan estas parejas de valores, ordenándolos por la llave. Puedes añadir valores al mapa y buscar uno concreto usando las llaves. Como las llaves también están ordenadas, puedes encontrar los valores correspondientes a la llave siguiente o anterior. A veces es útil usar un mapa para guardar llaves sin ningún valor asignado. En este caso puedes asignarles a todas las llaves el valor 0.

ds_map_create()Crea un nuevo mapa. La función devuelve un número entero con la id del mapa para usarla en las diferentes funciones. Puedes crear varios mapas.
ds_map_destroy(id) Destruye el mapa, liberando la memoria usada. No olvides usar esta función cuando ya no necesites el mapa.
ds_map_clear(id)Limpia el mapa, borrando todos las parejas llave-valor que contiene pero no lo destruye.
ds_map_size(id) Devuelve el número de parejas llave-valor en el mapa.
ds_map_empty(id) Devuelve true si el mapa está vacía. Es lo mismo que chequear si el número de valores en el mapa es cero.
ds_map_add(id,key,val) Añade la pareja llave (key)-valor (val) al mapa.
ds_map_replace(id,key,val) Reemplaza el valor correspondiente a la llave con un nuevo valor.
ds_map_delete(id,key) Elimina la pareja llave-valor especificada del mapa. Si hay varias parejas con la misma llave sólo 1 es eliminada.
ds_map_exists(id,key) Devuelve true si la llave existe en el mapa.
ds_map_find_value(id,key) Devuelve el valor correspondiente a la llave.
ds_map_find_previous(id,key) Devuelve la mayor llave que sea menor que la indicada.
ds_map_find_next(id,key) Devuelve la menor llave que sea mayor que la indicada.
ds_map_find_first(id) Devuelve la menor llave del mapa.
ds_map_find_last(id) Devuelve la mayor llave del mapa.