2.8 KiB
MULTIARRAY
Tablica wielowymiarowa, indeksowana od 0. Domyślnie tworzona jako tablica dwuwymiarowa o wymiarach 16 × 16; liczba wymiarów może być zmieniona w skrypcie polem DIMENSIONS. Każdy wymiar rozszerza się automatycznie (podwajając rozmiar) przy próbie zapisu do pozycji wykraczającej poza bieżący zakres.
Pola
DIMENSIONS
INTEGER DIMENSIONS
Liczba wymiarów tablicy. Pole odczytywane podczas inicjalizacji zmiennej; domyślnie 2. Każdy wymiar jest tworzony z początkowym rozmiarem 16.
Metody
GET
mixed GET(INTEGER index1, [INTEGER index2, ..., INTEGER indexN])
Zwraca wartość z komórki o podanych współrzędnych. Liczba argumentów musi być równa liczbie wymiarów zadeklarowanej polem DIMENSIONS. Dla komórki, do której nie zapisano wartości, lub gdy współrzędne są poza zakresem, zwracany jest NULL.
Parametry
index1, …, indexN— współrzędne komórki (numerowane od0), po jednej na każdy wymiar.
Zwraca: wartość komórki lub NULL.
Przykłady
ARRMAPA^GET(IKRETMOVEONMAPAX, IKRETPOSMAPAY);
ARRMAPA^GET([IPLAYERPOSX-1], IPLAYERPOSY);
ARRMAPA^GET(_I_, I1);
SET
void SET(INTEGER index1, [INTEGER index2, ..., INTEGER indexN], mixed value)
Zapisuje wartość w komórce o podanych współrzędnych. Liczba argumentów musi być równa liczbie wymiarów + 1; ostatni argument to zapisywana wartość. Jeżeli którakolwiek współrzędna wykracza poza bieżący zakres wymiaru, tablica jest automatycznie powiększana (rozmiar wymiaru jest podwajany aż do objęcia współrzędnej).
Parametry
index1, …, indexN— współrzędne komórki.value— zapisywana wartość.
Przykłady
ARRMAPA^SET(ITMPX, ITMPY, 0);
ARRMAPA^SET(IX, IY, SPOLE);
ARRMAPA^SET(IPLAYERGOONX, IPLAYERGOONY, "PLAYER");
ARRMAPA^SET([IPLAYERPOSX+ILASTDIRX], [IPLAYERPOSY+ILASTDIRY], IPLAYER);
GETSIZE
INTEGER GETSIZE(INTEGER dimension)
Zwraca rozmiar podanego wymiaru tablicy.
Parametry
dimension— indeks wymiaru (numerowany od0).
Zwraca: rozmiar wymiaru lub 0 dla nieprawidłowego indeksu.
LOAD
void LOAD(STRING path)
Zastępuje zawartość tablicy danymi wczytanymi z pliku binarnego. Format obejmuje wymiary tablicy oraz wartości komórek.
Parametry
path— ścieżka pliku w VFS gry.
SAVE
void SAVE(STRING path)
Zapisuje zawartość tablicy do pliku binarnego.
Parametry
path— ścieżka docelowego pliku w VFS gry.
Sygnały
ONINIT
Wywoływany w momencie inicjalizacji zmiennej; w tym momencie odczytywana jest wartość pola DIMENSIONS i alokowane są wymiary tablicy.
ONSIGNAL
Wywoływany po otrzymaniu sygnału (zobacz Zdarzenia i sygnały).