Files
Rex-EMoolator-docs/docs/pl/reference/APPLICATION.md
Patryk Gensch df6cf2f3d3
Some checks failed
docs / deploy (push) Has been cancelled
docs / build (push) Has been cancelled
Added part of docs
2026-05-19 20:51:59 +02:00

155 lines
4.3 KiB
Markdown

# APPLICATION
Obiekt aplikacji — najwyższy poziom hierarchii skryptów gry. Deklarowany w pliku [`Application.def`](../engine/scripts.md#punkt-startowy) 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`](EPISODE.md)) 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](../engine/scripts.md#ladowanie-kolejnych-plikow)).
### 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](../engine/scripts.md#ladowanie-kolejnych-plikow)). 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");
```