ds-packer-1Dziś wieczór miałem chwilę, żeby dokończyć program DS Packer, o którym wspominałem przy okazji poprzedniego posta. Program można pobrać tutaj: https://bitbucket.org/gnysek/gms-ds-packer/downloads . Działa TYLKO z GM:Studio. Działa z polskimi znakami (40% czasu poświęconego na kod straciłem na to…).

Pozwala on importować proste pliki TXT i CSV (rozdzielone przecinkiem) z jedną lub dwiema kolumnami, oraz eksportować je do ds_list/ds_map. Wystarczy stworzyć jakiś pusty skrypt w GM, nadać mu nazwę, a następnie nadpisać ten skrypt bezpośrednio z programu (skrypty są w folderze scripts twojego projektu). Tworzymy odpowiednią strukturę (ds listę/mapę) aby dostać jej identyfikator, a następnie wywołujemy skrypt za pomocą nazwaSkryptu(idStruktury). I w ten sposób mamy wczytane dane. Przykładowo:

    mapa = ds_map_create();
    wczytajMojaMape(mapa);

Poniżej jeszcze prosty skrypt do eventu DRAW, który wyświetli max pierwsze 50 elementów wczytanych danych, który używałem do testów.

Mapa:

    first_key = ds_map_find_first(mapa);
    for(i = 0; i < min(20,ds_map_size(mapa)); i++) {
        draw_text(10, 10 + (i*16), string(first_key));
        draw_text(100, 10 + (i*16), ds_map_find_value(mapa, first_key));
        first_key = ds_map_find_next(mapa, first_key);
    }

Lista:

    for(i = 0; i < min(20,ds_list_size(lista)); i++) {
        draw_text(300, 10 + (i*16), string(ds_list_find_value(lista, i)));
    }

Błędy proszę zgłaszać tutaj: https://bitbucket.org/gnysek/gms-ds-packer/issues

W kolejnych wersjach dojdzie opcja zapisu klucza i wartości w mapach jako real zamiast string, różnych separatorów dla CSV, wyboru którą kolumnę eksportować do listy/map, wyboru czy kolejne kolumny eksportować do kolejnych map.