4.3 KiB
APPLICATION
Obiekt aplikacji — najwyższy poziom hierarchii skryptów gry. Deklarowany w pliku Application.def jako pierwszy obiekt; zawiera listę epizodów i wskazuje, który z nich uruchomić jako pierwszy.
Pola
EPISODES
STRING EPISODES
Lista nazw epizodów (EPISODE) tworzących aplikację, oddzielonych przecinkami. W analizowanych grach z reguły zawiera jedną pozycję.
PATH
STRING PATH
Ścieżka relatywna do katalogu dane, w którym znajdują się pliki aplikacji. Używana przez silnik przy lokalizowaniu pliku .CNV powiązanego z aplikacją (zobacz Ładowanie kolejnych plików).
STARTWITH
STRING STARTWITH
Nazwa epizodu, od którego silnik rozpocznie grę.
Metadane
Następujące pola są zapisywane w pliku skryptu jako metadane i nie wpływają bezpośrednio na działanie silnika:
AUTHOR— autor pliku.BLOOMOO_VERSION— wersja silnika BlooMoo.CREATIONTIME— data utworzenia pliku.DESCRIPTION— opis aplikacji.LASTMODIFYTIME— data ostatniej modyfikacji pliku.VERSION— wersja aplikacji.
Metody
EXIT
void EXIT()
Kończy działanie aplikacji.
Przykłady
GAME^EXIT();
GETLANGUAGE
STRING GETLANGUAGE()
Zwraca aktualnie ustawiony język aplikacji. Wartością domyślną jest "POL".
Zwraca: kod języka.
Przykłady
UFO^GETLANGUAGE();
RUN
mixed RUN(STRING varName, STRING methodName, [mixed param1, ..., mixed paramN])
Wywołuje metodę methodName na zmiennej varName, przekazując pozostałe argumenty jako jej parametry. Wartość zwracana to wynik wywołanej metody. Mechanizm pełni rolę dynamicznego wywołania — pozwala wybrać zarówno docelową zmienną, jak i metodę w runtime.
Parametry
varName— nazwa docelowej zmiennej.methodName— nazwa wywoływanej metody.param1, …, paramN— (opcjonalnie) argumenty przekazywane do wywołania.
Zwraca: wartość zwróconą przez wywołaną metodę.
Przykłady
UFO^RUN(VARSTRINGTEMP, "SETASBUTTON", FALSE, FALSE);
UFO^RUN(VARSTRINGTEMP, "HIDE");
UFO^RUN(["ANIMO"+$1], "HIDE");
UFO^RUN($1, "PLAY", $2);
UFO^RUN(ARRCARS^GET(VARPLAYER), "SETPRIORITY", ARRPRIORITY^GET(VARPLAYER));
RUNENV
mixed RUNENV(STRING sceneName, STRING behaviourName)
Wywołuje procedurę behaviourName, ale tylko wtedy, gdy aktualnie aktywna scena ma nazwę sceneName. W przeciwnym razie metoda nie ma efektu. Mechanizm służy do warunkowego uruchamiania procedur, które mają sens wyłącznie w konkretnym kontekście sceny.
Parametry
sceneName— nazwa sceny, w której procedura ma być wykonana.behaviourName— nazwa wywoływanej procedury.
Zwraca: wartość zwróconą przez procedurę lub NULL, jeżeli warunek sceny nie został spełniony.
Przykłady
GAME^RUNENV(SCENENAME, "__HELPSTART__");
GAME^RUNENV(SCENENAME, "B_PAUSE_START");
GAME^RUNENV(SCENENAME, "__CUTINIT__");
SETLANGUAGE
void SETLANGUAGE(STRING languageCode)
Ustawia kod języka aplikacji. Silnik mapuje przekazany kod LCID Windows na wewnętrzny identyfikator języka według poniższej tabeli:
| Kod LCID | Język | Wewnętrzny ID | Podkatalog |
|---|---|---|---|
0415 |
polski | 1 |
POL |
0405 |
czeski | 2 |
CZE |
0402 |
bułgarski | 3 |
BUL |
0418 |
rumuński | 4 |
ROM |
0419 |
rosyjski | 5 |
RUS |
040E |
węgierski | 6 |
HUN |
041B |
słowacki | 7 |
SLO |
0422 |
ukraiński | 8 |
UKR |
Wybrany identyfikator decyduje o podkatalogu z lokalizowanymi zasobami, z którego silnik wczytuje pliki gry (zobacz Ładowanie kolejnych plików). Identyfikatory 9, 10 i 11 (ustawiane inną drogą niż SETLANGUAGE) odpowiadają podkatalogowi NIEM — wersji niemieckojęzycznej. Identyfikator spoza powyższego zakresu skutkuje pustym podkatalogiem. Po ustawieniu języka silnik ponownie inicjalizuje również układ klawiatury.
Parametry
languageCode— kod LCID w postaci czterocyfrowej liczby szesnastkowej.
Przykłady
UFO^SETLANGUAGE("0415");
UFO^SETLANGUAGE("040E");
UFO^SETLANGUAGE("0419");